iclient-mapboxgl-react.min.js 819 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852
  1. /*! For license information please see iclient-mapboxgl-react.min.js.LICENSE.txt */
  2. /*!
  3. *
  4. * @supermap/react-iclient.(https://iclient.supermap.io)
  5. * Copyright© 2000 - 2023 SuperMap Software Co.Ltd
  6. * license: Apache-2.0
  7. * version: v11.1.0
  8. *
  9. */
  10. !function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("../public/libs/mapboxgl/mapbox-gl-enhance.js"),require("echarts"),require("three/build/three"),require("../public/libs/deckgl/deck.gl.min.js"),require("../public/libs/iclient-mapboxgl/iclient-mapboxgl.min.js"),require("antd"),require("../public/libs/echarts-layer/EchartsLayer.js"),require("react"),require("canvg")):"function"===typeof define&&define.amd?define(["../public/libs/mapboxgl/mapbox-gl-enhance.js","echarts","three/build/three","../public/libs/deckgl/deck.gl.min.js","../public/libs/iclient-mapboxgl/iclient-mapboxgl.min.js","antd","../public/libs/echarts-layer/EchartsLayer.js","react","canvg"],t):"object"===typeof exports?exports.SuperMap=t(require("../public/libs/mapboxgl/mapbox-gl-enhance.js"),require("echarts"),require("three/build/three"),require("../public/libs/deckgl/deck.gl.min.js"),require("../public/libs/iclient-mapboxgl/iclient-mapboxgl.min.js"),require("antd"),require("../public/libs/echarts-layer/EchartsLayer.js"),require("react"),require("canvg")):(e.SuperMap=e.SuperMap||{},e.SuperMap.Components=t(e.mapboxgl,e.echarts,e.THREE,e.DeckGL,e.SuperMap,e.antd,e.EchartsLayer,e.React,e.canvg))}(self,(function(__WEBPACK_EXTERNAL_MODULE__375__,__WEBPACK_EXTERNAL_MODULE__550__,__WEBPACK_EXTERNAL_MODULE__2069__,__WEBPACK_EXTERNAL_MODULE__2371__,__WEBPACK_EXTERNAL_MODULE__2395__,__WEBPACK_EXTERNAL_MODULE__2721__,__WEBPACK_EXTERNAL_MODULE__3094__,__WEBPACK_EXTERNAL_MODULE__3899__,__WEBPACK_EXTERNAL_MODULE__5973__){/******/
  11. return function(){// webpackBootstrap
  12. /******/var __webpack_modules__={
  13. /***/9705:
  14. /***/function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(1540);
  15. /**
  16. * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.
  17. *
  18. * @name bbox
  19. * @param {GeoJSON} geojson any GeoJSON object
  20. * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order
  21. * @example
  22. * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);
  23. * var bbox = turf.bbox(line);
  24. * var bboxPolygon = turf.bboxPolygon(bbox);
  25. *
  26. * //addToMap
  27. * var addToMap = [line, bboxPolygon]
  28. */function a(e){var t=[1/0,1/0,-1/0,-1/0];return n.coordEach(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t}a.default=a,t.default=a},
  29. /***/3880:
  30. /***/function(e,t,r){"use strict";
  31. // ESM COMPAT FLAG
  32. r.r(t),
  33. // EXPORTS
  34. r.d(t,{default:function(){/* binding */return f}});// CONCATENATED MODULE: ./node_modules/@turf/envelope/node_modules/@turf/meta/main.es.js
  35. /**
  36. * Callback for coordEach
  37. *
  38. * @callback coordEachCallback
  39. * @param {Array<number>} currentCoord The current coordinate being processed.
  40. * @param {number} coordIndex The current index of the coordinate being processed.
  41. * @param {number} featureIndex The current index of the Feature being processed.
  42. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  43. * @param {number} geometryIndex The current index of the Geometry being processed.
  44. */
  45. /**
  46. * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()
  47. *
  48. * @name coordEach
  49. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  50. * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)
  51. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  52. * @returns {void}
  53. * @example
  54. * var features = turf.featureCollection([
  55. * turf.point([26, 37], {"foo": "bar"}),
  56. * turf.point([36, 53], {"hello": "world"})
  57. * ]);
  58. *
  59. * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  60. * //=currentCoord
  61. * //=coordIndex
  62. * //=featureIndex
  63. * //=multiFeatureIndex
  64. * //=geometryIndex
  65. * });
  66. */
  67. function n(e,t,r){
  68. // Handles null Geometry -- Skips this GeoJSON
  69. if(null!==e)
  70. // This logic may look a little weird. The reason why it is that way
  71. // is because it's trying to be fast. GeoJSON supports multiple kinds
  72. // of objects at its root: FeatureCollection, Features, Geometries.
  73. // This function has the responsibility of handling all of them, and that
  74. // means that some of the `for` loops you see below actually just don't apply
  75. // to certain inputs. For instance, if you give this just a
  76. // Point geometry, then both loops are short-circuited and all we do
  77. // is gradually rename the input until it's called 'geometry'.
  78. // This also aims to allocate as few resources as possible: just a
  79. // few numbers and booleans, rather than any temporary arrays as would
  80. // be required with the normalization approach.
  81. for(var a,i,o,s,u,l,c,d,f=0,h=0,p=e.type,y="FeatureCollection"===p,m="Feature"===p,v=y?e.features.length:1,g=0;g<v;g++){u=(d=!!(c=y?e.features[g].geometry:m?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var b=0;b<u;b++){var w=0,S=0;
  82. // Handles null Geometry -- Skips this geometry
  83. if(null!==(s=d?c.geometries[b]:c)){l=s.coordinates;var L=s.type;switch(f=!r||"Polygon"!==L&&"MultiPolygon"!==L?0:1,L){case null:break;case"Point":if(!1===t(l,h,g,w,S))return!1;h++,w++;break;case"LineString":case"MultiPoint":for(a=0;a<l.length;a++){if(!1===t(l[a],h,g,w,S))return!1;h++,"MultiPoint"===L&&w++}"LineString"===L&&w++;break;case"Polygon":case"MultiLineString":for(a=0;a<l.length;a++){for(i=0;i<l[a].length-f;i++){if(!1===t(l[a][i],h,g,w,S))return!1;h++}"MultiLineString"===L&&w++,"Polygon"===L&&S++}"Polygon"===L&&w++;break;case"MultiPolygon":for(a=0;a<l.length;a++){for("MultiPolygon"===L&&(S=0),i=0;i<l[a].length;i++){for(o=0;o<l[a][i].length-f;o++){if(!1===t(l[a][i][o],h,g,w,S))return!1;h++}S++}w++}break;case"GeometryCollection":for(a=0;a<s.geometries.length;a++)if(!1===n(s.geometries[a],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}
  84. /**
  85. * Callback for coordReduce
  86. *
  87. * The first time the callback function is called, the values provided as arguments depend
  88. * on whether the reduce method has an initialValue argument.
  89. *
  90. * If an initialValue is provided to the reduce method:
  91. * - The previousValue argument is initialValue.
  92. * - The currentValue argument is the value of the first element present in the array.
  93. *
  94. * If an initialValue is not provided:
  95. * - The previousValue argument is the value of the first element present in the array.
  96. * - The currentValue argument is the value of the second element present in the array.
  97. *
  98. * @callback coordReduceCallback
  99. * @param {*} previousValue The accumulated value previously returned in the last invocation
  100. * of the callback, or initialValue, if supplied.
  101. * @param {Array<number>} currentCoord The current coordinate being processed.
  102. * @param {number} coordIndex The current index of the coordinate being processed.
  103. * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.
  104. * @param {number} featureIndex The current index of the Feature being processed.
  105. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  106. * @param {number} geometryIndex The current index of the Geometry being processed.
  107. */
  108. /**
  109. * Reduce coordinates in any GeoJSON object, similar to Array.reduce()
  110. *
  111. * @name coordReduce
  112. * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object
  113. * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)
  114. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  115. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  116. * @returns {*} The value that results from the reduction.
  117. * @example
  118. * var features = turf.featureCollection([
  119. * turf.point([26, 37], {"foo": "bar"}),
  120. * turf.point([36, 53], {"hello": "world"})
  121. * ]);
  122. *
  123. * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  124. * //=previousValue
  125. * //=currentCoord
  126. * //=coordIndex
  127. * //=featureIndex
  128. * //=multiFeatureIndex
  129. * //=geometryIndex
  130. * return currentCoord;
  131. * });
  132. */
  133. /* harmony default export */var a=// CONCATENATED MODULE: ./node_modules/@turf/envelope/node_modules/@turf/bbox/main.es.js
  134. /**
  135. * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.
  136. *
  137. * @name bbox
  138. * @param {GeoJSON} geojson any GeoJSON object
  139. * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order
  140. * @example
  141. * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);
  142. * var bbox = turf.bbox(line);
  143. * var bboxPolygon = turf.bboxPolygon(bbox);
  144. *
  145. * //addToMap
  146. * var addToMap = [line, bboxPolygon]
  147. */
  148. function(e){var t=[1/0,1/0,-1/0,-1/0];return n(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t};
  149. /**
  150. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  151. *
  152. * @name feature
  153. * @param {Geometry} geometry input geometry
  154. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  155. * @param {Object} [options={}] Optional Parameters
  156. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  157. * @param {string|number} [options.id] Identifier associated with the Feature
  158. * @returns {Feature} a GeoJSON Feature
  159. * @example
  160. * var geometry = {
  161. * "type": "Point",
  162. * "coordinates": [110, 50]
  163. * };
  164. *
  165. * var feature = turf.feature(geometry);
  166. *
  167. * //=feature
  168. */
  169. function i(e,t,r){if(!u(
  170. // Optional Parameters
  171. r=r||{}))throw new Error("options is invalid");var n=r.bbox,a=r.id;
  172. // Validation
  173. if(void 0===e)throw new Error("geometry is required");if(t&&t.constructor!==Object)throw new Error("properties must be an Object");n&&l(n),a&&c(a);
  174. // Main
  175. var i={type:"Feature"};return a&&(i.id=a),n&&(i.bbox=n),i.properties=t||{},i.geometry=e,i}
  176. /**
  177. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  178. * For GeometryCollection type use `helpers.geometryCollection`
  179. *
  180. * @name geometry
  181. * @param {string} type Geometry Type
  182. * @param {Array<number>} coordinates Coordinates
  183. * @param {Object} [options={}] Optional Parameters
  184. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry
  185. * @returns {Geometry} a GeoJSON Geometry
  186. * @example
  187. * var type = 'Point';
  188. * var coordinates = [110, 50];
  189. *
  190. * var geometry = turf.geometry(type, coordinates);
  191. *
  192. * //=geometry
  193. */
  194. /**
  195. * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.
  196. *
  197. * @name polygon
  198. * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings
  199. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  200. * @param {Object} [options={}] Optional Parameters
  201. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  202. * @param {string|number} [options.id] Identifier associated with the Feature
  203. * @returns {Feature<Polygon>} Polygon Feature
  204. * @example
  205. * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });
  206. *
  207. * //=polygon
  208. */
  209. function o(e,t,r){if(!e)throw new Error("coordinates is required");for(var n=0;n<e.length;n++){var a=e[n];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var o=0;o<a[a.length-1].length;o++){
  210. // Check if first point of Polygon contains two numbers
  211. if(0===n&&0===o&&!s(a[0][0])||!s(a[0][1]))throw new Error("coordinates must contain numbers");if(a[a.length-1][o]!==a[0][o])throw new Error("First and last Position are not equivalent.")}}return i({type:"Polygon",coordinates:e},t,r)}
  212. /**
  213. * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.
  214. *
  215. * @name polygons
  216. * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates
  217. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  218. * @param {Object} [options={}] Optional Parameters
  219. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  220. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  221. * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection
  222. * @example
  223. * var polygons = turf.polygons([
  224. * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],
  225. * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],
  226. * ]);
  227. *
  228. * //=polygons
  229. */
  230. /**
  231. * isNumber
  232. *
  233. * @param {*} num Number to validate
  234. * @returns {boolean} true/false
  235. * @example
  236. * turf.isNumber(123)
  237. * //=true
  238. * turf.isNumber('foo')
  239. * //=false
  240. */
  241. function s(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}
  242. /**
  243. * isObject
  244. *
  245. * @param {*} input variable to validate
  246. * @returns {boolean} true/false
  247. * @example
  248. * turf.isObject({elevation: 10})
  249. * //=true
  250. * turf.isObject('foo')
  251. * //=false
  252. */function u(e){return!!e&&e.constructor===Object}
  253. /**
  254. * Validate BBox
  255. *
  256. * @private
  257. * @param {Array<number>} bbox BBox to validate
  258. * @returns {void}
  259. * @throws Error if BBox is not valid
  260. * @example
  261. * validateBBox([-180, -40, 110, 50])
  262. * //=OK
  263. * validateBBox([-180, -40])
  264. * //=Error
  265. * validateBBox('Foo')
  266. * //=Error
  267. * validateBBox(5)
  268. * //=Error
  269. * validateBBox(null)
  270. * //=Error
  271. * validateBBox(undefined)
  272. * //=Error
  273. */function l(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!s(e))throw new Error("bbox must only contain numbers")}))}
  274. /**
  275. * Validate Id
  276. *
  277. * @private
  278. * @param {string|number} id Id to validate
  279. * @returns {void}
  280. * @throws Error if Id is not valid
  281. * @example
  282. * validateId([-180, -40, 110, 50])
  283. * //=Error
  284. * validateId([-180, -40])
  285. * //=Error
  286. * validateId('Foo')
  287. * //=OK
  288. * validateId(5)
  289. * //=OK
  290. * validateId(null)
  291. * //=Error
  292. * validateId(undefined)
  293. * //=Error
  294. */function c(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}
  295. // Deprecated methods
  296. /* harmony default export */var d=// CONCATENATED MODULE: ./node_modules/@turf/bbox-polygon/main.es.js
  297. /**
  298. * Takes a bbox and returns an equivalent {@link Polygon|polygon}.
  299. *
  300. * @name bboxPolygon
  301. * @param {BBox} bbox extent in [minX, minY, maxX, maxY] order
  302. * @returns {Feature<Polygon>} a Polygon representation of the bounding box
  303. * @example
  304. * var bbox = [0, 0, 10, 10];
  305. *
  306. * var poly = turf.bboxPolygon(bbox);
  307. *
  308. * //addToMap
  309. * var addToMap = [poly]
  310. */
  311. function(e){l(e);
  312. // Convert BBox positions to Numbers
  313. // No performance loss for including Number()
  314. // https://github.com/Turfjs/turf/issues/1119
  315. var t=Number(e[0]),r=Number(e[1]),n=Number(e[2]),a=Number(e[3]);if(6===e.length)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var i=[t,r];return o([[i,[n,r],[n,a],[t,a],i]])};
  316. /* harmony default export */var f=// CONCATENATED MODULE: ./node_modules/@turf/envelope/main.es.js
  317. /**
  318. * Takes any number of features and returns a rectangular {@link Polygon} that encompasses all vertices.
  319. *
  320. * @name envelope
  321. * @param {GeoJSON} geojson input features
  322. * @returns {Feature<Polygon>} a rectangular Polygon feature that encompasses all vertices
  323. * @example
  324. * var features = turf.featureCollection([
  325. * turf.point([-75.343, 39.984], {"name": "Location A"}),
  326. * turf.point([-75.833, 39.284], {"name": "Location B"}),
  327. * turf.point([-75.534, 39.123], {"name": "Location C"})
  328. * ]);
  329. *
  330. * var enveloped = turf.envelope(features);
  331. *
  332. * //addToMap
  333. * var addToMap = [features, enveloped];
  334. */
  335. function(e){return d(a(e))};
  336. /***/},
  337. /***/4102:
  338. /***/function(e,t){"use strict";
  339. /**
  340. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  341. *
  342. * @name feature
  343. * @param {Geometry} geometry input geometry
  344. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  345. * @param {Object} [options={}] Optional Parameters
  346. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  347. * @param {string|number} [options.id] Identifier associated with the Feature
  348. * @returns {Feature} a GeoJSON Feature
  349. * @example
  350. * var geometry = {
  351. * "type": "Point",
  352. * "coordinates": [110, 50]
  353. * };
  354. *
  355. * var feature = turf.feature(geometry);
  356. *
  357. * //=feature
  358. */
  359. function r(e,t,r){void 0===r&&(r={});var n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}
  360. /**
  361. * Creates a {@link Point} {@link Feature} from a Position.
  362. *
  363. * @name point
  364. * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
  365. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  366. * @param {Object} [options={}] Optional Parameters
  367. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  368. * @param {string|number} [options.id] Identifier associated with the Feature
  369. * @returns {Feature<Point>} a Point feature
  370. * @example
  371. * var point = turf.point([-75.343, 39.984]);
  372. *
  373. * //=point
  374. */
  375. function n(e,t,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!h(e[0])||!h(e[1]))throw new Error("coordinates must contain numbers");return r({type:"Point",coordinates:e},t,n)}
  376. /**
  377. * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.
  378. *
  379. * @name polygon
  380. * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings
  381. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  382. * @param {Object} [options={}] Optional Parameters
  383. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  384. * @param {string|number} [options.id] Identifier associated with the Feature
  385. * @returns {Feature<Polygon>} Polygon Feature
  386. * @example
  387. * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });
  388. *
  389. * //=polygon
  390. */
  391. function a(e,t,n){void 0===n&&(n={});for(var a=0,i=e;a<i.length;a++){var o=i[a];if(o.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var s=0;s<o[o.length-1].length;s++)
  392. // Check if first point of Polygon contains two numbers
  393. if(o[o.length-1][s]!==o[0][s])throw new Error("First and last Position are not equivalent.")}return r({type:"Polygon",coordinates:e},t,n)}
  394. /**
  395. * Creates a {@link LineString} {@link Feature} from an Array of Positions.
  396. *
  397. * @name lineString
  398. * @param {Array<Array<number>>} coordinates an array of Positions
  399. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  400. * @param {Object} [options={}] Optional Parameters
  401. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  402. * @param {string|number} [options.id] Identifier associated with the Feature
  403. * @returns {Feature<LineString>} LineString Feature
  404. * @example
  405. * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});
  406. * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});
  407. *
  408. * //=linestring1
  409. * //=linestring2
  410. */
  411. function i(e,t,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return r({type:"LineString",coordinates:e},t,n)}
  412. /**
  413. * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.
  414. *
  415. * @name featureCollection
  416. * @param {Feature[]} features input features
  417. * @param {Object} [options={}] Optional Parameters
  418. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  419. * @param {string|number} [options.id] Identifier associated with the Feature
  420. * @returns {FeatureCollection} FeatureCollection of Features
  421. * @example
  422. * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});
  423. * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});
  424. * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});
  425. *
  426. * var collection = turf.featureCollection([
  427. * locationA,
  428. * locationB,
  429. * locationC
  430. * ]);
  431. *
  432. * //=collection
  433. */
  434. function o(e,t){void 0===t&&(t={});var r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}
  435. /**
  436. * Creates a {@link Feature<MultiLineString>} based on a
  437. * coordinate array. Properties can be added optionally.
  438. *
  439. * @name multiLineString
  440. * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings
  441. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  442. * @param {Object} [options={}] Optional Parameters
  443. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  444. * @param {string|number} [options.id] Identifier associated with the Feature
  445. * @returns {Feature<MultiLineString>} a MultiLineString feature
  446. * @throws {Error} if no coordinates are passed
  447. * @example
  448. * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);
  449. *
  450. * //=multiLine
  451. */
  452. function s(e,t,n){return void 0===n&&(n={}),r({type:"MultiLineString",coordinates:e},t,n)}
  453. /**
  454. * Creates a {@link Feature<MultiPoint>} based on a
  455. * coordinate array. Properties can be added optionally.
  456. *
  457. * @name multiPoint
  458. * @param {Array<Array<number>>} coordinates an array of Positions
  459. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  460. * @param {Object} [options={}] Optional Parameters
  461. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  462. * @param {string|number} [options.id] Identifier associated with the Feature
  463. * @returns {Feature<MultiPoint>} a MultiPoint feature
  464. * @throws {Error} if no coordinates are passed
  465. * @example
  466. * var multiPt = turf.multiPoint([[0,0],[10,10]]);
  467. *
  468. * //=multiPt
  469. */
  470. function u(e,t,n){return void 0===n&&(n={}),r({type:"MultiPoint",coordinates:e},t,n)}
  471. /**
  472. * Creates a {@link Feature<MultiPolygon>} based on a
  473. * coordinate array. Properties can be added optionally.
  474. *
  475. * @name multiPolygon
  476. * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons
  477. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  478. * @param {Object} [options={}] Optional Parameters
  479. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  480. * @param {string|number} [options.id] Identifier associated with the Feature
  481. * @returns {Feature<MultiPolygon>} a multipolygon feature
  482. * @throws {Error} if no coordinates are passed
  483. * @example
  484. * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);
  485. *
  486. * //=multiPoly
  487. *
  488. */
  489. function l(e,t,n){return void 0===n&&(n={}),r({type:"MultiPolygon",coordinates:e},t,n)}
  490. /**
  491. * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.
  492. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  493. *
  494. * @name radiansToLength
  495. * @param {number} radians in radians across the sphere
  496. * @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
  497. * meters, kilometres, kilometers.
  498. * @returns {number} distance
  499. */
  500. function c(e,r){void 0===r&&(r="kilometers");var n=t.factors[r];if(!n)throw new Error(r+" units is invalid");return e*n}
  501. /**
  502. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians
  503. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  504. *
  505. * @name lengthToRadians
  506. * @param {number} distance in real units
  507. * @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
  508. * meters, kilometres, kilometers.
  509. * @returns {number} radians
  510. */
  511. function d(e,r){void 0===r&&(r="kilometers");var n=t.factors[r];if(!n)throw new Error(r+" units is invalid");return e/n}
  512. /**
  513. * Converts an angle in radians to degrees
  514. *
  515. * @name radiansToDegrees
  516. * @param {number} radians angle in radians
  517. * @returns {number} degrees between 0 and 360 degrees
  518. */
  519. function f(e){return 180*(e%(2*Math.PI))/Math.PI}
  520. /**
  521. * isNumber
  522. *
  523. * @param {*} num Number to validate
  524. * @returns {boolean} true/false
  525. * @example
  526. * turf.isNumber(123)
  527. * //=true
  528. * turf.isNumber('foo')
  529. * //=false
  530. */
  531. function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Object.defineProperty(t,"__esModule",{value:!0}),
  532. /**
  533. * @module helpers
  534. */
  535. /**
  536. * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.
  537. *
  538. * @memberof helpers
  539. * @type {number}
  540. */
  541. t.earthRadius=6371008.8,
  542. /**
  543. * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.
  544. *
  545. * @memberof helpers
  546. * @type {Object}
  547. */
  548. t.factors={centimeters:100*t.earthRadius,centimetres:100*t.earthRadius,degrees:t.earthRadius/111325,feet:3.28084*t.earthRadius,inches:39.37*t.earthRadius,kilometers:t.earthRadius/1e3,kilometres:t.earthRadius/1e3,meters:t.earthRadius,metres:t.earthRadius,miles:t.earthRadius/1609.344,millimeters:1e3*t.earthRadius,millimetres:1e3*t.earthRadius,nauticalmiles:t.earthRadius/1852,radians:1,yards:1.0936*t.earthRadius},
  549. /**
  550. * Units of measurement factors based on 1 meter.
  551. *
  552. * @memberof helpers
  553. * @type {Object}
  554. */
  555. t.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/t.earthRadius,yards:1.0936133},
  556. /**
  557. * Area of measurement factors based on 1 square meter.
  558. *
  559. * @memberof helpers
  560. * @type {Object}
  561. */
  562. t.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},t.feature=r,t.geometry=
  563. /**
  564. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  565. * For GeometryCollection type use `helpers.geometryCollection`
  566. *
  567. * @name geometry
  568. * @param {string} type Geometry Type
  569. * @param {Array<any>} coordinates Coordinates
  570. * @param {Object} [options={}] Optional Parameters
  571. * @returns {Geometry} a GeoJSON Geometry
  572. * @example
  573. * var type = "Point";
  574. * var coordinates = [110, 50];
  575. * var geometry = turf.geometry(type, coordinates);
  576. * // => geometry
  577. */
  578. function(e,t,r){switch(void 0===r&&(r={}),e){case"Point":return n(t).geometry;case"LineString":return i(t).geometry;case"Polygon":return a(t).geometry;case"MultiPoint":return u(t).geometry;case"MultiLineString":return s(t).geometry;case"MultiPolygon":return l(t).geometry;default:throw new Error(e+" is invalid")}},t.point=n,t.points=
  579. /**
  580. * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
  581. *
  582. * @name points
  583. * @param {Array<Array<number>>} coordinates an array of Points
  584. * @param {Object} [properties={}] Translate these properties to each Feature
  585. * @param {Object} [options={}] Optional Parameters
  586. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]
  587. * associated with the FeatureCollection
  588. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  589. * @returns {FeatureCollection<Point>} Point Feature
  590. * @example
  591. * var points = turf.points([
  592. * [-75, 39],
  593. * [-80, 45],
  594. * [-78, 50]
  595. * ]);
  596. *
  597. * //=points
  598. */
  599. function(e,t,r){return void 0===r&&(r={}),o(e.map((function(e){return n(e,t)})),r)},t.polygon=a,t.polygons=
  600. /**
  601. * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.
  602. *
  603. * @name polygons
  604. * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates
  605. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  606. * @param {Object} [options={}] Optional Parameters
  607. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  608. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  609. * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection
  610. * @example
  611. * var polygons = turf.polygons([
  612. * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],
  613. * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],
  614. * ]);
  615. *
  616. * //=polygons
  617. */
  618. function(e,t,r){return void 0===r&&(r={}),o(e.map((function(e){return a(e,t)})),r)},t.lineString=i,t.lineStrings=
  619. /**
  620. * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.
  621. *
  622. * @name lineStrings
  623. * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings
  624. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  625. * @param {Object} [options={}] Optional Parameters
  626. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]
  627. * associated with the FeatureCollection
  628. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  629. * @returns {FeatureCollection<LineString>} LineString FeatureCollection
  630. * @example
  631. * var linestrings = turf.lineStrings([
  632. * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],
  633. * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]
  634. * ]);
  635. *
  636. * //=linestrings
  637. */
  638. function(e,t,r){return void 0===r&&(r={}),o(e.map((function(e){return i(e,t)})),r)},t.featureCollection=o,t.multiLineString=s,t.multiPoint=u,t.multiPolygon=l,t.geometryCollection=
  639. /**
  640. * Creates a {@link Feature<GeometryCollection>} based on a
  641. * coordinate array. Properties can be added optionally.
  642. *
  643. * @name geometryCollection
  644. * @param {Array<Geometry>} geometries an array of GeoJSON Geometries
  645. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  646. * @param {Object} [options={}] Optional Parameters
  647. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  648. * @param {string|number} [options.id] Identifier associated with the Feature
  649. * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature
  650. * @example
  651. * var pt = turf.geometry("Point", [100, 0]);
  652. * var line = turf.geometry("LineString", [[101, 0], [102, 1]]);
  653. * var collection = turf.geometryCollection([pt, line]);
  654. *
  655. * // => collection
  656. */
  657. function(e,t,n){return void 0===n&&(n={}),r({type:"GeometryCollection",geometries:e},t,n)},t.round=
  658. /**
  659. * Round number to precision
  660. *
  661. * @param {number} num Number
  662. * @param {number} [precision=0] Precision
  663. * @returns {number} rounded number
  664. * @example
  665. * turf.round(120.4321)
  666. * //=120
  667. *
  668. * turf.round(120.4321, 2)
  669. * //=120.43
  670. */
  671. function(e,t){if(void 0===t&&(t=0),t&&!(t>=0))throw new Error("precision must be a positive number");var r=Math.pow(10,t||0);return Math.round(e*r)/r},t.radiansToLength=c,t.lengthToRadians=d,t.lengthToDegrees=
  672. /**
  673. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees
  674. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet
  675. *
  676. * @name lengthToDegrees
  677. * @param {number} distance in real units
  678. * @param {string} [units="kilometers"] can be degrees, radians, miles, inches, yards, metres,
  679. * meters, kilometres, kilometers.
  680. * @returns {number} degrees
  681. */
  682. function(e,t){return f(d(e,t))},t.bearingToAzimuth=
  683. /**
  684. * Converts any bearing angle from the north line direction (positive clockwise)
  685. * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line
  686. *
  687. * @name bearingToAzimuth
  688. * @param {number} bearing angle, between -180 and +180 degrees
  689. * @returns {number} angle between 0 and 360 degrees
  690. */
  691. function(e){var t=e%360;return t<0&&(t+=360),t},t.radiansToDegrees=f,t.degreesToRadians=
  692. /**
  693. * Converts an angle in degrees to radians
  694. *
  695. * @name degreesToRadians
  696. * @param {number} degrees angle between 0 and 360 degrees
  697. * @returns {number} angle in radians
  698. */
  699. function(e){return e%360*Math.PI/180},t.convertLength=
  700. /**
  701. * Converts a length to the requested unit.
  702. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  703. *
  704. * @param {number} length to be converted
  705. * @param {Units} [originalUnit="kilometers"] of the length
  706. * @param {Units} [finalUnit="kilometers"] returned unit
  707. * @returns {number} the converted length
  708. */
  709. function(e,t,r){if(void 0===t&&(t="kilometers"),void 0===r&&(r="kilometers"),!(e>=0))throw new Error("length must be a positive number");return c(d(e,t),r)},t.convertArea=
  710. /**
  711. * Converts a area to the requested unit.
  712. * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares
  713. * @param {number} area to be converted
  714. * @param {Units} [originalUnit="meters"] of the distance
  715. * @param {Units} [finalUnit="kilometers"] returned unit
  716. * @returns {number} the converted area
  717. */
  718. function(e,r,n){if(void 0===r&&(r="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var a=t.areaFactors[r];if(!a)throw new Error("invalid original units");var i=t.areaFactors[n];if(!i)throw new Error("invalid final units");return e/a*i},t.isNumber=h,t.isObject=
  719. /**
  720. * isObject
  721. *
  722. * @param {*} input variable to validate
  723. * @returns {boolean} true/false
  724. * @example
  725. * turf.isObject({elevation: 10})
  726. * //=true
  727. * turf.isObject('foo')
  728. * //=false
  729. */
  730. function(e){return!!e&&e.constructor===Object},t.validateBBox=
  731. /**
  732. * Validate BBox
  733. *
  734. * @private
  735. * @param {Array<number>} bbox BBox to validate
  736. * @returns {void}
  737. * @throws Error if BBox is not valid
  738. * @example
  739. * validateBBox([-180, -40, 110, 50])
  740. * //=OK
  741. * validateBBox([-180, -40])
  742. * //=Error
  743. * validateBBox('Foo')
  744. * //=Error
  745. * validateBBox(5)
  746. * //=Error
  747. * validateBBox(null)
  748. * //=Error
  749. * validateBBox(undefined)
  750. * //=Error
  751. */
  752. function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},t.validateId=
  753. /**
  754. * Validate Id
  755. *
  756. * @private
  757. * @param {string|number} id Id to validate
  758. * @returns {void}
  759. * @throws Error if Id is not valid
  760. * @example
  761. * validateId([-180, -40, 110, 50])
  762. * //=Error
  763. * validateId([-180, -40])
  764. * //=Error
  765. * validateId('Foo')
  766. * //=OK
  767. * validateId(5)
  768. * //=OK
  769. * validateId(null)
  770. * //=Error
  771. * validateId(undefined)
  772. * //=Error
  773. */
  774. function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}},
  775. /***/1540:
  776. /***/function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(4102);
  777. /**
  778. * Callback for coordEach
  779. *
  780. * @callback coordEachCallback
  781. * @param {Array<number>} currentCoord The current coordinate being processed.
  782. * @param {number} coordIndex The current index of the coordinate being processed.
  783. * @param {number} featureIndex The current index of the Feature being processed.
  784. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  785. * @param {number} geometryIndex The current index of the Geometry being processed.
  786. */
  787. /**
  788. * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()
  789. *
  790. * @name coordEach
  791. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  792. * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)
  793. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  794. * @returns {void}
  795. * @example
  796. * var features = turf.featureCollection([
  797. * turf.point([26, 37], {"foo": "bar"}),
  798. * turf.point([36, 53], {"hello": "world"})
  799. * ]);
  800. *
  801. * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  802. * //=currentCoord
  803. * //=coordIndex
  804. * //=featureIndex
  805. * //=multiFeatureIndex
  806. * //=geometryIndex
  807. * });
  808. */function a(e,t,r){
  809. // Handles null Geometry -- Skips this GeoJSON
  810. if(null!==e)
  811. // This logic may look a little weird. The reason why it is that way
  812. // is because it's trying to be fast. GeoJSON supports multiple kinds
  813. // of objects at its root: FeatureCollection, Features, Geometries.
  814. // This function has the responsibility of handling all of them, and that
  815. // means that some of the `for` loops you see below actually just don't apply
  816. // to certain inputs. For instance, if you give this just a
  817. // Point geometry, then both loops are short-circuited and all we do
  818. // is gradually rename the input until it's called 'geometry'.
  819. // This also aims to allocate as few resources as possible: just a
  820. // few numbers and booleans, rather than any temporary arrays as would
  821. // be required with the normalization approach.
  822. for(var n,i,o,s,u,l,c,d,f=0,h=0,p=e.type,y="FeatureCollection"===p,m="Feature"===p,v=y?e.features.length:1,g=0;g<v;g++){u=(d=!!(c=y?e.features[g].geometry:m?e.geometry:e)&&"GeometryCollection"===c.type)?c.geometries.length:1;for(var b=0;b<u;b++){var w=0,S=0;
  823. // Handles null Geometry -- Skips this geometry
  824. if(null!==(s=d?c.geometries[b]:c)){l=s.coordinates;var L=s.type;switch(f=!r||"Polygon"!==L&&"MultiPolygon"!==L?0:1,L){case null:break;case"Point":if(!1===t(l,h,g,w,S))return!1;h++,w++;break;case"LineString":case"MultiPoint":for(n=0;n<l.length;n++){if(!1===t(l[n],h,g,w,S))return!1;h++,"MultiPoint"===L&&w++}"LineString"===L&&w++;break;case"Polygon":case"MultiLineString":for(n=0;n<l.length;n++){for(i=0;i<l[n].length-f;i++){if(!1===t(l[n][i],h,g,w,S))return!1;h++}"MultiLineString"===L&&w++,"Polygon"===L&&S++}"Polygon"===L&&w++;break;case"MultiPolygon":for(n=0;n<l.length;n++){for(S=0,i=0;i<l[n].length;i++){for(o=0;o<l[n][i].length-f;o++){if(!1===t(l[n][i][o],h,g,w,S))return!1;h++}S++}w++}break;case"GeometryCollection":for(n=0;n<s.geometries.length;n++)if(!1===a(s.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}
  825. /**
  826. * Callback for coordReduce
  827. *
  828. * The first time the callback function is called, the values provided as arguments depend
  829. * on whether the reduce method has an initialValue argument.
  830. *
  831. * If an initialValue is provided to the reduce method:
  832. * - The previousValue argument is initialValue.
  833. * - The currentValue argument is the value of the first element present in the array.
  834. *
  835. * If an initialValue is not provided:
  836. * - The previousValue argument is the value of the first element present in the array.
  837. * - The currentValue argument is the value of the second element present in the array.
  838. *
  839. * @callback coordReduceCallback
  840. * @param {*} previousValue The accumulated value previously returned in the last invocation
  841. * of the callback, or initialValue, if supplied.
  842. * @param {Array<number>} currentCoord The current coordinate being processed.
  843. * @param {number} coordIndex The current index of the coordinate being processed.
  844. * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.
  845. * @param {number} featureIndex The current index of the Feature being processed.
  846. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  847. * @param {number} geometryIndex The current index of the Geometry being processed.
  848. */
  849. /**
  850. * Reduce coordinates in any GeoJSON object, similar to Array.reduce()
  851. *
  852. * @name coordReduce
  853. * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object
  854. * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)
  855. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  856. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  857. * @returns {*} The value that results from the reduction.
  858. * @example
  859. * var features = turf.featureCollection([
  860. * turf.point([26, 37], {"foo": "bar"}),
  861. * turf.point([36, 53], {"hello": "world"})
  862. * ]);
  863. *
  864. * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  865. * //=previousValue
  866. * //=currentCoord
  867. * //=coordIndex
  868. * //=featureIndex
  869. * //=multiFeatureIndex
  870. * //=geometryIndex
  871. * return currentCoord;
  872. * });
  873. */
  874. /**
  875. * Callback for propEach
  876. *
  877. * @callback propEachCallback
  878. * @param {Object} currentProperties The current Properties being processed.
  879. * @param {number} featureIndex The current index of the Feature being processed.
  880. */
  881. /**
  882. * Iterate over properties in any GeoJSON object, similar to Array.forEach()
  883. *
  884. * @name propEach
  885. * @param {FeatureCollection|Feature} geojson any GeoJSON object
  886. * @param {Function} callback a method that takes (currentProperties, featureIndex)
  887. * @returns {void}
  888. * @example
  889. * var features = turf.featureCollection([
  890. * turf.point([26, 37], {foo: 'bar'}),
  891. * turf.point([36, 53], {hello: 'world'})
  892. * ]);
  893. *
  894. * turf.propEach(features, function (currentProperties, featureIndex) {
  895. * //=currentProperties
  896. * //=featureIndex
  897. * });
  898. */
  899. function i(e,t){var r;switch(e.type){case"FeatureCollection":for(r=0;r<e.features.length&&!1!==t(e.features[r].properties,r);r++);break;case"Feature":t(e.properties,0)}}
  900. /**
  901. * Callback for propReduce
  902. *
  903. * The first time the callback function is called, the values provided as arguments depend
  904. * on whether the reduce method has an initialValue argument.
  905. *
  906. * If an initialValue is provided to the reduce method:
  907. * - The previousValue argument is initialValue.
  908. * - The currentValue argument is the value of the first element present in the array.
  909. *
  910. * If an initialValue is not provided:
  911. * - The previousValue argument is the value of the first element present in the array.
  912. * - The currentValue argument is the value of the second element present in the array.
  913. *
  914. * @callback propReduceCallback
  915. * @param {*} previousValue The accumulated value previously returned in the last invocation
  916. * of the callback, or initialValue, if supplied.
  917. * @param {*} currentProperties The current Properties being processed.
  918. * @param {number} featureIndex The current index of the Feature being processed.
  919. */
  920. /**
  921. * Reduce properties in any GeoJSON object into a single value,
  922. * similar to how Array.reduce works. However, in this case we lazily run
  923. * the reduction, so an array of all properties is unnecessary.
  924. *
  925. * @name propReduce
  926. * @param {FeatureCollection|Feature} geojson any GeoJSON object
  927. * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)
  928. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  929. * @returns {*} The value that results from the reduction.
  930. * @example
  931. * var features = turf.featureCollection([
  932. * turf.point([26, 37], {foo: 'bar'}),
  933. * turf.point([36, 53], {hello: 'world'})
  934. * ]);
  935. *
  936. * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {
  937. * //=previousValue
  938. * //=currentProperties
  939. * //=featureIndex
  940. * return currentProperties
  941. * });
  942. */
  943. /**
  944. * Callback for featureEach
  945. *
  946. * @callback featureEachCallback
  947. * @param {Feature<any>} currentFeature The current Feature being processed.
  948. * @param {number} featureIndex The current index of the Feature being processed.
  949. */
  950. /**
  951. * Iterate over features in any GeoJSON object, similar to
  952. * Array.forEach.
  953. *
  954. * @name featureEach
  955. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  956. * @param {Function} callback a method that takes (currentFeature, featureIndex)
  957. * @returns {void}
  958. * @example
  959. * var features = turf.featureCollection([
  960. * turf.point([26, 37], {foo: 'bar'}),
  961. * turf.point([36, 53], {hello: 'world'})
  962. * ]);
  963. *
  964. * turf.featureEach(features, function (currentFeature, featureIndex) {
  965. * //=currentFeature
  966. * //=featureIndex
  967. * });
  968. */
  969. function o(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var r=0;r<e.features.length&&!1!==t(e.features[r],r);r++);}
  970. /**
  971. * Callback for featureReduce
  972. *
  973. * The first time the callback function is called, the values provided as arguments depend
  974. * on whether the reduce method has an initialValue argument.
  975. *
  976. * If an initialValue is provided to the reduce method:
  977. * - The previousValue argument is initialValue.
  978. * - The currentValue argument is the value of the first element present in the array.
  979. *
  980. * If an initialValue is not provided:
  981. * - The previousValue argument is the value of the first element present in the array.
  982. * - The currentValue argument is the value of the second element present in the array.
  983. *
  984. * @callback featureReduceCallback
  985. * @param {*} previousValue The accumulated value previously returned in the last invocation
  986. * of the callback, or initialValue, if supplied.
  987. * @param {Feature} currentFeature The current Feature being processed.
  988. * @param {number} featureIndex The current index of the Feature being processed.
  989. */
  990. /**
  991. * Reduce features in any GeoJSON object, similar to Array.reduce().
  992. *
  993. * @name featureReduce
  994. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  995. * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)
  996. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  997. * @returns {*} The value that results from the reduction.
  998. * @example
  999. * var features = turf.featureCollection([
  1000. * turf.point([26, 37], {"foo": "bar"}),
  1001. * turf.point([36, 53], {"hello": "world"})
  1002. * ]);
  1003. *
  1004. * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {
  1005. * //=previousValue
  1006. * //=currentFeature
  1007. * //=featureIndex
  1008. * return currentFeature
  1009. * });
  1010. */
  1011. /**
  1012. * Callback for geomEach
  1013. *
  1014. * @callback geomEachCallback
  1015. * @param {Geometry} currentGeometry The current Geometry being processed.
  1016. * @param {number} featureIndex The current index of the Feature being processed.
  1017. * @param {Object} featureProperties The current Feature Properties being processed.
  1018. * @param {Array<number>} featureBBox The current Feature BBox being processed.
  1019. * @param {number|string} featureId The current Feature Id being processed.
  1020. */
  1021. /**
  1022. * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()
  1023. *
  1024. * @name geomEach
  1025. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1026. * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)
  1027. * @returns {void}
  1028. * @example
  1029. * var features = turf.featureCollection([
  1030. * turf.point([26, 37], {foo: 'bar'}),
  1031. * turf.point([36, 53], {hello: 'world'})
  1032. * ]);
  1033. *
  1034. * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {
  1035. * //=currentGeometry
  1036. * //=featureIndex
  1037. * //=featureProperties
  1038. * //=featureBBox
  1039. * //=featureId
  1040. * });
  1041. */
  1042. function s(e,t){var r,n,a,i,o,s,u,l,c,d,f=0,h="FeatureCollection"===e.type,p="Feature"===e.type,y=h?e.features.length:1;
  1043. // This logic may look a little weird. The reason why it is that way
  1044. // is because it's trying to be fast. GeoJSON supports multiple kinds
  1045. // of objects at its root: FeatureCollection, Features, Geometries.
  1046. // This function has the responsibility of handling all of them, and that
  1047. // means that some of the `for` loops you see below actually just don't apply
  1048. // to certain inputs. For instance, if you give this just a
  1049. // Point geometry, then both loops are short-circuited and all we do
  1050. // is gradually rename the input until it's called 'geometry'.
  1051. // This also aims to allocate as few resources as possible: just a
  1052. // few numbers and booleans, rather than any temporary arrays as would
  1053. // be required with the normalization approach.
  1054. for(r=0;r<y;r++){for(s=h?e.features[r].geometry:p?e.geometry:e,l=h?e.features[r].properties:p?e.properties:{},c=h?e.features[r].bbox:p?e.bbox:void 0,d=h?e.features[r].id:p?e.id:void 0,o=(u=!!s&&"GeometryCollection"===s.type)?s.geometries.length:1,a=0;a<o;a++)
  1055. // Handle null Geometry
  1056. if(null!==(i=u?s.geometries[a]:s))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===t(i,f,l,c,d))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===t(i.geometries[n],f,l,c,d))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===t(null,f,l,c,d))return!1;
  1057. // Only increase `featureIndex` per each feature
  1058. f++}}
  1059. /**
  1060. * Callback for geomReduce
  1061. *
  1062. * The first time the callback function is called, the values provided as arguments depend
  1063. * on whether the reduce method has an initialValue argument.
  1064. *
  1065. * If an initialValue is provided to the reduce method:
  1066. * - The previousValue argument is initialValue.
  1067. * - The currentValue argument is the value of the first element present in the array.
  1068. *
  1069. * If an initialValue is not provided:
  1070. * - The previousValue argument is the value of the first element present in the array.
  1071. * - The currentValue argument is the value of the second element present in the array.
  1072. *
  1073. * @callback geomReduceCallback
  1074. * @param {*} previousValue The accumulated value previously returned in the last invocation
  1075. * of the callback, or initialValue, if supplied.
  1076. * @param {Geometry} currentGeometry The current Geometry being processed.
  1077. * @param {number} featureIndex The current index of the Feature being processed.
  1078. * @param {Object} featureProperties The current Feature Properties being processed.
  1079. * @param {Array<number>} featureBBox The current Feature BBox being processed.
  1080. * @param {number|string} featureId The current Feature Id being processed.
  1081. */
  1082. /**
  1083. * Reduce geometry in any GeoJSON object, similar to Array.reduce().
  1084. *
  1085. * @name geomReduce
  1086. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1087. * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)
  1088. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  1089. * @returns {*} The value that results from the reduction.
  1090. * @example
  1091. * var features = turf.featureCollection([
  1092. * turf.point([26, 37], {foo: 'bar'}),
  1093. * turf.point([36, 53], {hello: 'world'})
  1094. * ]);
  1095. *
  1096. * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {
  1097. * //=previousValue
  1098. * //=currentGeometry
  1099. * //=featureIndex
  1100. * //=featureProperties
  1101. * //=featureBBox
  1102. * //=featureId
  1103. * return currentGeometry
  1104. * });
  1105. */
  1106. /**
  1107. * Callback for flattenEach
  1108. *
  1109. * @callback flattenEachCallback
  1110. * @param {Feature} currentFeature The current flattened feature being processed.
  1111. * @param {number} featureIndex The current index of the Feature being processed.
  1112. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1113. */
  1114. /**
  1115. * Iterate over flattened features in any GeoJSON object, similar to
  1116. * Array.forEach.
  1117. *
  1118. * @name flattenEach
  1119. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1120. * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)
  1121. * @example
  1122. * var features = turf.featureCollection([
  1123. * turf.point([26, 37], {foo: 'bar'}),
  1124. * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})
  1125. * ]);
  1126. *
  1127. * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {
  1128. * //=currentFeature
  1129. * //=featureIndex
  1130. * //=multiFeatureIndex
  1131. * });
  1132. */
  1133. function u(e,t){s(e,(function(e,r,a,i,o){
  1134. // Callback for single geometry
  1135. var s,u=null===e?null:e.type;switch(u){case null:case"Point":case"LineString":case"Polygon":return!1!==t(n.feature(e,a,{bbox:i,id:o}),r,0)&&void 0}
  1136. // Callback for multi-geometry
  1137. switch(u){case"MultiPoint":s="Point";break;case"MultiLineString":s="LineString";break;case"MultiPolygon":s="Polygon"}for(var l=0;l<e.coordinates.length;l++){var c={type:s,coordinates:e.coordinates[l]};if(!1===t(n.feature(c,a),r,l))return!1}}))}
  1138. /**
  1139. * Callback for flattenReduce
  1140. *
  1141. * The first time the callback function is called, the values provided as arguments depend
  1142. * on whether the reduce method has an initialValue argument.
  1143. *
  1144. * If an initialValue is provided to the reduce method:
  1145. * - The previousValue argument is initialValue.
  1146. * - The currentValue argument is the value of the first element present in the array.
  1147. *
  1148. * If an initialValue is not provided:
  1149. * - The previousValue argument is the value of the first element present in the array.
  1150. * - The currentValue argument is the value of the second element present in the array.
  1151. *
  1152. * @callback flattenReduceCallback
  1153. * @param {*} previousValue The accumulated value previously returned in the last invocation
  1154. * of the callback, or initialValue, if supplied.
  1155. * @param {Feature} currentFeature The current Feature being processed.
  1156. * @param {number} featureIndex The current index of the Feature being processed.
  1157. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1158. */
  1159. /**
  1160. * Reduce flattened features in any GeoJSON object, similar to Array.reduce().
  1161. *
  1162. * @name flattenReduce
  1163. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1164. * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)
  1165. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  1166. * @returns {*} The value that results from the reduction.
  1167. * @example
  1168. * var features = turf.featureCollection([
  1169. * turf.point([26, 37], {foo: 'bar'}),
  1170. * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})
  1171. * ]);
  1172. *
  1173. * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {
  1174. * //=previousValue
  1175. * //=currentFeature
  1176. * //=featureIndex
  1177. * //=multiFeatureIndex
  1178. * return currentFeature
  1179. * });
  1180. */
  1181. /**
  1182. * Callback for segmentEach
  1183. *
  1184. * @callback segmentEachCallback
  1185. * @param {Feature<LineString>} currentSegment The current Segment being processed.
  1186. * @param {number} featureIndex The current index of the Feature being processed.
  1187. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1188. * @param {number} geometryIndex The current index of the Geometry being processed.
  1189. * @param {number} segmentIndex The current index of the Segment being processed.
  1190. * @returns {void}
  1191. */
  1192. /**
  1193. * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()
  1194. * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.
  1195. *
  1196. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON
  1197. * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)
  1198. * @returns {void}
  1199. * @example
  1200. * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);
  1201. *
  1202. * // Iterate over GeoJSON by 2-vertex segments
  1203. * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {
  1204. * //=currentSegment
  1205. * //=featureIndex
  1206. * //=multiFeatureIndex
  1207. * //=geometryIndex
  1208. * //=segmentIndex
  1209. * });
  1210. *
  1211. * // Calculate the total number of segments
  1212. * var total = 0;
  1213. * turf.segmentEach(polygon, function () {
  1214. * total++;
  1215. * });
  1216. */
  1217. function l(e,t){u(e,(function(e,r,i){var o=0;
  1218. // Exclude null Geometries
  1219. if(e.geometry){
  1220. // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.
  1221. var s=e.geometry.type;if("Point"!==s&&"MultiPoint"!==s){
  1222. // Generate 2-vertex line segments
  1223. var u,l=0,c=0,d=0;return!1!==a(e,(function(a,s,f,h,p){
  1224. // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`
  1225. if(void 0===u||r>l||h>c||p>d)return u=a,l=r,c=h,d=p,void(o=0);var y=n.lineString([u,a],e.properties);if(!1===t(y,r,i,p,o))return!1;o++,u=a}))&&void 0}}}))}
  1226. /**
  1227. * Callback for segmentReduce
  1228. *
  1229. * The first time the callback function is called, the values provided as arguments depend
  1230. * on whether the reduce method has an initialValue argument.
  1231. *
  1232. * If an initialValue is provided to the reduce method:
  1233. * - The previousValue argument is initialValue.
  1234. * - The currentValue argument is the value of the first element present in the array.
  1235. *
  1236. * If an initialValue is not provided:
  1237. * - The previousValue argument is the value of the first element present in the array.
  1238. * - The currentValue argument is the value of the second element present in the array.
  1239. *
  1240. * @callback segmentReduceCallback
  1241. * @param {*} previousValue The accumulated value previously returned in the last invocation
  1242. * of the callback, or initialValue, if supplied.
  1243. * @param {Feature<LineString>} currentSegment The current Segment being processed.
  1244. * @param {number} featureIndex The current index of the Feature being processed.
  1245. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1246. * @param {number} geometryIndex The current index of the Geometry being processed.
  1247. * @param {number} segmentIndex The current index of the Segment being processed.
  1248. */
  1249. /**
  1250. * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()
  1251. * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.
  1252. *
  1253. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON
  1254. * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)
  1255. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  1256. * @returns {void}
  1257. * @example
  1258. * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);
  1259. *
  1260. * // Iterate over GeoJSON by 2-vertex segments
  1261. * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {
  1262. * //= previousSegment
  1263. * //= currentSegment
  1264. * //= featureIndex
  1265. * //= multiFeatureIndex
  1266. * //= geometryIndex
  1267. * //= segmentIndex
  1268. * return currentSegment
  1269. * });
  1270. *
  1271. * // Calculate the total number of segments
  1272. * var initialValue = 0
  1273. * var total = turf.segmentReduce(polygon, function (previousValue) {
  1274. * previousValue++;
  1275. * return previousValue;
  1276. * }, initialValue);
  1277. */
  1278. /**
  1279. * Callback for lineEach
  1280. *
  1281. * @callback lineEachCallback
  1282. * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed
  1283. * @param {number} featureIndex The current index of the Feature being processed
  1284. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed
  1285. * @param {number} geometryIndex The current index of the Geometry being processed
  1286. */
  1287. /**
  1288. * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,
  1289. * similar to Array.forEach.
  1290. *
  1291. * @name lineEach
  1292. * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object
  1293. * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)
  1294. * @example
  1295. * var multiLine = turf.multiLineString([
  1296. * [[26, 37], [35, 45]],
  1297. * [[36, 53], [38, 50], [41, 55]]
  1298. * ]);
  1299. *
  1300. * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {
  1301. * //=currentLine
  1302. * //=featureIndex
  1303. * //=multiFeatureIndex
  1304. * //=geometryIndex
  1305. * });
  1306. */
  1307. function c(e,t){
  1308. // validation
  1309. if(!e)throw new Error("geojson is required");u(e,(function(e,r,a){if(null!==e.geometry){var i=e.geometry.type,o=e.geometry.coordinates;switch(i){case"LineString":if(!1===t(e,r,a,0,0))return!1;break;case"Polygon":for(var s=0;s<o.length;s++)if(!1===t(n.lineString(o[s],e.properties),r,a,s))return!1}}}))}
  1310. /**
  1311. * Callback for lineReduce
  1312. *
  1313. * The first time the callback function is called, the values provided as arguments depend
  1314. * on whether the reduce method has an initialValue argument.
  1315. *
  1316. * If an initialValue is provided to the reduce method:
  1317. * - The previousValue argument is initialValue.
  1318. * - The currentValue argument is the value of the first element present in the array.
  1319. *
  1320. * If an initialValue is not provided:
  1321. * - The previousValue argument is the value of the first element present in the array.
  1322. * - The currentValue argument is the value of the second element present in the array.
  1323. *
  1324. * @callback lineReduceCallback
  1325. * @param {*} previousValue The accumulated value previously returned in the last invocation
  1326. * of the callback, or initialValue, if supplied.
  1327. * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed.
  1328. * @param {number} featureIndex The current index of the Feature being processed
  1329. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed
  1330. * @param {number} geometryIndex The current index of the Geometry being processed
  1331. */
  1332. /**
  1333. * Reduce features in any GeoJSON object, similar to Array.reduce().
  1334. *
  1335. * @name lineReduce
  1336. * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object
  1337. * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)
  1338. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  1339. * @returns {*} The value that results from the reduction.
  1340. * @example
  1341. * var multiPoly = turf.multiPolygon([
  1342. * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),
  1343. * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])
  1344. * ]);
  1345. *
  1346. * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {
  1347. * //=previousValue
  1348. * //=currentLine
  1349. * //=featureIndex
  1350. * //=multiFeatureIndex
  1351. * //=geometryIndex
  1352. * return currentLine
  1353. * });
  1354. */t.coordAll=
  1355. /**
  1356. * Get all coordinates from any GeoJSON object.
  1357. *
  1358. * @name coordAll
  1359. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1360. * @returns {Array<Array<number>>} coordinate position array
  1361. * @example
  1362. * var features = turf.featureCollection([
  1363. * turf.point([26, 37], {foo: 'bar'}),
  1364. * turf.point([36, 53], {hello: 'world'})
  1365. * ]);
  1366. *
  1367. * var coords = turf.coordAll(features);
  1368. * //= [[26, 37], [36, 53]]
  1369. */
  1370. function(e){var t=[];return a(e,(function(e){t.push(e)})),t},t.coordEach=a,t.coordReduce=function(e,t,r,n){var i=r;return a(e,(function(e,n,a,o,s){i=0===n&&void 0===r?e:t(i,e,n,a,o,s)}),n),i},t.featureEach=o,t.featureReduce=function(e,t,r){var n=r;return o(e,(function(e,a){n=0===a&&void 0===r?e:t(n,e,a)})),n},t.findPoint=
  1371. /**
  1372. * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.
  1373. *
  1374. * Negative indexes are permitted.
  1375. *
  1376. * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry
  1377. * @param {Object} [options={}] Optional parameters
  1378. * @param {number} [options.featureIndex=0] Feature Index
  1379. * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index
  1380. * @param {number} [options.geometryIndex=0] Geometry Index
  1381. * @param {number} [options.coordIndex=0] Coord Index
  1382. * @param {Object} [options.properties={}] Translate Properties to output Point
  1383. * @param {BBox} [options.bbox={}] Translate BBox to output Point
  1384. * @param {number|string} [options.id={}] Translate Id to output Point
  1385. * @returns {Feature<Point>} 2-vertex GeoJSON Feature Point
  1386. * @example
  1387. * var multiLine = turf.multiLineString([
  1388. * [[10, 10], [50, 30], [30, 40]],
  1389. * [[-10, -10], [-50, -30], [-30, -40]]
  1390. * ]);
  1391. *
  1392. * // First Segment (defaults are 0)
  1393. * turf.findPoint(multiLine);
  1394. * // => Feature<Point<[10, 10]>>
  1395. *
  1396. * // First Segment of the 2nd Multi-Feature
  1397. * turf.findPoint(multiLine, {multiFeatureIndex: 1});
  1398. * // => Feature<Point<[-10, -10]>>
  1399. *
  1400. * // Last Segment of last Multi-Feature
  1401. * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});
  1402. * // => Feature<Point<[-30, -40]>>
  1403. */
  1404. function(e,t){if(
  1405. // Optional Parameters
  1406. t=t||{},!n.isObject(t))throw new Error("options is invalid");var r,a=t.featureIndex||0,i=t.multiFeatureIndex||0,o=t.geometryIndex||0,s=t.coordIndex||0,u=t.properties;switch(e.type){case"FeatureCollection":a<0&&(a=e.features.length+a),u=u||e.features[a].properties,r=e.features[a].geometry;break;case"Feature":u=u||e.properties,r=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=e;break;default:throw new Error("geojson is invalid")}
  1407. // Find Coord Index
  1408. if(null===r)return null;var l=r.coordinates;switch(r.type){case"Point":return n.point(l,u,t);case"MultiPoint":return i<0&&(i=l.length+i),n.point(l[i],u,t);case"LineString":return s<0&&(s=l.length+s),n.point(l[s],u,t);case"Polygon":return o<0&&(o=l.length+o),s<0&&(s=l[o].length+s),n.point(l[o][s],u,t);case"MultiLineString":return i<0&&(i=l.length+i),s<0&&(s=l[i].length+s),n.point(l[i][s],u,t);case"MultiPolygon":return i<0&&(i=l.length+i),o<0&&(o=l[i].length+o),s<0&&(s=l[i][o].length-s),n.point(l[i][o][s],u,t)}throw new Error("geojson is invalid")},t.findSegment=
  1409. /**
  1410. * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.
  1411. *
  1412. * Negative indexes are permitted.
  1413. * Point & MultiPoint will always return null.
  1414. *
  1415. * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry
  1416. * @param {Object} [options={}] Optional parameters
  1417. * @param {number} [options.featureIndex=0] Feature Index
  1418. * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index
  1419. * @param {number} [options.geometryIndex=0] Geometry Index
  1420. * @param {number} [options.segmentIndex=0] Segment Index
  1421. * @param {Object} [options.properties={}] Translate Properties to output LineString
  1422. * @param {BBox} [options.bbox={}] Translate BBox to output LineString
  1423. * @param {number|string} [options.id={}] Translate Id to output LineString
  1424. * @returns {Feature<LineString>} 2-vertex GeoJSON Feature LineString
  1425. * @example
  1426. * var multiLine = turf.multiLineString([
  1427. * [[10, 10], [50, 30], [30, 40]],
  1428. * [[-10, -10], [-50, -30], [-30, -40]]
  1429. * ]);
  1430. *
  1431. * // First Segment (defaults are 0)
  1432. * turf.findSegment(multiLine);
  1433. * // => Feature<LineString<[[10, 10], [50, 30]]>>
  1434. *
  1435. * // First Segment of 2nd Multi Feature
  1436. * turf.findSegment(multiLine, {multiFeatureIndex: 1});
  1437. * // => Feature<LineString<[[-10, -10], [-50, -30]]>>
  1438. *
  1439. * // Last Segment of Last Multi Feature
  1440. * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});
  1441. * // => Feature<LineString<[[-50, -30], [-30, -40]]>>
  1442. */
  1443. function(e,t){if(
  1444. // Optional Parameters
  1445. t=t||{},!n.isObject(t))throw new Error("options is invalid");var r,a=t.featureIndex||0,i=t.multiFeatureIndex||0,o=t.geometryIndex||0,s=t.segmentIndex||0,u=t.properties;switch(e.type){case"FeatureCollection":a<0&&(a=e.features.length+a),u=u||e.features[a].properties,r=e.features[a].geometry;break;case"Feature":u=u||e.properties,r=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":r=e;break;default:throw new Error("geojson is invalid")}
  1446. // Find SegmentIndex
  1447. if(null===r)return null;var l=r.coordinates;switch(r.type){case"Point":case"MultiPoint":return null;case"LineString":return s<0&&(s=l.length+s-1),n.lineString([l[s],l[s+1]],u,t);case"Polygon":return o<0&&(o=l.length+o),s<0&&(s=l[o].length+s-1),n.lineString([l[o][s],l[o][s+1]],u,t);case"MultiLineString":return i<0&&(i=l.length+i),s<0&&(s=l[i].length+s-1),n.lineString([l[i][s],l[i][s+1]],u,t);case"MultiPolygon":return i<0&&(i=l.length+i),o<0&&(o=l[i].length+o),s<0&&(s=l[i][o].length-s-1),n.lineString([l[i][o][s],l[i][o][s+1]],u,t)}throw new Error("geojson is invalid")},t.flattenEach=u,t.flattenReduce=function(e,t,r){var n=r;return u(e,(function(e,a,i){n=0===a&&0===i&&void 0===r?e:t(n,e,a,i)})),n},t.geomEach=s,t.geomReduce=function(e,t,r){var n=r;return s(e,(function(e,a,i,o,s){n=0===a&&void 0===r?e:t(n,e,a,i,o,s)})),n},t.lineEach=c,t.lineReduce=function(e,t,r){var n=r;return c(e,(function(e,a,i,o){n=0===a&&void 0===r?e:t(n,e,a,i,o)})),n},t.propEach=i,t.propReduce=function(e,t,r){var n=r;return i(e,(function(e,a){n=0===a&&void 0===r?e:t(n,e,a)})),n},t.segmentEach=l,t.segmentReduce=function(e,t,r){var n=r,a=!1;return l(e,(function(e,i,o,s,u){n=!1===a&&void 0===r?e:t(n,e,i,o,s,u),a=!0})),n}},
  1448. /***/5748:
  1449. /***/function(e,t,r){"use strict";
  1450. // ESM COMPAT FLAG
  1451. /**
  1452. * Clone Feature
  1453. *
  1454. * @private
  1455. * @param {Feature<any>} geojson GeoJSON Feature
  1456. * @returns {Feature<any>} cloned Feature
  1457. */
  1458. function n(e){var t={type:"Feature"};
  1459. // Preserve Foreign Members
  1460. return Object.keys(e).forEach((function(r){switch(r){case"type":case"properties":case"geometry":return;default:t[r]=e[r]}})),
  1461. // Add properties & geometry last
  1462. t.properties=a(e.properties),t.geometry=i(e.geometry),t}
  1463. /**
  1464. * Clone Properties
  1465. *
  1466. * @private
  1467. * @param {Object} properties GeoJSON Properties
  1468. * @returns {Object} cloned Properties
  1469. */function a(e){var t={};return e?(Object.keys(e).forEach((function(r){var n=e[r];"object"===typeof n?null===n?
  1470. // handle null
  1471. t[r]=null:n.length?
  1472. // handle Array
  1473. t[r]=n.map((function(e){return e})):
  1474. // handle generic Object
  1475. t[r]=a(n):t[r]=n})),t):t}
  1476. /**
  1477. * Clone Feature Collection
  1478. *
  1479. * @private
  1480. * @param {FeatureCollection<any>} geojson GeoJSON Feature Collection
  1481. * @returns {FeatureCollection<any>} cloned Feature Collection
  1482. */
  1483. /**
  1484. * Clone Geometry
  1485. *
  1486. * @private
  1487. * @param {Geometry<any>} geometry GeoJSON Geometry
  1488. * @returns {Geometry<any>} cloned Geometry
  1489. */
  1490. function i(e){var t={type:e.type};return e.bbox&&(t.bbox=e.bbox),"GeometryCollection"===e.type?(t.geometries=e.geometries.map((function(e){return i(e)})),t):(t.coordinates=o(e.coordinates),t)}
  1491. /**
  1492. * Deep Slice coordinates
  1493. *
  1494. * @private
  1495. * @param {Coordinates} coords Coordinates
  1496. * @returns {Coordinates} all coordinates sliced
  1497. */function o(e){return"object"!==typeof e[0]?e.slice():e.map((function(e){return o(e)}))}
  1498. /* harmony default export */r.r(t),
  1499. // EXPORTS
  1500. r.d(t,{default:function(){/* binding */return ie}});var s=// CONCATENATED MODULE: ./node_modules/@turf/clone/main.es.js
  1501. /**
  1502. * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.
  1503. * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.
  1504. *
  1505. * @name clone
  1506. * @param {GeoJSON} geojson GeoJSON Object
  1507. * @returns {GeoJSON} cloned GeoJSON Object
  1508. * @example
  1509. * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});
  1510. *
  1511. * var lineCloned = turf.clone(line);
  1512. */
  1513. function(e){if(!e)throw new Error("geojson is required");switch(e.type){case"Feature":return n(e);case"FeatureCollection":return function(e){var t={type:"FeatureCollection"};
  1514. // Preserve Foreign Members
  1515. return Object.keys(e).forEach((function(r){switch(r){case"type":case"features":return;default:t[r]=e[r]}})),
  1516. // Add features
  1517. t.features=e.features.map((function(e){return n(e)})),t}(e);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return i(e);default:throw new Error("unknown GeoJSON type")}};
  1518. /**
  1519. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  1520. *
  1521. * @name feature
  1522. * @param {Geometry} geometry input geometry
  1523. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  1524. * @param {Object} [options={}] Optional Parameters
  1525. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  1526. * @param {string|number} [options.id] Identifier associated with the Feature
  1527. * @returns {Feature} a GeoJSON Feature
  1528. * @example
  1529. * var geometry = {
  1530. * "type": "Point",
  1531. * "coordinates": [110, 50]
  1532. * };
  1533. *
  1534. * var feature = turf.feature(geometry);
  1535. *
  1536. * //=feature
  1537. */
  1538. function u(e,t,r){if(!d(
  1539. // Optional Parameters
  1540. r=r||{}))throw new Error("options is invalid");var n=r.bbox,a=r.id;
  1541. // Validation
  1542. if(void 0===e)throw new Error("geometry is required");if(t&&t.constructor!==Object)throw new Error("properties must be an Object");n&&f(n),a&&h(a);
  1543. // Main
  1544. var i={type:"Feature"};return a&&(i.id=a),n&&(i.bbox=n),i.properties=t||{},i.geometry=e,i}
  1545. /**
  1546. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  1547. * For GeometryCollection type use `helpers.geometryCollection`
  1548. *
  1549. * @name geometry
  1550. * @param {string} type Geometry Type
  1551. * @param {Array<number>} coordinates Coordinates
  1552. * @param {Object} [options={}] Optional Parameters
  1553. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry
  1554. * @returns {Geometry} a GeoJSON Geometry
  1555. * @example
  1556. * var type = 'Point';
  1557. * var coordinates = [110, 50];
  1558. *
  1559. * var geometry = turf.geometry(type, coordinates);
  1560. *
  1561. * //=geometry
  1562. */
  1563. /**
  1564. * Creates a {@link Point} {@link Feature} from a Position.
  1565. *
  1566. * @name point
  1567. * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
  1568. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  1569. * @param {Object} [options={}] Optional Parameters
  1570. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  1571. * @param {string|number} [options.id] Identifier associated with the Feature
  1572. * @returns {Feature<Point>} a Point feature
  1573. * @example
  1574. * var point = turf.point([-75.343, 39.984]);
  1575. *
  1576. * //=point
  1577. */
  1578. function l(e,t,r){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!c(e[0])||!c(e[1]))throw new Error("coordinates must contain numbers");return u({type:"Point",coordinates:e},t,r)}
  1579. /**
  1580. * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
  1581. *
  1582. * @name points
  1583. * @param {Array<Array<number>>} coordinates an array of Points
  1584. * @param {Object} [properties={}] Translate these properties to each Feature
  1585. * @param {Object} [options={}] Optional Parameters
  1586. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection
  1587. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  1588. * @returns {FeatureCollection<Point>} Point Feature
  1589. * @example
  1590. * var points = turf.points([
  1591. * [-75, 39],
  1592. * [-80, 45],
  1593. * [-78, 50]
  1594. * ]);
  1595. *
  1596. * //=points
  1597. */
  1598. /**
  1599. * isNumber
  1600. *
  1601. * @param {*} num Number to validate
  1602. * @returns {boolean} true/false
  1603. * @example
  1604. * turf.isNumber(123)
  1605. * //=true
  1606. * turf.isNumber('foo')
  1607. * //=false
  1608. */
  1609. function c(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}
  1610. /**
  1611. * isObject
  1612. *
  1613. * @param {*} input variable to validate
  1614. * @returns {boolean} true/false
  1615. * @example
  1616. * turf.isObject({elevation: 10})
  1617. * //=true
  1618. * turf.isObject('foo')
  1619. * //=false
  1620. */function d(e){return!!e&&e.constructor===Object}
  1621. /**
  1622. * Validate BBox
  1623. *
  1624. * @private
  1625. * @param {Array<number>} bbox BBox to validate
  1626. * @returns {void}
  1627. * @throws Error if BBox is not valid
  1628. * @example
  1629. * validateBBox([-180, -40, 110, 50])
  1630. * //=OK
  1631. * validateBBox([-180, -40])
  1632. * //=Error
  1633. * validateBBox('Foo')
  1634. * //=Error
  1635. * validateBBox(5)
  1636. * //=Error
  1637. * validateBBox(null)
  1638. * //=Error
  1639. * validateBBox(undefined)
  1640. * //=Error
  1641. */function f(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!c(e))throw new Error("bbox must only contain numbers")}))}
  1642. /**
  1643. * Validate Id
  1644. *
  1645. * @private
  1646. * @param {string|number} id Id to validate
  1647. * @returns {void}
  1648. * @throws Error if Id is not valid
  1649. * @example
  1650. * validateId([-180, -40, 110, 50])
  1651. * //=Error
  1652. * validateId([-180, -40])
  1653. * //=Error
  1654. * validateId('Foo')
  1655. * //=OK
  1656. * validateId(5)
  1657. * //=OK
  1658. * validateId(null)
  1659. * //=Error
  1660. * validateId(undefined)
  1661. * //=Error
  1662. */function h(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}
  1663. // Deprecated methods
  1664. // CONCATENATED MODULE: ./node_modules/@turf/center/node_modules/@turf/meta/main.es.js
  1665. /**
  1666. * Callback for coordEach
  1667. *
  1668. * @callback coordEachCallback
  1669. * @param {Array<number>} currentCoord The current coordinate being processed.
  1670. * @param {number} coordIndex The current index of the coordinate being processed.
  1671. * @param {number} featureIndex The current index of the Feature being processed.
  1672. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1673. * @param {number} geometryIndex The current index of the Geometry being processed.
  1674. */
  1675. /**
  1676. * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()
  1677. *
  1678. * @name coordEach
  1679. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1680. * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)
  1681. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  1682. * @returns {void}
  1683. * @example
  1684. * var features = turf.featureCollection([
  1685. * turf.point([26, 37], {"foo": "bar"}),
  1686. * turf.point([36, 53], {"hello": "world"})
  1687. * ]);
  1688. *
  1689. * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  1690. * //=currentCoord
  1691. * //=coordIndex
  1692. * //=featureIndex
  1693. * //=multiFeatureIndex
  1694. * //=geometryIndex
  1695. * });
  1696. */
  1697. function p(e,t,r){
  1698. // Handles null Geometry -- Skips this GeoJSON
  1699. if(null!==e)
  1700. // This logic may look a little weird. The reason why it is that way
  1701. // is because it's trying to be fast. GeoJSON supports multiple kinds
  1702. // of objects at its root: FeatureCollection, Features, Geometries.
  1703. // This function has the responsibility of handling all of them, and that
  1704. // means that some of the `for` loops you see below actually just don't apply
  1705. // to certain inputs. For instance, if you give this just a
  1706. // Point geometry, then both loops are short-circuited and all we do
  1707. // is gradually rename the input until it's called 'geometry'.
  1708. // This also aims to allocate as few resources as possible: just a
  1709. // few numbers and booleans, rather than any temporary arrays as would
  1710. // be required with the normalization approach.
  1711. for(var n,a,i,o,s,u,l,c,d=0,f=0,h=e.type,y="FeatureCollection"===h,m="Feature"===h,v=y?e.features.length:1,g=0;g<v;g++){s=(c=!!(l=y?e.features[g].geometry:m?e.geometry:e)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<s;b++){var w=0,S=0;
  1712. // Handles null Geometry -- Skips this geometry
  1713. if(null!==(o=c?l.geometries[b]:l)){u=o.coordinates;var L=o.type;switch(d=!r||"Polygon"!==L&&"MultiPolygon"!==L?0:1,L){case null:break;case"Point":if(!1===t(u,f,g,w,S))return!1;f++,w++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===t(u[n],f,g,w,S))return!1;f++,"MultiPoint"===L&&w++}"LineString"===L&&w++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-d;a++){if(!1===t(u[n][a],f,g,w,S))return!1;f++}"MultiLineString"===L&&w++,"Polygon"===L&&S++}"Polygon"===L&&w++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for("MultiPolygon"===L&&(S=0),a=0;a<u[n].length;a++){for(i=0;i<u[n][a].length-d;i++){if(!1===t(u[n][a][i],f,g,w,S))return!1;f++}S++}w++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===p(o.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}
  1714. /**
  1715. * Callback for coordReduce
  1716. *
  1717. * The first time the callback function is called, the values provided as arguments depend
  1718. * on whether the reduce method has an initialValue argument.
  1719. *
  1720. * If an initialValue is provided to the reduce method:
  1721. * - The previousValue argument is initialValue.
  1722. * - The currentValue argument is the value of the first element present in the array.
  1723. *
  1724. * If an initialValue is not provided:
  1725. * - The previousValue argument is the value of the first element present in the array.
  1726. * - The currentValue argument is the value of the second element present in the array.
  1727. *
  1728. * @callback coordReduceCallback
  1729. * @param {*} previousValue The accumulated value previously returned in the last invocation
  1730. * of the callback, or initialValue, if supplied.
  1731. * @param {Array<number>} currentCoord The current coordinate being processed.
  1732. * @param {number} coordIndex The current index of the coordinate being processed.
  1733. * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.
  1734. * @param {number} featureIndex The current index of the Feature being processed.
  1735. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1736. * @param {number} geometryIndex The current index of the Geometry being processed.
  1737. */
  1738. /**
  1739. * Reduce coordinates in any GeoJSON object, similar to Array.reduce()
  1740. *
  1741. * @name coordReduce
  1742. * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object
  1743. * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)
  1744. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  1745. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  1746. * @returns {*} The value that results from the reduction.
  1747. * @example
  1748. * var features = turf.featureCollection([
  1749. * turf.point([26, 37], {"foo": "bar"}),
  1750. * turf.point([36, 53], {"hello": "world"})
  1751. * ]);
  1752. *
  1753. * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  1754. * //=previousValue
  1755. * //=currentCoord
  1756. * //=coordIndex
  1757. * //=featureIndex
  1758. * //=multiFeatureIndex
  1759. * //=geometryIndex
  1760. * return currentCoord;
  1761. * });
  1762. */
  1763. /* harmony default export */var y=// CONCATENATED MODULE: ./node_modules/@turf/center/node_modules/@turf/bbox/main.es.js
  1764. /**
  1765. * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.
  1766. *
  1767. * @name bbox
  1768. * @param {GeoJSON} geojson any GeoJSON object
  1769. * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order
  1770. * @example
  1771. * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);
  1772. * var bbox = turf.bbox(line);
  1773. * var bboxPolygon = turf.bboxPolygon(bbox);
  1774. *
  1775. * //addToMap
  1776. * var addToMap = [line, bboxPolygon]
  1777. */
  1778. function(e){var t=[1/0,1/0,-1/0,-1/0];return p(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t};
  1779. /* harmony default export */var m=// CONCATENATED MODULE: ./node_modules/@turf/center/main.es.js
  1780. /**
  1781. * Takes a {@link Feature} or {@link FeatureCollection} and returns the absolute center point of all features.
  1782. *
  1783. * @name center
  1784. * @param {GeoJSON} geojson GeoJSON to be centered
  1785. * @param {Object} [options={}] Optional parameters
  1786. * @param {Object} [options.properties={}] an Object that is used as the {@link Feature}'s properties
  1787. * @returns {Feature<Point>} a Point feature at the absolute center point of all input features
  1788. * @example
  1789. * var features = turf.featureCollection([
  1790. * turf.point( [-97.522259, 35.4691]),
  1791. * turf.point( [-97.502754, 35.463455]),
  1792. * turf.point( [-97.508269, 35.463245])
  1793. * ]);
  1794. *
  1795. * var center = turf.center(features);
  1796. *
  1797. * //addToMap
  1798. * var addToMap = [features, center]
  1799. * center.properties['marker-size'] = 'large';
  1800. * center.properties['marker-color'] = '#000';
  1801. */
  1802. function(e,t){if(!d(
  1803. // Optional parameters
  1804. t=t||{}))throw new Error("options is invalid");var r=t.properties;
  1805. // Input validation
  1806. if(!e)throw new Error("geojson is required");var n=y(e);return l([(n[0]+n[2])/2,(n[1]+n[3])/2],r)};
  1807. /**
  1808. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  1809. *
  1810. * @name feature
  1811. * @param {Geometry} geometry input geometry
  1812. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  1813. * @param {Object} [options={}] Optional Parameters
  1814. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  1815. * @param {string|number} [options.id] Identifier associated with the Feature
  1816. * @returns {Feature} a GeoJSON Feature
  1817. * @example
  1818. * var geometry = {
  1819. * "type": "Point",
  1820. * "coordinates": [110, 50]
  1821. * };
  1822. *
  1823. * var feature = turf.feature(geometry);
  1824. *
  1825. * //=feature
  1826. */
  1827. function v(e,t,r){if(!w(
  1828. // Optional Parameters
  1829. r=r||{}))throw new Error("options is invalid");var n=r.bbox,a=r.id;
  1830. // Validation
  1831. if(void 0===e)throw new Error("geometry is required");if(t&&t.constructor!==Object)throw new Error("properties must be an Object");n&&S(n),a&&L(a);
  1832. // Main
  1833. var i={type:"Feature"};return a&&(i.id=a),n&&(i.bbox=n),i.properties=t||{},i.geometry=e,i}
  1834. /**
  1835. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  1836. * For GeometryCollection type use `helpers.geometryCollection`
  1837. *
  1838. * @name geometry
  1839. * @param {string} type Geometry Type
  1840. * @param {Array<number>} coordinates Coordinates
  1841. * @param {Object} [options={}] Optional Parameters
  1842. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry
  1843. * @returns {Geometry} a GeoJSON Geometry
  1844. * @example
  1845. * var type = 'Point';
  1846. * var coordinates = [110, 50];
  1847. *
  1848. * var geometry = turf.geometry(type, coordinates);
  1849. *
  1850. * //=geometry
  1851. */
  1852. /**
  1853. * Creates a {@link Point} {@link Feature} from a Position.
  1854. *
  1855. * @name point
  1856. * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
  1857. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  1858. * @param {Object} [options={}] Optional Parameters
  1859. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  1860. * @param {string|number} [options.id] Identifier associated with the Feature
  1861. * @returns {Feature<Point>} a Point feature
  1862. * @example
  1863. * var point = turf.point([-75.343, 39.984]);
  1864. *
  1865. * //=point
  1866. */
  1867. function g(e,t,r){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!b(e[0])||!b(e[1]))throw new Error("coordinates must contain numbers");return v({type:"Point",coordinates:e},t,r)}
  1868. /**
  1869. * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
  1870. *
  1871. * @name points
  1872. * @param {Array<Array<number>>} coordinates an array of Points
  1873. * @param {Object} [properties={}] Translate these properties to each Feature
  1874. * @param {Object} [options={}] Optional Parameters
  1875. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection
  1876. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  1877. * @returns {FeatureCollection<Point>} Point Feature
  1878. * @example
  1879. * var points = turf.points([
  1880. * [-75, 39],
  1881. * [-80, 45],
  1882. * [-78, 50]
  1883. * ]);
  1884. *
  1885. * //=points
  1886. */
  1887. /**
  1888. * isNumber
  1889. *
  1890. * @param {*} num Number to validate
  1891. * @returns {boolean} true/false
  1892. * @example
  1893. * turf.isNumber(123)
  1894. * //=true
  1895. * turf.isNumber('foo')
  1896. * //=false
  1897. */
  1898. function b(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}
  1899. /**
  1900. * isObject
  1901. *
  1902. * @param {*} input variable to validate
  1903. * @returns {boolean} true/false
  1904. * @example
  1905. * turf.isObject({elevation: 10})
  1906. * //=true
  1907. * turf.isObject('foo')
  1908. * //=false
  1909. */function w(e){return!!e&&e.constructor===Object}
  1910. /**
  1911. * Validate BBox
  1912. *
  1913. * @private
  1914. * @param {Array<number>} bbox BBox to validate
  1915. * @returns {void}
  1916. * @throws Error if BBox is not valid
  1917. * @example
  1918. * validateBBox([-180, -40, 110, 50])
  1919. * //=OK
  1920. * validateBBox([-180, -40])
  1921. * //=Error
  1922. * validateBBox('Foo')
  1923. * //=Error
  1924. * validateBBox(5)
  1925. * //=Error
  1926. * validateBBox(null)
  1927. * //=Error
  1928. * validateBBox(undefined)
  1929. * //=Error
  1930. */function S(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!b(e))throw new Error("bbox must only contain numbers")}))}
  1931. /**
  1932. * Validate Id
  1933. *
  1934. * @private
  1935. * @param {string|number} id Id to validate
  1936. * @returns {void}
  1937. * @throws Error if Id is not valid
  1938. * @example
  1939. * validateId([-180, -40, 110, 50])
  1940. * //=Error
  1941. * validateId([-180, -40])
  1942. * //=Error
  1943. * validateId('Foo')
  1944. * //=OK
  1945. * validateId(5)
  1946. * //=OK
  1947. * validateId(null)
  1948. * //=Error
  1949. * validateId(undefined)
  1950. * //=Error
  1951. */function L(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}
  1952. // Deprecated methods
  1953. // CONCATENATED MODULE: ./node_modules/@turf/centroid/node_modules/@turf/meta/main.es.js
  1954. /**
  1955. * Callback for coordEach
  1956. *
  1957. * @callback coordEachCallback
  1958. * @param {Array<number>} currentCoord The current coordinate being processed.
  1959. * @param {number} coordIndex The current index of the coordinate being processed.
  1960. * @param {number} featureIndex The current index of the Feature being processed.
  1961. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  1962. * @param {number} geometryIndex The current index of the Geometry being processed.
  1963. */
  1964. /**
  1965. * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()
  1966. *
  1967. * @name coordEach
  1968. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  1969. * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)
  1970. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  1971. * @returns {void}
  1972. * @example
  1973. * var features = turf.featureCollection([
  1974. * turf.point([26, 37], {"foo": "bar"}),
  1975. * turf.point([36, 53], {"hello": "world"})
  1976. * ]);
  1977. *
  1978. * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  1979. * //=currentCoord
  1980. * //=coordIndex
  1981. * //=featureIndex
  1982. * //=multiFeatureIndex
  1983. * //=geometryIndex
  1984. * });
  1985. */
  1986. function E(e,t,r){
  1987. // Handles null Geometry -- Skips this GeoJSON
  1988. if(null!==e)
  1989. // This logic may look a little weird. The reason why it is that way
  1990. // is because it's trying to be fast. GeoJSON supports multiple kinds
  1991. // of objects at its root: FeatureCollection, Features, Geometries.
  1992. // This function has the responsibility of handling all of them, and that
  1993. // means that some of the `for` loops you see below actually just don't apply
  1994. // to certain inputs. For instance, if you give this just a
  1995. // Point geometry, then both loops are short-circuited and all we do
  1996. // is gradually rename the input until it's called 'geometry'.
  1997. // This also aims to allocate as few resources as possible: just a
  1998. // few numbers and booleans, rather than any temporary arrays as would
  1999. // be required with the normalization approach.
  2000. for(var n,a,i,o,s,u,l,c,d=0,f=0,h=e.type,p="FeatureCollection"===h,y="Feature"===h,m=p?e.features.length:1,v=0;v<m;v++){s=(c=!!(l=p?e.features[v].geometry:y?e.geometry:e)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var g=0;g<s;g++){var b=0,w=0;
  2001. // Handles null Geometry -- Skips this geometry
  2002. if(null!==(o=c?l.geometries[g]:l)){u=o.coordinates;var S=o.type;switch(d=!r||"Polygon"!==S&&"MultiPolygon"!==S?0:1,S){case null:break;case"Point":if(!1===t(u,f,v,b,w))return!1;f++,b++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===t(u[n],f,v,b,w))return!1;f++,"MultiPoint"===S&&b++}"LineString"===S&&b++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-d;a++){if(!1===t(u[n][a],f,v,b,w))return!1;f++}"MultiLineString"===S&&b++,"Polygon"===S&&w++}"Polygon"===S&&b++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for("MultiPolygon"===S&&(w=0),a=0;a<u[n].length;a++){for(i=0;i<u[n][a].length-d;i++){if(!1===t(u[n][a][i],f,v,b,w))return!1;f++}w++}b++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===E(o.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}
  2003. /**
  2004. * Callback for coordReduce
  2005. *
  2006. * The first time the callback function is called, the values provided as arguments depend
  2007. * on whether the reduce method has an initialValue argument.
  2008. *
  2009. * If an initialValue is provided to the reduce method:
  2010. * - The previousValue argument is initialValue.
  2011. * - The currentValue argument is the value of the first element present in the array.
  2012. *
  2013. * If an initialValue is not provided:
  2014. * - The previousValue argument is the value of the first element present in the array.
  2015. * - The currentValue argument is the value of the second element present in the array.
  2016. *
  2017. * @callback coordReduceCallback
  2018. * @param {*} previousValue The accumulated value previously returned in the last invocation
  2019. * of the callback, or initialValue, if supplied.
  2020. * @param {Array<number>} currentCoord The current coordinate being processed.
  2021. * @param {number} coordIndex The current index of the coordinate being processed.
  2022. * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.
  2023. * @param {number} featureIndex The current index of the Feature being processed.
  2024. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  2025. * @param {number} geometryIndex The current index of the Geometry being processed.
  2026. */
  2027. /**
  2028. * Reduce coordinates in any GeoJSON object, similar to Array.reduce()
  2029. *
  2030. * @name coordReduce
  2031. * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object
  2032. * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)
  2033. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  2034. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  2035. * @returns {*} The value that results from the reduction.
  2036. * @example
  2037. * var features = turf.featureCollection([
  2038. * turf.point([26, 37], {"foo": "bar"}),
  2039. * turf.point([36, 53], {"hello": "world"})
  2040. * ]);
  2041. *
  2042. * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  2043. * //=previousValue
  2044. * //=currentCoord
  2045. * //=coordIndex
  2046. * //=featureIndex
  2047. * //=multiFeatureIndex
  2048. * //=geometryIndex
  2049. * return currentCoord;
  2050. * });
  2051. */
  2052. /* harmony default export */var M=// CONCATENATED MODULE: ./node_modules/@turf/centroid/main.es.js
  2053. /**
  2054. * Takes one or more features and calculates the centroid using the mean of all vertices.
  2055. * This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons.
  2056. *
  2057. * @name centroid
  2058. * @param {GeoJSON} geojson GeoJSON to be centered
  2059. * @param {Object} [properties={}] an Object that is used as the {@link Feature}'s properties
  2060. * @returns {Feature<Point>} the centroid of the input features
  2061. * @example
  2062. * var polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]);
  2063. *
  2064. * var centroid = turf.centroid(polygon);
  2065. *
  2066. * //addToMap
  2067. * var addToMap = [polygon, centroid]
  2068. */
  2069. function(e,t){var r=0,n=0,a=0;return E(e,(function(e){r+=e[0],n+=e[1],a++}),!0),g([r/a,n/a],t)};
  2070. /**
  2071. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  2072. *
  2073. * @name feature
  2074. * @param {Geometry} geometry input geometry
  2075. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  2076. * @param {Object} [options={}] Optional Parameters
  2077. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  2078. * @param {string|number} [options.id] Identifier associated with the Feature
  2079. * @returns {Feature} a GeoJSON Feature
  2080. * @example
  2081. * var geometry = {
  2082. * "type": "Point",
  2083. * "coordinates": [110, 50]
  2084. * };
  2085. *
  2086. * var feature = turf.feature(geometry);
  2087. *
  2088. * //=feature
  2089. */
  2090. function k(e,t,r){if(!F(
  2091. // Optional Parameters
  2092. r=r||{}))throw new Error("options is invalid");var n=r.bbox,a=r.id;
  2093. // Validation
  2094. if(void 0===e)throw new Error("geometry is required");if(t&&t.constructor!==Object)throw new Error("properties must be an Object");n&&P(n),a&&C(a);
  2095. // Main
  2096. var i={type:"Feature"};return a&&(i.id=a),n&&(i.bbox=n),i.properties=t||{},i.geometry=e,i}
  2097. /**
  2098. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  2099. * For GeometryCollection type use `helpers.geometryCollection`
  2100. *
  2101. * @name geometry
  2102. * @param {string} type Geometry Type
  2103. * @param {Array<number>} coordinates Coordinates
  2104. * @param {Object} [options={}] Optional Parameters
  2105. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry
  2106. * @returns {Geometry} a GeoJSON Geometry
  2107. * @example
  2108. * var type = 'Point';
  2109. * var coordinates = [110, 50];
  2110. *
  2111. * var geometry = turf.geometry(type, coordinates);
  2112. *
  2113. * //=geometry
  2114. */
  2115. /**
  2116. * Creates a {@link Point} {@link Feature} from a Position.
  2117. *
  2118. * @name point
  2119. * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
  2120. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  2121. * @param {Object} [options={}] Optional Parameters
  2122. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  2123. * @param {string|number} [options.id] Identifier associated with the Feature
  2124. * @returns {Feature<Point>} a Point feature
  2125. * @example
  2126. * var point = turf.point([-75.343, 39.984]);
  2127. *
  2128. * //=point
  2129. */
  2130. function x(e,t,r){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!T(e[0])||!T(e[1]))throw new Error("coordinates must contain numbers");return k({type:"Point",coordinates:e},t,r)}
  2131. /**
  2132. * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
  2133. *
  2134. * @name points
  2135. * @param {Array<Array<number>>} coordinates an array of Points
  2136. * @param {Object} [properties={}] Translate these properties to each Feature
  2137. * @param {Object} [options={}] Optional Parameters
  2138. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection
  2139. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  2140. * @returns {FeatureCollection<Point>} Point Feature
  2141. * @example
  2142. * var points = turf.points([
  2143. * [-75, 39],
  2144. * [-80, 45],
  2145. * [-78, 50]
  2146. * ]);
  2147. *
  2148. * //=points
  2149. */
  2150. /**
  2151. * isNumber
  2152. *
  2153. * @param {*} num Number to validate
  2154. * @returns {boolean} true/false
  2155. * @example
  2156. * turf.isNumber(123)
  2157. * //=true
  2158. * turf.isNumber('foo')
  2159. * //=false
  2160. */
  2161. function T(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}
  2162. /**
  2163. * isObject
  2164. *
  2165. * @param {*} input variable to validate
  2166. * @returns {boolean} true/false
  2167. * @example
  2168. * turf.isObject({elevation: 10})
  2169. * //=true
  2170. * turf.isObject('foo')
  2171. * //=false
  2172. */function F(e){return!!e&&e.constructor===Object}
  2173. /**
  2174. * Validate BBox
  2175. *
  2176. * @private
  2177. * @param {Array<number>} bbox BBox to validate
  2178. * @returns {void}
  2179. * @throws Error if BBox is not valid
  2180. * @example
  2181. * validateBBox([-180, -40, 110, 50])
  2182. * //=OK
  2183. * validateBBox([-180, -40])
  2184. * //=Error
  2185. * validateBBox('Foo')
  2186. * //=Error
  2187. * validateBBox(5)
  2188. * //=Error
  2189. * validateBBox(null)
  2190. * //=Error
  2191. * validateBBox(undefined)
  2192. * //=Error
  2193. */function P(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!T(e))throw new Error("bbox must only contain numbers")}))}
  2194. /**
  2195. * Validate Id
  2196. *
  2197. * @private
  2198. * @param {string|number} id Id to validate
  2199. * @returns {void}
  2200. * @throws Error if Id is not valid
  2201. * @example
  2202. * validateId([-180, -40, 110, 50])
  2203. * //=Error
  2204. * validateId([-180, -40])
  2205. * //=Error
  2206. * validateId('Foo')
  2207. * //=OK
  2208. * validateId(5)
  2209. * //=OK
  2210. * validateId(null)
  2211. * //=Error
  2212. * validateId(undefined)
  2213. * //=Error
  2214. */function C(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}
  2215. // Deprecated methods
  2216. // CONCATENATED MODULE: ./node_modules/@turf/transform-scale/node_modules/@turf/meta/main.es.js
  2217. /**
  2218. * Callback for coordEach
  2219. *
  2220. * @callback coordEachCallback
  2221. * @param {Array<number>} currentCoord The current coordinate being processed.
  2222. * @param {number} coordIndex The current index of the coordinate being processed.
  2223. * @param {number} featureIndex The current index of the Feature being processed.
  2224. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  2225. * @param {number} geometryIndex The current index of the Geometry being processed.
  2226. */
  2227. /**
  2228. * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()
  2229. *
  2230. * @name coordEach
  2231. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  2232. * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)
  2233. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  2234. * @returns {void}
  2235. * @example
  2236. * var features = turf.featureCollection([
  2237. * turf.point([26, 37], {"foo": "bar"}),
  2238. * turf.point([36, 53], {"hello": "world"})
  2239. * ]);
  2240. *
  2241. * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  2242. * //=currentCoord
  2243. * //=coordIndex
  2244. * //=featureIndex
  2245. * //=multiFeatureIndex
  2246. * //=geometryIndex
  2247. * });
  2248. */
  2249. function N(e,t,r){
  2250. // Handles null Geometry -- Skips this GeoJSON
  2251. if(null!==e)
  2252. // This logic may look a little weird. The reason why it is that way
  2253. // is because it's trying to be fast. GeoJSON supports multiple kinds
  2254. // of objects at its root: FeatureCollection, Features, Geometries.
  2255. // This function has the responsibility of handling all of them, and that
  2256. // means that some of the `for` loops you see below actually just don't apply
  2257. // to certain inputs. For instance, if you give this just a
  2258. // Point geometry, then both loops are short-circuited and all we do
  2259. // is gradually rename the input until it's called 'geometry'.
  2260. // This also aims to allocate as few resources as possible: just a
  2261. // few numbers and booleans, rather than any temporary arrays as would
  2262. // be required with the normalization approach.
  2263. for(var n,a,i,o,s,u,l,c,d=0,f=0,h=e.type,p="FeatureCollection"===h,y="Feature"===h,m=p?e.features.length:1,v=0;v<m;v++){s=(c=!!(l=p?e.features[v].geometry:y?e.geometry:e)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var g=0;g<s;g++){var b=0,w=0;
  2264. // Handles null Geometry -- Skips this geometry
  2265. if(null!==(o=c?l.geometries[g]:l)){u=o.coordinates;var S=o.type;switch(d=!r||"Polygon"!==S&&"MultiPolygon"!==S?0:1,S){case null:break;case"Point":if(!1===t(u,f,v,b,w))return!1;f++,b++;break;case"LineString":case"MultiPoint":for(n=0;n<u.length;n++){if(!1===t(u[n],f,v,b,w))return!1;f++,"MultiPoint"===S&&b++}"LineString"===S&&b++;break;case"Polygon":case"MultiLineString":for(n=0;n<u.length;n++){for(a=0;a<u[n].length-d;a++){if(!1===t(u[n][a],f,v,b,w))return!1;f++}"MultiLineString"===S&&b++,"Polygon"===S&&w++}"Polygon"===S&&b++;break;case"MultiPolygon":for(n=0;n<u.length;n++){for("MultiPolygon"===S&&(w=0),a=0;a<u[n].length;a++){for(i=0;i<u[n][a].length-d;i++){if(!1===t(u[n][a][i],f,v,b,w))return!1;f++}w++}b++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(!1===N(o.geometries[n],t,r))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}
  2266. /**
  2267. * Callback for coordReduce
  2268. *
  2269. * The first time the callback function is called, the values provided as arguments depend
  2270. * on whether the reduce method has an initialValue argument.
  2271. *
  2272. * If an initialValue is provided to the reduce method:
  2273. * - The previousValue argument is initialValue.
  2274. * - The currentValue argument is the value of the first element present in the array.
  2275. *
  2276. * If an initialValue is not provided:
  2277. * - The previousValue argument is the value of the first element present in the array.
  2278. * - The currentValue argument is the value of the second element present in the array.
  2279. *
  2280. * @callback coordReduceCallback
  2281. * @param {*} previousValue The accumulated value previously returned in the last invocation
  2282. * of the callback, or initialValue, if supplied.
  2283. * @param {Array<number>} currentCoord The current coordinate being processed.
  2284. * @param {number} coordIndex The current index of the coordinate being processed.
  2285. * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.
  2286. * @param {number} featureIndex The current index of the Feature being processed.
  2287. * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.
  2288. * @param {number} geometryIndex The current index of the Geometry being processed.
  2289. */
  2290. /**
  2291. * Reduce coordinates in any GeoJSON object, similar to Array.reduce()
  2292. *
  2293. * @name coordReduce
  2294. * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object
  2295. * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)
  2296. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  2297. * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.
  2298. * @returns {*} The value that results from the reduction.
  2299. * @example
  2300. * var features = turf.featureCollection([
  2301. * turf.point([26, 37], {"foo": "bar"}),
  2302. * turf.point([36, 53], {"hello": "world"})
  2303. * ]);
  2304. *
  2305. * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {
  2306. * //=previousValue
  2307. * //=currentCoord
  2308. * //=coordIndex
  2309. * //=featureIndex
  2310. * //=multiFeatureIndex
  2311. * //=geometryIndex
  2312. * return currentCoord;
  2313. * });
  2314. */
  2315. /**
  2316. * Callback for featureEach
  2317. *
  2318. * @callback featureEachCallback
  2319. * @param {Feature<any>} currentFeature The current Feature being processed.
  2320. * @param {number} featureIndex The current index of the Feature being processed.
  2321. */
  2322. /**
  2323. * Iterate over features in any GeoJSON object, similar to
  2324. * Array.forEach.
  2325. *
  2326. * @name featureEach
  2327. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  2328. * @param {Function} callback a method that takes (currentFeature, featureIndex)
  2329. * @returns {void}
  2330. * @example
  2331. * var features = turf.featureCollection([
  2332. * turf.point([26, 37], {foo: 'bar'}),
  2333. * turf.point([36, 53], {hello: 'world'})
  2334. * ]);
  2335. *
  2336. * turf.featureEach(features, function (currentFeature, featureIndex) {
  2337. * //=currentFeature
  2338. * //=featureIndex
  2339. * });
  2340. */
  2341. function W(e,t){if("Feature"===e.type)t(e,0);else if("FeatureCollection"===e.type)for(var r=0;r<e.features.length&&!1!==t(e.features[r],r);r++);}
  2342. /**
  2343. * Callback for featureReduce
  2344. *
  2345. * The first time the callback function is called, the values provided as arguments depend
  2346. * on whether the reduce method has an initialValue argument.
  2347. *
  2348. * If an initialValue is provided to the reduce method:
  2349. * - The previousValue argument is initialValue.
  2350. * - The currentValue argument is the value of the first element present in the array.
  2351. *
  2352. * If an initialValue is not provided:
  2353. * - The previousValue argument is the value of the first element present in the array.
  2354. * - The currentValue argument is the value of the second element present in the array.
  2355. *
  2356. * @callback featureReduceCallback
  2357. * @param {*} previousValue The accumulated value previously returned in the last invocation
  2358. * of the callback, or initialValue, if supplied.
  2359. * @param {Feature} currentFeature The current Feature being processed.
  2360. * @param {number} featureIndex The current index of the Feature being processed.
  2361. */
  2362. /**
  2363. * Reduce features in any GeoJSON object, similar to Array.reduce().
  2364. *
  2365. * @name featureReduce
  2366. * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object
  2367. * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)
  2368. * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.
  2369. * @returns {*} The value that results from the reduction.
  2370. * @example
  2371. * var features = turf.featureCollection([
  2372. * turf.point([26, 37], {"foo": "bar"}),
  2373. * turf.point([36, 53], {"hello": "world"})
  2374. * ]);
  2375. *
  2376. * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {
  2377. * //=previousValue
  2378. * //=currentFeature
  2379. * //=featureIndex
  2380. * return currentFeature
  2381. * });
  2382. */
  2383. /* harmony default export */var j=// CONCATENATED MODULE: ./node_modules/@turf/transform-scale/node_modules/@turf/bbox/main.es.js
  2384. /**
  2385. * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.
  2386. *
  2387. * @name bbox
  2388. * @param {GeoJSON} geojson any GeoJSON object
  2389. * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order
  2390. * @example
  2391. * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);
  2392. * var bbox = turf.bbox(line);
  2393. * var bboxPolygon = turf.bboxPolygon(bbox);
  2394. *
  2395. * //addToMap
  2396. * var addToMap = [line, bboxPolygon]
  2397. */
  2398. function(e){var t=[1/0,1/0,-1/0,-1/0];return N(e,(function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])})),t};// CONCATENATED MODULE: ./node_modules/@turf/invariant/main.es.js
  2399. /**
  2400. * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.
  2401. *
  2402. * @name getCoord
  2403. * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers
  2404. * @returns {Array<number>} coordinates
  2405. * @example
  2406. * var pt = turf.point([10, 10]);
  2407. *
  2408. * var coord = turf.getCoord(pt);
  2409. * //= [10, 10]
  2410. */
  2411. function I(e){if(!e)throw new Error("coord is required");if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates;if(Array.isArray(e)&&e.length>=2&&void 0===e[0].length&&void 0===e[1].length)return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}
  2412. /**
  2413. * Unwrap coordinates from a Feature, Geometry Object or an Array
  2414. *
  2415. * @name getCoords
  2416. * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array
  2417. * @returns {Array<any>} coordinates
  2418. * @example
  2419. * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);
  2420. *
  2421. * var coords = turf.getCoords(poly);
  2422. * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]
  2423. */
  2424. /**
  2425. * Converts an angle in radians to degrees
  2426. *
  2427. * @name radiansToDegrees
  2428. * @param {number} radians angle in radians
  2429. * @returns {number} degrees between 0 and 360 degrees
  2430. */
  2431. function O(e){if(null===e||void 0===e)throw new Error("radians is required");return 180*(e%(2*Math.PI))/Math.PI}
  2432. /**
  2433. * Converts an angle in degrees to radians
  2434. *
  2435. * @name degreesToRadians
  2436. * @param {number} degrees angle between 0 and 360 degrees
  2437. * @returns {number} angle in radians
  2438. */function D(e){if(null===e||void 0===e)throw new Error("degrees is required");return e%360*Math.PI/180}
  2439. /**
  2440. * Converts a length to the requested unit.
  2441. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2442. *
  2443. * @param {number} length to be converted
  2444. * @param {string} originalUnit of the length
  2445. * @param {string} [finalUnit='kilometers'] returned unit
  2446. * @returns {number} the converted length
  2447. */
  2448. /**
  2449. * isObject
  2450. *
  2451. * @param {*} input variable to validate
  2452. * @returns {boolean} true/false
  2453. * @example
  2454. * turf.isObject({elevation: 10})
  2455. * //=true
  2456. * turf.isObject('foo')
  2457. * //=false
  2458. */
  2459. function R(e){return!!e&&e.constructor===Object}
  2460. /**
  2461. * Validate BBox
  2462. *
  2463. * @private
  2464. * @param {Array<number>} bbox BBox to validate
  2465. * @returns {void}
  2466. * @throws Error if BBox is not valid
  2467. * @example
  2468. * validateBBox([-180, -40, 110, 50])
  2469. * //=OK
  2470. * validateBBox([-180, -40])
  2471. * //=Error
  2472. * validateBBox('Foo')
  2473. * //=Error
  2474. * validateBBox(5)
  2475. * //=Error
  2476. * validateBBox(null)
  2477. * //=Error
  2478. * validateBBox(undefined)
  2479. * //=Error
  2480. */
  2481. /**
  2482. * Returns the bearing from ‘this’ point to destination point along a rhumb line.
  2483. * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js
  2484. *
  2485. * @private
  2486. * @param {Array<number>} from - origin point.
  2487. * @param {Array<number>} to - destination point.
  2488. * @returns {number} Bearing in degrees from north.
  2489. * @example
  2490. * var p1 = new LatLon(51.127, 1.338);
  2491. * var p2 = new LatLon(50.964, 1.853);
  2492. * var d = p1.rhumbBearingTo(p2); // 116.7 m
  2493. */
  2494. function V(e,t){
  2495. // φ => phi
  2496. // Δλ => deltaLambda
  2497. // Δψ => deltaPsi
  2498. // θ => theta
  2499. var r=D(e[1]),n=D(t[1]),a=D(t[0]-e[0]);
  2500. // if deltaLambdaon over 180° take shorter rhumb line across the anti-meridian:
  2501. a>Math.PI&&(a-=2*Math.PI),a<-Math.PI&&(a+=2*Math.PI);var i=Math.log(Math.tan(n/2+Math.PI/4)/Math.tan(r/2+Math.PI/4));return(O(Math.atan2(a,i))+360)%360}
  2502. /* harmony default export */var U=// CONCATENATED MODULE: ./node_modules/@turf/rhumb-bearing/main.es.js
  2503. // https://en.wikipedia.org/wiki/Rhumb_line
  2504. /**
  2505. * Takes two {@link Point|points} and finds the bearing angle between them along a Rhumb line
  2506. * i.e. the angle measured in degrees start the north line (0 degrees)
  2507. *
  2508. * @name rhumbBearing
  2509. * @param {Coord} start starting Point
  2510. * @param {Coord} end ending Point
  2511. * @param {Object} [options] Optional parameters
  2512. * @param {boolean} [options.final=false] calculates the final bearing if true
  2513. * @returns {number} bearing from north in decimal degrees, between -180 and 180 degrees (positive clockwise)
  2514. * @example
  2515. * var point1 = turf.point([-75.343, 39.984], {"marker-color": "#F00"});
  2516. * var point2 = turf.point([-75.534, 39.123], {"marker-color": "#00F"});
  2517. *
  2518. * var bearing = turf.rhumbBearing(point1, point2);
  2519. *
  2520. * //addToMap
  2521. * var addToMap = [point1, point2];
  2522. * point1.properties.bearing = bearing;
  2523. * point2.properties.bearing = bearing;
  2524. */
  2525. function(e,t,r){if(!R(
  2526. // Optional parameters
  2527. r=r||{}))throw new Error("options is invalid");var n,a=r.final;
  2528. // validation
  2529. if(!e)throw new Error("start point is required");if(!t)throw new Error("end point is required");return(n=a?V(I(t),I(e)):V(I(e),I(t)))>180?-(360-n):n},A=6371008.8,q={meters:A,metres:A,millimeters:1e3*A,millimetres:1e3*A,centimeters:100*A,centimetres:100*A,kilometers:A/1e3,kilometres:A/1e3,miles:A/1609.344,nauticalmiles:A/1852,inches:39.37*A,yards:A/1.0936,feet:3.28084*A,radians:1,degrees:A/111325};
  2530. /**
  2531. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians
  2532. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2533. *
  2534. * @name lengthToRadians
  2535. * @param {number} distance in real units
  2536. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2537. * @returns {number} radians
  2538. */
  2539. function K(e,t){if(void 0===e||null===e)throw new Error("distance is required");if(t&&"string"!==typeof t)throw new Error("units must be a string");var r=q[t||"kilometers"];if(!r)throw new Error(t+" units is invalid");return e/r}
  2540. /**
  2541. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees
  2542. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet
  2543. *
  2544. * @name lengthToDegrees
  2545. * @param {number} distance in real units
  2546. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2547. * @returns {number} degrees
  2548. */
  2549. /**
  2550. * Converts a length to the requested unit.
  2551. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2552. *
  2553. * @param {number} length to be converted
  2554. * @param {string} originalUnit of the length
  2555. * @param {string} [finalUnit='kilometers'] returned unit
  2556. * @returns {number} the converted length
  2557. */
  2558. function X(e,t,r){if(null===e||void 0===e)throw new Error("length is required");if(!(e>=0))throw new Error("length must be a positive number");
  2559. /**
  2560. * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.
  2561. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2562. *
  2563. * @name radiansToLength
  2564. * @param {number} radians in radians across the sphere
  2565. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2566. * @returns {number} distance
  2567. */
  2568. return function(e,t){if(void 0===e||null===e)throw new Error("radians is required");if(t&&"string"!==typeof t)throw new Error("units must be a string");var r=q[t||"kilometers"];if(!r)throw new Error(t+" units is invalid");return e*r}(K(e,t),r||"kilometers")}
  2569. /**
  2570. * Converts a area to the requested unit.
  2571. * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches
  2572. * @param {number} area to be converted
  2573. * @param {string} [originalUnit='meters'] of the distance
  2574. * @param {string} [finalUnit='kilometers'] returned unit
  2575. * @returns {number} the converted distance
  2576. */
  2577. /**
  2578. * isObject
  2579. *
  2580. * @param {*} input variable to validate
  2581. * @returns {boolean} true/false
  2582. * @example
  2583. * turf.isObject({elevation: 10})
  2584. * //=true
  2585. * turf.isObject('foo')
  2586. * //=false
  2587. */
  2588. function Z(e){return!!e&&e.constructor===Object}
  2589. /**
  2590. * Validate BBox
  2591. *
  2592. * @private
  2593. * @param {Array<number>} bbox BBox to validate
  2594. * @returns {void}
  2595. * @throws Error if BBox is not valid
  2596. * @example
  2597. * validateBBox([-180, -40, 110, 50])
  2598. * //=OK
  2599. * validateBBox([-180, -40])
  2600. * //=Error
  2601. * validateBBox('Foo')
  2602. * //=Error
  2603. * validateBBox(5)
  2604. * //=Error
  2605. * validateBBox(null)
  2606. * //=Error
  2607. * validateBBox(undefined)
  2608. * //=Error
  2609. */
  2610. /* harmony default export */var z=// CONCATENATED MODULE: ./node_modules/@turf/rhumb-distance/main.es.js
  2611. // https://en.wikipedia.org/wiki/Rhumb_line
  2612. /**
  2613. * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,
  2614. * miles, or kilometers.
  2615. *
  2616. * @name rhumbDistance
  2617. * @param {Coord} from origin point
  2618. * @param {Coord} to destination point
  2619. * @param {Object} [options] Optional parameters
  2620. * @param {string} [options.units="kilometers"] can be degrees, radians, miles, or kilometers
  2621. * @returns {number} distance between the two points
  2622. * @example
  2623. * var from = turf.point([-75.343, 39.984]);
  2624. * var to = turf.point([-75.534, 39.123]);
  2625. * var options = {units: 'miles'};
  2626. *
  2627. * var distance = turf.rhumbDistance(from, to, options);
  2628. *
  2629. * //addToMap
  2630. * var addToMap = [from, to];
  2631. * from.properties.distance = distance;
  2632. * to.properties.distance = distance;
  2633. */
  2634. function(e,t,r){if(!Z(
  2635. // Optional parameters
  2636. r=r||{}))throw new Error("options is invalid");var n=r.units;
  2637. // validation
  2638. if(!e)throw new Error("from point is required");if(!t)throw new Error("to point is required");var a=I(e),i=I(t);
  2639. // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)
  2640. // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678
  2641. return i[0]+=i[0]-a[0]>180?-360:a[0]-i[0]>180?360:0,X(
  2642. /**
  2643. * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.
  2644. * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js
  2645. *
  2646. * @private
  2647. * @param {Array<number>} origin point.
  2648. * @param {Array<number>} destination point.
  2649. * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).
  2650. * @returns {number} Distance in km between this point and destination point (same units as radius).
  2651. *
  2652. * @example
  2653. * var p1 = new LatLon(51.127, 1.338);
  2654. * var p2 = new LatLon(50.964, 1.853);
  2655. * var d = p1.distanceTo(p2); // 40.31 km
  2656. */
  2657. function(e,t,r){
  2658. // see www.edwilliams.org/avform.htm#Rhumb
  2659. var n=
  2660. // φ => phi
  2661. // λ => lambda
  2662. // ψ => psi
  2663. // Δ => Delta
  2664. // δ => delta
  2665. // θ => theta
  2666. r=void 0===r?A:Number(r),a=e[1]*Math.PI/180,i=t[1]*Math.PI/180,o=i-a,s=Math.abs(t[0]-e[0])*Math.PI/180;
  2667. // if dLon over 180° take shorter rhumb line across the anti-meridian:
  2668. s>Math.PI&&(s-=2*Math.PI);
  2669. // on Mercator projection, longitude distances shrink by latitude; q is the 'stretch factor'
  2670. // q becomes ill-conditioned along E-W line (0/0); use empirical tolerance to avoid it
  2671. var u=Math.log(Math.tan(i/2+Math.PI/4)/Math.tan(a/2+Math.PI/4)),l=Math.abs(u)>1e-11?o/u:Math.cos(a);return Math.sqrt(o*o+l*l*s*s)*n}(a,i),"meters",n)},Y=6371008.8,B={meters:Y,metres:Y,millimeters:1e3*Y,millimetres:1e3*Y,centimeters:100*Y,centimetres:100*Y,kilometers:Y/1e3,kilometres:Y/1e3,miles:Y/1609.344,nauticalmiles:Y/1852,inches:39.37*Y,yards:Y/1.0936,feet:3.28084*Y,radians:1,degrees:Y/111325};
  2672. /**
  2673. * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.
  2674. *
  2675. * @name feature
  2676. * @param {Geometry} geometry input geometry
  2677. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  2678. * @param {Object} [options={}] Optional Parameters
  2679. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  2680. * @param {string|number} [options.id] Identifier associated with the Feature
  2681. * @returns {Feature} a GeoJSON Feature
  2682. * @example
  2683. * var geometry = {
  2684. * "type": "Point",
  2685. * "coordinates": [110, 50]
  2686. * };
  2687. *
  2688. * var feature = turf.feature(geometry);
  2689. *
  2690. * //=feature
  2691. */
  2692. function G(e,t,r){if(!ee(
  2693. // Optional Parameters
  2694. r=r||{}))throw new Error("options is invalid");var n=r.bbox,a=r.id;
  2695. // Validation
  2696. if(void 0===e)throw new Error("geometry is required");if(t&&t.constructor!==Object)throw new Error("properties must be an Object");n&&te(n),a&&re(a);
  2697. // Main
  2698. var i={type:"Feature"};return a&&(i.id=a),n&&(i.bbox=n),i.properties=t||{},i.geometry=e,i}
  2699. /**
  2700. * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.
  2701. * For GeometryCollection type use `helpers.geometryCollection`
  2702. *
  2703. * @name geometry
  2704. * @param {string} type Geometry Type
  2705. * @param {Array<number>} coordinates Coordinates
  2706. * @param {Object} [options={}] Optional Parameters
  2707. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Geometry
  2708. * @returns {Geometry} a GeoJSON Geometry
  2709. * @example
  2710. * var type = 'Point';
  2711. * var coordinates = [110, 50];
  2712. *
  2713. * var geometry = turf.geometry(type, coordinates);
  2714. *
  2715. * //=geometry
  2716. */
  2717. /**
  2718. * Creates a {@link Point} {@link Feature} from a Position.
  2719. *
  2720. * @name point
  2721. * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)
  2722. * @param {Object} [properties={}] an Object of key-value pairs to add as properties
  2723. * @param {Object} [options={}] Optional Parameters
  2724. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature
  2725. * @param {string|number} [options.id] Identifier associated with the Feature
  2726. * @returns {Feature<Point>} a Point feature
  2727. * @example
  2728. * var point = turf.point([-75.343, 39.984]);
  2729. *
  2730. * //=point
  2731. */
  2732. function J(e,t,r){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!$(e[0])||!$(e[1]))throw new Error("coordinates must contain numbers");return G({type:"Point",coordinates:e},t,r)}
  2733. /**
  2734. * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.
  2735. *
  2736. * @name points
  2737. * @param {Array<Array<number>>} coordinates an array of Points
  2738. * @param {Object} [properties={}] Translate these properties to each Feature
  2739. * @param {Object} [options={}] Optional Parameters
  2740. * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the FeatureCollection
  2741. * @param {string|number} [options.id] Identifier associated with the FeatureCollection
  2742. * @returns {FeatureCollection<Point>} Point Feature
  2743. * @example
  2744. * var points = turf.points([
  2745. * [-75, 39],
  2746. * [-80, 45],
  2747. * [-78, 50]
  2748. * ]);
  2749. *
  2750. * //=points
  2751. */
  2752. /**
  2753. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians
  2754. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2755. *
  2756. * @name lengthToRadians
  2757. * @param {number} distance in real units
  2758. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2759. * @returns {number} radians
  2760. */
  2761. function H(e,t){if(void 0===e||null===e)throw new Error("distance is required");if(t&&"string"!==typeof t)throw new Error("units must be a string");var r=B[t||"kilometers"];if(!r)throw new Error(t+" units is invalid");return e/r}
  2762. /**
  2763. * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees
  2764. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet
  2765. *
  2766. * @name lengthToDegrees
  2767. * @param {number} distance in real units
  2768. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2769. * @returns {number} degrees
  2770. */
  2771. /**
  2772. * Converts an angle in degrees to radians
  2773. *
  2774. * @name degreesToRadians
  2775. * @param {number} degrees angle between 0 and 360 degrees
  2776. * @returns {number} angle in radians
  2777. */
  2778. function Q(e){if(null===e||void 0===e)throw new Error("degrees is required");return e%360*Math.PI/180}
  2779. /**
  2780. * Converts a length to the requested unit.
  2781. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2782. *
  2783. * @param {number} length to be converted
  2784. * @param {string} originalUnit of the length
  2785. * @param {string} [finalUnit='kilometers'] returned unit
  2786. * @returns {number} the converted length
  2787. */function _(e,t,r){if(null===e||void 0===e)throw new Error("length is required");if(!(e>=0))throw new Error("length must be a positive number");
  2788. /**
  2789. * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.
  2790. * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet
  2791. *
  2792. * @name radiansToLength
  2793. * @param {number} radians in radians across the sphere
  2794. * @param {string} [units='kilometers'] can be degrees, radians, miles, or kilometers inches, yards, metres, meters, kilometres, kilometers.
  2795. * @returns {number} distance
  2796. */
  2797. return function(e,t){if(void 0===e||null===e)throw new Error("radians is required");if(t&&"string"!==typeof t)throw new Error("units must be a string");var r=B[t||"kilometers"];if(!r)throw new Error(t+" units is invalid");return e*r}(H(e,t),r||"kilometers")}
  2798. /**
  2799. * Converts a area to the requested unit.
  2800. * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches
  2801. * @param {number} area to be converted
  2802. * @param {string} [originalUnit='meters'] of the distance
  2803. * @param {string} [finalUnit='kilometers'] returned unit
  2804. * @returns {number} the converted distance
  2805. */
  2806. /**
  2807. * isNumber
  2808. *
  2809. * @param {*} num Number to validate
  2810. * @returns {boolean} true/false
  2811. * @example
  2812. * turf.isNumber(123)
  2813. * //=true
  2814. * turf.isNumber('foo')
  2815. * //=false
  2816. */
  2817. function $(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}
  2818. /**
  2819. * isObject
  2820. *
  2821. * @param {*} input variable to validate
  2822. * @returns {boolean} true/false
  2823. * @example
  2824. * turf.isObject({elevation: 10})
  2825. * //=true
  2826. * turf.isObject('foo')
  2827. * //=false
  2828. */function ee(e){return!!e&&e.constructor===Object}
  2829. /**
  2830. * Validate BBox
  2831. *
  2832. * @private
  2833. * @param {Array<number>} bbox BBox to validate
  2834. * @returns {void}
  2835. * @throws Error if BBox is not valid
  2836. * @example
  2837. * validateBBox([-180, -40, 110, 50])
  2838. * //=OK
  2839. * validateBBox([-180, -40])
  2840. * //=Error
  2841. * validateBBox('Foo')
  2842. * //=Error
  2843. * validateBBox(5)
  2844. * //=Error
  2845. * validateBBox(null)
  2846. * //=Error
  2847. * validateBBox(undefined)
  2848. * //=Error
  2849. */function te(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!$(e))throw new Error("bbox must only contain numbers")}))}
  2850. /**
  2851. * Validate Id
  2852. *
  2853. * @private
  2854. * @param {string|number} id Id to validate
  2855. * @returns {void}
  2856. * @throws Error if Id is not valid
  2857. * @example
  2858. * validateId([-180, -40, 110, 50])
  2859. * //=Error
  2860. * validateId([-180, -40])
  2861. * //=Error
  2862. * validateId('Foo')
  2863. * //=OK
  2864. * validateId(5)
  2865. * //=OK
  2866. * validateId(null)
  2867. * //=Error
  2868. * validateId(undefined)
  2869. * //=Error
  2870. */function re(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}
  2871. // Deprecated methods
  2872. /* harmony default export */var ne=// CONCATENATED MODULE: ./node_modules/@turf/rhumb-destination/main.es.js
  2873. // https://en.wikipedia.org/wiki/Rhumb_line
  2874. /**
  2875. * Returns the destination {@link Point} having travelled the given distance along a Rhumb line from the
  2876. * origin Point with the (varant) given bearing.
  2877. *
  2878. * @name rhumbDestination
  2879. * @param {Coord} origin starting point
  2880. * @param {number} distance distance from the starting point
  2881. * @param {number} bearing varant bearing angle ranging from -180 to 180 degrees from north
  2882. * @param {Object} [options={}] Optional parameters
  2883. * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers
  2884. * @param {Object} [options.properties={}] translate properties to destination point
  2885. * @returns {Feature<Point>} Destination point.
  2886. * @example
  2887. * var pt = turf.point([-75.343, 39.984], {"marker-color": "F00"});
  2888. * var distance = 50;
  2889. * var bearing = 90;
  2890. * var options = {units: 'miles'};
  2891. *
  2892. * var destination = turf.rhumbDestination(pt, distance, bearing, options);
  2893. *
  2894. * //addToMap
  2895. * var addToMap = [pt, destination]
  2896. * destination.properties['marker-color'] = '#00F';
  2897. */
  2898. function(e,t,r,n){if(!ee(
  2899. // Optional parameters
  2900. n=n||{}))throw new Error("options is invalid");var a=n.units,i=n.properties;
  2901. // validation
  2902. if(!e)throw new Error("origin is required");if(void 0===t||null===t)throw new Error("distance is required");if(void 0===r||null===r)throw new Error("bearing is required");if(!(t>=0))throw new Error("distance must be greater than 0");var o=_(t,a,"meters"),s=I(e),u=
  2903. /**
  2904. * Returns the destination point having travelled along a rhumb line from origin point the given
  2905. * distance on the given bearing.
  2906. * Adapted from Geodesy: http://www.movable-type.co.uk/scripts/latlong.html#rhumblines
  2907. *
  2908. * @private
  2909. * @param {Array<number>} origin - point
  2910. * @param {number} distance - Distance travelled, in same units as earth radius (default: metres).
  2911. * @param {number} bearing - Bearing in degrees from north.
  2912. * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).
  2913. * @returns {Array<number>} Destination point.
  2914. */
  2915. function(e,t,r,n){
  2916. // φ => phi
  2917. // λ => lambda
  2918. // ψ => psi
  2919. // Δ => Delta
  2920. // δ => delta
  2921. // θ => theta
  2922. n=void 0===n?Y:Number(n);var a=t/n,i=e[0]*Math.PI/180,o=Q(e[1]),s=Q(r),u=a*Math.cos(s),l=o+u;// angular distance in radians
  2923. // check for some daft bugger going past the pole, normalise latitude if so
  2924. Math.abs(l)>Math.PI/2&&(l=l>0?Math.PI-l:-Math.PI-l);var c=Math.log(Math.tan(l/2+Math.PI/4)/Math.tan(o/2+Math.PI/4)),d=Math.abs(c)>1e-11?u/c:Math.cos(o),f=a*Math.sin(s)/d;return[(180*(i+f)/Math.PI+540)%360-180,180*l/Math.PI];// normalise to −180..+180°
  2925. }(s,o,r);
  2926. // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)
  2927. // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678
  2928. return u[0]+=u[0]-s[0]>180?-360:s[0]-u[0]>180?360:0,J(u,i)};
  2929. /**
  2930. * Scale Feature/Geometry
  2931. *
  2932. * @private
  2933. * @param {Feature|Geometry} feature GeoJSON Feature/Geometry
  2934. * @param {number} factor of scaling, positive or negative values greater than 0
  2935. * @param {string|Coord} [origin="centroid"] Point from which the scaling will occur (string options: sw/se/nw/ne/center/centroid)
  2936. * @returns {Feature|Geometry} scaled GeoJSON Feature/Geometry
  2937. */
  2938. function ae(e,t,r){
  2939. // Default params
  2940. var n="Point"===
  2941. /**
  2942. * Get GeoJSON object's type, Geometry type is prioritize.
  2943. *
  2944. * @param {GeoJSON} geojson GeoJSON object
  2945. * @param {string} [name="geojson"] name of the variable to display in error message
  2946. * @returns {string} GeoJSON type
  2947. * @example
  2948. * var point = {
  2949. * "type": "Feature",
  2950. * "properties": {},
  2951. * "geometry": {
  2952. * "type": "Point",
  2953. * "coordinates": [110, 40]
  2954. * }
  2955. * }
  2956. * var geom = turf.getType(point)
  2957. * //="Point"
  2958. */
  2959. function(e,t){if(!e)throw new Error((t||"geojson")+" is required");
  2960. // GeoJSON Feature & GeometryCollection
  2961. if(e.geometry&&e.geometry.type)return e.geometry.type;
  2962. // GeoJSON Geometry & FeatureCollection
  2963. if(e.type)return e.type;throw new Error((t||"geojson")+" is invalid")}(e);
  2964. // Shortcut no-scaling
  2965. return r=
  2966. /**
  2967. * Define Origin
  2968. *
  2969. * @private
  2970. * @param {GeoJSON} geojson GeoJSON
  2971. * @param {string|Coord} origin sw/se/nw/ne/center/centroid
  2972. * @returns {Feature<Point>} Point origin
  2973. */
  2974. function(e,t){
  2975. // Default params
  2976. void 0!==t&&null!==t||(t="centroid");
  2977. // Input Coord
  2978. if(Array.isArray(t)||"object"===typeof t)return I(t);
  2979. // Define BBox
  2980. var r=e.bbox?e.bbox:j(e),n=r[0],a=r[1],i=r[2],o=r[3];switch(t){case"sw":case"southwest":case"westsouth":case"bottomleft":return x([n,a]);case"se":case"southeast":case"eastsouth":case"bottomright":return x([i,a]);case"nw":case"northwest":case"westnorth":case"topleft":return x([n,o]);case"ne":case"northeast":case"eastnorth":case"topright":return x([i,o]);case"center":return m(e);case void 0:case null:case"centroid":return M(e);default:throw new Error("invalid origin")}}
  2981. /* harmony default export */(e,r),1===t||n||
  2982. // Scale each coordinate
  2983. N(e,(function(e){var n=z(r,e),a=U(r,e),i=function(e){if(!e)throw new Error("coords is required");
  2984. // Feature
  2985. if("Feature"===e.type&&null!==e.geometry)return e.geometry.coordinates;
  2986. // Geometry
  2987. if(e.coordinates)return e.coordinates;
  2988. // Array of numbers
  2989. if(Array.isArray(e))return e;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}
  2990. /**
  2991. * Checks if coordinates contains a number
  2992. *
  2993. * @name containsNumber
  2994. * @param {Array<any>} coordinates GeoJSON Coordinates
  2995. * @returns {boolean} true if Array contains a number
  2996. */(ne(r,n*t,a));e[0]=i[0],e[1]=i[1],3===e.length&&(e[2]*=t)})),e}var ie=// CONCATENATED MODULE: ./node_modules/@turf/transform-scale/main.es.js
  2997. /**
  2998. * Scale a GeoJSON from a given point by a factor of scaling (ex: factor=2 would make the GeoJSON 200% larger).
  2999. * If a FeatureCollection is provided, the origin point will be calculated based on each individual Feature.
  3000. *
  3001. * @name transformScale
  3002. * @param {GeoJSON} geojson GeoJSON to be scaled
  3003. * @param {number} factor of scaling, positive or negative values greater than 0
  3004. * @param {Object} [options={}] Optional parameters
  3005. * @param {string|Coord} [options.origin='centroid'] Point from which the scaling will occur (string options: sw/se/nw/ne/center/centroid)
  3006. * @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)
  3007. * @returns {GeoJSON} scaled GeoJSON
  3008. * @example
  3009. * var poly = turf.polygon([[[0,29],[3.5,29],[2.5,32],[0,29]]]);
  3010. * var scaledPoly = turf.transformScale(poly, 3);
  3011. *
  3012. * //addToMap
  3013. * var addToMap = [poly, scaledPoly];
  3014. * scaledPoly.properties = {stroke: '#F00', 'stroke-width': 4};
  3015. */
  3016. function(e,t,r){if(!F(
  3017. // Optional parameters
  3018. r=r||{}))throw new Error("options is invalid");var n=r.origin,a=r.mutate;
  3019. // Input validation
  3020. if(!e)throw new Error("geojson required");if("number"!==typeof t||0===t)throw new Error("invalid factor");var i=Array.isArray(n)||"object"===typeof n;
  3021. // Clone geojson to avoid side effects
  3022. // Scale each Feature separately
  3023. return!0!==a&&(e=s(e)),"FeatureCollection"!==e.type||i?ae(e,t,n):(W(e,(function(r,a){e.features[a]=ae(r,t,n)})),e);
  3024. // Scale Feature/Geometry
  3025. };
  3026. /***/},
  3027. /***/9458:
  3028. /***/function(e,t,r){"use strict";var n=(0,r(4836).default)(r(885));function a(e,t,r,n){var a;return n=(255-(a=Math.min(e,t,r)))/255,[e=((e-a)/n).toFixed(0),t=((t-a)/n).toFixed(0),r=((r-a)/n).toFixed(0),n=parseFloat(n.toFixed(4))]}function i(e){var t={},r={h:e[1]/360,s:e[2]/100,l:e[3]/100,a:parseFloat(e[4])};if(0===r.s){var n=255*r.l;t={r:n,g:n,b:n,a:r.a}}else{var a=r.l<.5?r.l*(1+r.s):r.l+r.s-r.l*r.s,i=2*r.l-a;t.r=255*l(i,a,r.h+1/3),t.g=255*l(i,a,r.h),t.b=255*l(i,a,r.h-1/3),t.a=r.a}return t}function o(e){e.r=e.r/255,e.g=e.g/255,e.b=e.b/255;var t,r=Math.max(e.r,e.g,e.b),n=Math.min(e.r,e.g,e.b),a=[];if(a.a=e.a,a.l=(r+n)/2,r===n)a.h=0,a.s=0;else{switch(t=r-n,a.s=a.l>=.5?t/(2-r-n):t/(r+n),r){case e.r:a.h=(e.g-e.b)/t+(e.g<e.b?6:0);break;case e.g:a.h=(e.b-e.r)/t+2;break;case e.b:a.h=(e.r-e.g)/t+4}a.h/=6}return a.h=parseInt((360*a.h).toFixed(0),10),a.s=parseInt((100*a.s).toFixed(0),10),a.l=parseInt((100*a.l).toFixed(0),10),a}function s(e){var t={},r={h:e[1]/360,s:e[2]/100,v:e[3]/100},n=Math.floor(6*r.h),a=6*r.h-n,i=r.v*(1-r.s),o=r.v*(1-a*r.s),s=r.v*(1-(1-a)*r.s);switch(n%6){case 0:t.r=r.v,t.g=s,t.b=i;break;case 1:t.r=o,t.g=r.v,t.b=i;break;case 2:t.r=i,t.g=r.v,t.b=s;break;case 3:t.r=i,t.g=o,t.b=r.v;break;case 4:t.r=s,t.g=i,t.b=r.v;break;case 5:t.r=r.v,t.g=i,t.b=o}return t.r=255*t.r,t.g=255*t.g,t.b=255*t.b,t}function u(e){e.r=c(parseInt(e.r,10)%256,256),e.g=c(parseInt(e.g,10)%256,256),e.b=c(parseInt(e.b,10)%256,256);var t=Math.max(e.r,e.g,e.b),r=Math.min(e.r,e.g,e.b),n=t-r,a={h:0,s:0===t?0:n/t,v:t};if(t!==r){switch(t){case e.r:a.h=(e.g-e.b)/n+(e.g<e.b?6:0);break;case e.g:a.h=(e.b-e.r)/n+2;break;case e.b:a.h=(e.r-e.g)/n+4}a.h/=6}return a.h=parseInt((360*a.h).toFixed(0),10),a.s=parseInt((100*a.s).toFixed(0),10),a.v=parseInt((100*a.v).toFixed(0),10),a}function l(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+6*(2/3-r)*(t-e):e}function c(e,t){return e/t}e.exports=/*jshint esversion: 6 */function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"rgba",l=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=e.toLowerCase(),t=t.toLowerCase();var c,d,f,h,p=e,y=r(8874),m={rgb:{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],toRGBA:function(e){return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),1]}},rgba:{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d+(?:\.\d+)?|\.\d+)\s*\)/,example:["rgba(123, 234, 45, 1)","rgba(255,234,245, 0.5)"],toRGBA:function(e){return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),parseFloat(e[4])]}},hex:{re:/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["00ff00","336699"],toRGBA:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),1]}},hex3:{re:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["fb0","f0f"],toRGBA:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16),1]}},hexa:{re:/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["00ff00ff","336699a0"],toRGBA:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),parseInt(e[4],16)/255]}},hex4a:{re:/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["fb0f","f0f8"],toRGBA:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16),parseInt(e[4]+e[4],16)/255]}},hsl:{re:/^hsl\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%\)$/,example:["hsl(120, 100%, 25%)","hsl(0, 100%, 50%)"],toRGBA:function(e){e[4]=1;var t=i(e);return[t.r,t.g,t.b,t.a]}},hsla:{re:/^hsla\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%,\s*(\d+(?:\.\d+)?|\.\d+)\s*\)/,example:["hsla(120, 100%, 25%, 1)","hsla(0, 100%, 50%, 0.5)"],toRGBA:function(e){var t=i(e);return[t.r,t.g,t.b,t.a]}},hsv:{re:/^hsv\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%\)$/,example:["hsv(120, 100%, 25%)","hsv(0, 100%, 50%)"],toRGBA:function(e){var t=s(e);return[t.r,t.g,t.b,1]}},hsb:{re:/^hsb\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%\)$/,example:["hsb(120, 100%, 25%)","hsb(0, 100%, 50%)"],toRGBA:function(e){var t=s(e);return[t.r,t.g,t.b,1]}}};// Search the color definitions for a match
  3029. for(var v in// If this is a named color, convert it to hex
  3030. y.hasOwnProperty(e)&&((e=y[e]).forEach((function(t,r){e[r]=("0"+t.toString(16)).slice(-2)})),e="#"+e.join("")),m){var g=m[v].re,b=m[v].toRGBA,w=g.exec(e);if(w){var S=b(w);c=S[0],d=S[1],f=S[2],h=+(Math.round(S[3]+"e+4")+"e-4")}}switch(c=Math.round(c<0||isNaN(c)?0:c>255?255:c),d=Math.round(d<0||isNaN(d)?0:d>255?255:d),f=Math.round(f<0||isNaN(f)?0:f>255?255:f),h=h<0||isNaN(h)?0:h>1?1:h,t){case"hex":p="#"+("0"+c.toString(16)).slice(-2)+("0"+d.toString(16)).slice(-2)+("0"+f.toString(16)).slice(-2);break;case"hexa":if(l){var L=a(c,d,f,h),E=(0,n.default)(L,4);c=E[0],d=E[1],f=E[2],h=E[3]}p="#"+("0"+c.toString(16)).slice(-2)+("0"+d.toString(16)).slice(-2)+("0"+f.toString(16)).slice(-2)+("0"+Math.round(255*h).toString(16)).slice(-2);break;case"hsl":var M=o({r:c,g:d,b:f});p="hsl(".concat(M.h,",").concat(M.s,"%,").concat(M.l,"%)");break;case"hsla":if(l){var k=a(c,d,f,h),x=(0,n.default)(k,4);c=x[0],d=x[1],f=x[2],h=x[3]}var T=o({r:c,g:d,b:f,a:h});p="hsla(".concat(T.h,",").concat(T.s,"%,").concat(T.l,"%,").concat(T.a,")");break;case"hsb":/* Same as `hsv` */var F=u({r:c,g:d,b:f});p="hsb(".concat(F.h,",").concat(F.s,"%,").concat(F.v,"%)");break;case"hsv":var P=u({r:c,g:d,b:f});p="hsv(".concat(P.h,",").concat(P.s,"%,").concat(P.v,"%)");break;case"rgb":p="rgb(".concat(c,",").concat(d,",").concat(f,")");break;/* falls through */default:if(l){var C=a(c,d,f,h),N=(0,n.default)(C,4);c=N[0],d=N[1],f=N[2],h=N[3]}p="rgba(".concat(c,",").concat(d,",").concat(f,",").concat(h,")")}return p},r.g.colorcolor=e.exports},
  3031. /***/1892:
  3032. /***/function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addListener=function(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=c.bind(e));if(!e.__resize_listeners__)if(e.__resize_listeners__=[],window.ResizeObserver){var r=e.offsetWidth,n=e.offsetHeight,p=new ResizeObserver((function(){(e.__resize_observer_triggered__||(e.__resize_observer_triggered__=!0,e.offsetWidth!==r||e.offsetHeight!==n))&&f(e)})),y=o(e),m=y.detached,v=y.rendered;e.__resize_observer_triggered__=!1===m&&!1===v,e.__resize_observer__=p,p.observe(e)}else if(e.attachEvent&&e.addEventListener)// targeting IE9/10
  3033. e.__resize_legacy_resize_handler__=function(){f(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(u||(l=function(e){var t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e));return(document.querySelector("head")||document.body).appendChild(t),t}(s)),function(e){var t=i(e,"position");t&&"static"!==t||(e.style.position="relative");e.__resize_old_position__=t,e.__resize_last__={};var r=a("div",{className:"resize-triggers"}),n=a("div",{className:"resize-expand-trigger"}),o=a("div"),s=a("div",{className:"resize-contract-trigger"});n.appendChild(o),r.appendChild(n),r.appendChild(s),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:n,expandChild:o,contract:s},h(e),e.addEventListener("scroll",d,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}(e),e.__resize_rendered__=o(e).rendered,window.MutationObserver){var g=new MutationObserver(e.__resize_mutation_handler__);g.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=g}e.__resize_listeners__.push(t),u++},t.removeListener=function(e,t){var r=e.__resize_listeners__;if(!r)return;t&&r.splice(r.indexOf(t),1);// no listeners exist, or removing all listeners
  3034. if(!r.length||!t){// targeting IE9/10
  3035. if(e.detachEvent&&e.removeEventListener)return e.detachEvent("onresize",e.__resize_legacy_resize_handler__),void document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",d),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}! --u&&l&&l.parentNode.removeChild(l)};var r=null;var n=null;function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=document.createElement(e);return Object.keys(t).forEach((function(e){r[e]=t[e]})),r}function i(e,t,r){return(window.getComputedStyle(e,r||null)||{display:"none"})[t]}function o(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if("none"===i(t,"display"))return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var s='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',u=0,l=null;function c(){// `this` denotes the scrolling element
  3036. var e=o(this),t=e.rendered,r=e.detached;t!==this.__resize_rendered__&&(!r&&this.__resize_triggers__&&(h(this),this.addEventListener("scroll",d,!0)),this.__resize_rendered__=t,f(this))}function d(){var e,t,a=this;// `this` denotes the scrolling element
  3037. h(this),this.__resize_raf__&&(e=this.__resize_raf__,n||(n=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window)),n(e)),this.__resize_raf__=(t=function(){var e=function(e){var t=e.__resize_last__,r=t.width,n=t.height,a=e.offsetWidth,i=e.offsetHeight;return a!==r||i!==n?{width:a,height:i}:null}(a);e&&(a.__resize_last__=e,f(a))},r||(r=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){return setTimeout(e,16)}).bind(window)),r(t))}function f(e){e&&e.__resize_listeners__&&e.__resize_listeners__.forEach((function(t){t.call(e,e)}))}function h(e){var t=e.__resize_triggers__,r=t.expand,n=t.expandChild,a=t.contract,i=a.scrollWidth,o=a.scrollHeight,s=r.offsetWidth,u=r.offsetHeight,l=r.scrollWidth,c=r.scrollHeight;// batch read
  3038. // batch write
  3039. a.scrollLeft=i,a.scrollTop=o,n.style.width=s+1+"px",n.style.height=u+1+"px",r.scrollLeft=l,r.scrollTop=c}
  3040. /***/},
  3041. /***/4870:
  3042. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=r(7187),l=n(r(5618)),c=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.default[1];return(0,a.default)(this,r),(e=t.call(this))._theme=n,e}return(0,i.default)(r,[{key:"theme",get:function(){return this._theme},set:function(e){this._theme=e}}]),r}(u.EventEmitter),d=new c;t.default=d},
  3043. /***/9752:
  3044. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.callHook=function(e,t,r){i.includes(t)&&e[t]&&"function"===typeof e[t]&&e[t](r)},t.clearNumberComma=// 清除数字(字符串型的)的逗号
  3045. function(e){e.replace&&(e=e.replace(/,/g,""));return e}
  3046. /**
  3047. * 判断是否地理X坐标
  3048. * @param data
  3049. */,t.getColorWithOpacity=function(e,t){if(e.indexOf("rgba")>-1)return e.substring(0,e.lastIndexOf(",")+1)+t+")";var r=(0,a.default)(e,"rgb");return"rgba"+r.substring(3,r.length-1)+",".concat(t,")")},t.getComponentInstance=function(e){this.instanceRef=e},t.getFirstMapTarget=function(e){var t;for(var r in e)if(r){t=r;break}return t}
  3050. /***/,t.hexToRgba=// 获取当前时间返回置顶格式
  3051. // export function getDateTime(timeType) {
  3052. // return geti18n().d(new Date(), timeType.replace(/\+/g, '_'), getLanguage());
  3053. // }
  3054. // hex -> rgba
  3055. function(e,t){return"rgba("+parseInt("0x"+e.slice(1,3))+","+parseInt("0x"+e.slice(3,5))+","+parseInt("0x"+e.slice(5,7))+","+t+")"}// export function isTransparent(color) {
  3056. // const rgba = colorcolor(color, 'rgba');
  3057. // return +rgba.match(/(\d(\.\d+)?)+/g)[3] === 0;
  3058. // }
  3059. // 保留指定位数的小数
  3060. ,t.isFunction=function(e){return"[object Function]"===Object.prototype.toString.call(e)},t.isXField=function(e){var t=e.toLowerCase();return"x"===t||"smx"===t||"jd"===t||"\u7ecf\u5ea6"===t||"\u4e1c\u7ecf"===t||"longitude"===t||"lot"===t||"lon"===t||"lng"===t||"x\u5750\u6807"===t}
  3061. /**
  3062. * 判断是否地理Y坐标
  3063. * @param data
  3064. */,t.isYField=function(e){var t=e.toLowerCase();return"y"===t||"smy"===t||"wd"===t||"\u7eac\u5ea6"===t||"\u5317\u7eac"===t||"latitude"===t||"lat"===t||"y\u5750\u6807"===t},t.reservedDecimal=function(e,t){return Number(e).toFixed(t)};var a=n(r(9458));var i=["loaded","removed"]},
  3065. /***/7006:
  3066. /***/function(e,t,r){"use strict";var n=r(5263).default,a=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=function(t){(0,l.default)(n,t);var r=(0,c.default)(n);function n(e){var t;return(0,o.default)(this,n),(t=r.call(this,e)).registerEvents=[],t.$_emitEvent=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="on".concat((0,y.default)(e));(0,m.isFunction)(t.props[n])&&t.props[n]((0,i.default)({map:t.map,layerId:t.props.layerId},r))},t.$_emitLayerMapEvent=function(e){t.$_emitEvent(e.type,{mapboxEvent:e})},t.$_bindLayerEvents=function(){Object.keys(t.props).forEach((function(e){if(t.eventList.includes(e)){var r=t.props.layerId,n=t.map.overlayLayersManager[r],a=e.replace("on","").toLowerCase();// @ts-ignore
  3067. t.registerEvents.push(a),n?(t.overLayer=n,n.on(a,t.$_emitLayerMapEvent)):t.map.on(a,r,t.$_emitLayerMapEvent)}}))},t.$_unbindLayerEvents=function(e){t.map&&e.forEach((function(e){!t.overLayer&&t.map.off(e,t.props.layerId,t.$_emitLayerMapEvent)}))},// move = beforeId => {
  3068. // this.map.moveLayer(this.props.layerId, beforeId);
  3069. // this.$_emitEvent('layer-moved', {
  3070. // beforeId: beforeId
  3071. // });
  3072. // };
  3073. t.remove=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.props.layerId;t.registerEvents&&t.registerEvents.length&&t.$_unbindLayerEvents(t.registerEvents),t.map&&(t.map&&t.map.removeLayer(e),t.$_emitEvent("layer-removed"))},t.eventList=["onMousedown","onMouseup","onClick","onDblclick","onMousemove","onMouseenter","onMouseleave","onMouseover","onMouseout","onContextmenu","onTouchstart","onTouchend","onTouchcancel"],t.getComponentInstance=m.getComponentInstance.bind((0,u.default)(t)),t}return(0,s.default)(n,[{key:"componentDidUpdate",value:function(e){if(e.minzoom===this.props.minzoom&&e.maxzoom===this.props.maxzoom||this.map.setLayerZoomRange(this.props.layerId,this.props.minzoom,this.props.maxzoom),e.filter!==this.props.filter&&this.map.setFilter(this.props.layerId,this.props.filter),this.props.layout&&e.layout!==this.props.layout)for(var t=0,r=Object.keys(this.props.layout);t<r.length;t++){var n=r[t];this.map.setLayoutProperty(this.props.layerId,n,this.props.layout[n])}if(this.props.paint&&e.paint!==this.props.paint)for(var a=0,i=Object.keys(this.props.paint);a<i.length;a++){var o=i[a];this.map.setPaintProperty(this.props.layerId,o,this.props.paint[o])}if(this.props.metadata&&e.metadata!==this.props.metadata){var s=this.map.getLayer(this.props.layerId);s.metadata?Object.assign(s.metadata,this.props.metadata):s.metadata=this.props.metadata}}},{key:"componentWillUnmount",value:function(){this.remove()}},{key:"loaded",value:function(e){this.map=e,(0,m.callHook)(this.instanceRef,"loaded",this.map),this.$_bindLayerEvents()}},{key:"removed",value:function(e){this.props.layerId&&this.map&&this.remove(),this.map=e,(0,m.callHook)(this.instanceRef,"removed",this.map)}},{key:"render",value:function(){// const { layerId } = this.props;
  3074. // const id = source || layerId;
  3075. // const sourceLoaded =
  3076. // this.map && layerId ? this.map.isSourceLoaded(layerId) : false;
  3077. // const mapLayer = this.map ? this.map.getLayer(layerId) : null;
  3078. // const mapSource =
  3079. // this.map && layerId ? this.map.getSource(layerId) : null;
  3080. var t=Object.assign({},this.props,{});return(0,v.jsx)(e,(0,i.default)((0,i.default)({},t),{},{ref:this.getComponentInstance,remove:this.remove}))}}]),n}(f.PureComponent);return t.displayName=(0,d.default)(e,"withLayer"),t.defaultProps={layerId:(0,p.default)("".concat(e.name.toLowerCase(),"-")),minzoom:0,maxzoom:22},(0,h.default)(t,e)};var i=a(r(8683)),o=a(r(5671)),s=a(r(3144)),u=a(r(7326)),l=a(r(9340)),c=a(r(8557)),d=a(r(6626)),f=n(r(3899)),h=a(r(8679)),p=a(r(4461)),y=a(r(1633)),m=r(9752),v=r(5893)},
  3081. /***/9635:
  3082. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=function(t){(0,u.default)(n,t);var r=(0,l.default)(n);function n(e){var t;return(0,i.default)(this,n),(t=r.call(this,e)).loadMapSucceed=t.loadMapSucceed.bind((0,s.default)(t)),t.deleteMapSucceed=t.deleteMapSucceed.bind((0,s.default)(t)),t.getComponentInstance=m.getComponentInstance.bind((0,s.default)(t)),t}return(0,o.default)(n,[{key:"componentDidMount",value:function(){var e=this.getTargetName();p.default.getMap(e)&&this.loadMap(e),p.default.on("load-map",this.loadMapSucceed),y.default.on("delete-map",this.deleteMapSucceed)}},{key:"componentDidUpdate",value:function(e){var t=this.props.mapTarget,r=e.mapTarget;t&&r&&t!==r&&this.mapTargetChanged(t)}},{key:"componentWillUnmount",value:function(){p.default.off("load-map",this.loadMapSucceed),y.default.off("delete-map",this.deleteMapSucceed)}},{key:"getTargetName",value:function(){
  3083. /**
  3084. * 便于区分存在多个map时,子组件对应的map的渲染;
  3085. * map 和 webmap 的 props 属性是 target 其他组件都叫 mapTarget
  3086. * 如果子组件包裹在 map 组件里面,若没有传 mapTarget, 则 targetName 直接取父元素的target 的值
  3087. * 如果子组件和 map 同层级,且没有设置 mapTarget 时,则默认渲染到第一个 map 上
  3088. *
  3089. */
  3090. // const selfParent = this._reactInternalInstance._currentElement._owner._instance;
  3091. // console.log(selfParent);
  3092. // console.log('selfParent: ', selfParent);
  3093. // const parentTarget =
  3094. // selfParent && selfParent.name.toLowerCase() === 'smwebmap' &&
  3095. // selfParent.target;
  3096. // return this.props.mapTarget || parentTarget || Object.keys(mapEvent.getAllMaps())[0];
  3097. var e=p.default.getAllMaps();return this.props.mapTarget||(0,m.getFirstMapTarget)(e)}},{key:"loadMapSucceed",value:function(e,t){t===this.getTargetName()&&this.loadMap(t)}},{key:"mapTargetChanged",value:function(e){// 多个map切换的时候,需要删除该组件与前一个map的图层绑定, 如果新的target没有对应的map,那么默认绑定第一个地图
  3098. var t=p.default.getAllMaps(),r=(0,m.getFirstMapTarget)(t),n=p.default.getMap(r);this.resetData(),(p.default.getMap(e)||n)&&this.loadMap(e)}},{key:"loadMap",value:function(e){this.map=p.default.getMap(e),this.webmap=p.default.getWebMap(e),(0,m.callHook)(this.instanceRef,"loaded",this.map)}},{key:"deleteMapSucceed",value:function(e){e===this.getTargetName()&&this.resetData()}},{key:"resetData",value:function(){this.map=null,this.webmap=null,(0,m.callHook)(this.instanceRef,"removed",this.map)}},{key:"mapNotLoadedTip",value:function(){return!this.map&&(h.message.destroy(),// TODO
  3099. // message.warning(this.$t('warning.unassociatedMap'));
  3100. h.message.warning("\u60a8\u9700\u8981\u914d\u7f6e\u5173\u8054\u5730\u56fe\uff01"),!0)}},{key:"render",value:function(){return(0,v.jsx)(e,(0,a.default)((0,a.default)({},this.props),{},{ref:this.getComponentInstance,mapNotLoadedTip:this.mapNotLoadedTip}))}}]),n}(d.default.Component);return t.displayName=(0,c.default)(e,"mapGetter"),(0,f.default)(t,e)}
  3101. /***/;var a=n(r(8683)),i=n(r(5671)),o=n(r(3144)),s=n(r(7326)),u=n(r(9340)),l=n(r(8557)),c=n(r(6626)),d=n(r(3899)),f=n(r(8679)),h=r(2721),p=n(r(1104)),y=n(r(4870)),m=r(9752),v=r(5893)},
  3102. /***/1558:
  3103. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(this,e),this.layout={visibility:"visible"},this.paint={"circle-radius":6,"circle-color":"#3fb1e3","circle-opacity":1,"circle-blur":0,"circle-translate":[0,0],"circle-translate-anchor":"map","circle-pitch-scale":"map","circle-pitch-alignment":"viewport","circle-stroke-width":0,"circle-stroke-color":"#000","circle-stroke-opacity":1},Object.assign(this.paint,t),Object.assign(this.layout,r)}));t.default=o},
  3104. /***/3768:
  3105. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(this,e),this.layout={visibility:"visible"},this.paint={"fill-opacity":.8,"fill-color":"#3fb1e3","fill-translate":[0,0],"fill-antialias":!0,"fill-outline-color":"#3fb1e3","fill-translate-anchor":"map"},Object.assign(this.paint,t),Object.assign(this.layout,r)}));t.default=o},
  3106. /***/9623:
  3107. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(this,e),this.paint={"heatmap-radius":30,"heatmap-weight":1,"heatmap-intensity":1,"heatmap-color":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],"heatmap-opacity":1},this.layout={visibility:"visible"},Object.assign(this.paint,t),Object.assign(this.layout,r)}));t.default=o},
  3108. /***/8214:
  3109. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(this,e),this.layout={visibility:"visible","line-cap":"butt","line-join":"miter"},this.paint={"line-opacity":1,"line-color":"#3fb1e3","line-width":3,"line-blur":1},Object.assign(this.paint,t),Object.assign(this.layout,r)}));t.default=o},
  3110. /***/1700:
  3111. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(this,e),this.paint=Object.assign({},t),this.layout=Object.assign({visibility:"visible"},r)}));t.default=o},
  3112. /***/2009:
  3113. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"CircleStyle",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"FillStyle",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"HeatMapStyle",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"LineStyle",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"SymbolStyle",{enumerable:!0,get:function(){return u.default}});var a=n(r(1558)),i=n(r(3768)),o=n(r(8214)),s=n(r(9623)),u=n(r(1700))},
  3114. /***/1104:
  3115. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=r(7187),l=n(r(8383)),c=n(r(4870)),d=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(){var e;(0,a.default)(this,r);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return(e=t.call.apply(t,[this].concat(i))).mapCache={},e.webMapCache={},e}return(0,i.default)(r,[{key:"getMap",value:function(e){return this.mapCache[e]}},{key:"getWebMap",value:function(e){return this.webMapCache[e]}},{key:"getAllMaps",value:function(){return this.mapCache}},{key:"getAllWebMap",value:function(){return this.webMapCache}},{key:"setMap",value:function(e,t){this.mapCache[e]=t}},{key:"setWebMap",value:function(e,t){this.webMapCache[e]=t}},{key:"deleteMap",value:function(e){c.default.emit("delete-map",e),// drawEvent.$options.deletDrawOfMap(mapTarget);
  3116. delete this.mapCache[e]}},{key:"deleteWebMap",value:function(e){delete this.webMapCache[e]}},{key:"getMapSource",value:function(e){var t=[],r=this.getMap(e);if(r){var n=new l.default({map:r}).getSourceList();for(var a in n){if(a)(n[a].layers||[]).forEach((function(e){e.source&&"raster"!==e.type&&t.push(e.source)}))}}return t}}]),r}(u.EventEmitter),f=new d;t.default=f},
  3117. /***/3595:
  3118. /***/function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleMultyPolygon=void 0;t.handleMultyPolygon=function(e){return e.forEach((function(e){if("Polygon"===e.geometry.type){var t=e.geometry.coordinates;if(t.length>1){var r=[];t.forEach((function(e){r.push([e])})),e.geometry.coordinates=r,e.geometry.type="MultiPolygon"}}})),e}},
  3119. /***/1191:
  3120. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"SmAnimateMarkerLayer",{enumerable:!0,get:function(){return E.default}}),Object.defineProperty(t,"SmClusterLayer",{enumerable:!0,get:function(){return y.default}}),Object.defineProperty(t,"SmDataFlowLayer",{enumerable:!0,get:function(){return S.default}}),Object.defineProperty(t,"SmDeckglLayer",{enumerable:!0,get:function(){return m.default}}),Object.defineProperty(t,"SmEchartsLayer",{enumerable:!0,get:function(){return w.default}}),Object.defineProperty(t,"SmFireLayer",{enumerable:!0,get:function(){return L.default}}),Object.defineProperty(t,"SmGeojsonLayer",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"SmGraphThemeLayer",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(t,"SmHeatmapLayer",{enumerable:!0,get:function(){return g.default}}),Object.defineProperty(t,"SmLabelThemeLayer",{enumerable:!0,get:function(){return v.default}}),Object.defineProperty(t,"SmLayer",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"SmMap",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"SmMapvLayer",{enumerable:!0,get:function(){return b.default}}),Object.defineProperty(t,"SmRangeThemeLayer",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(t,"SmRanksymbolThemeLayer",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"SmRasterTileLayer",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"SmSource",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"SmUniqueThemeLayer",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"SmVectorTileLayer",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"SmWebMap",{enumerable:!0,get:function(){return a.default}});var a=n(r(4416)),i=n(r(8611)),o=n(r(1406)),s=n(r(5558)),u=n(r(9704)),l=n(r(1771)),c=n(r(2125)),d=n(r(4204)),f=n(r(3930)),h=n(r(5890)),p=n(r(910)),y=n(r(9407)),m=n(r(9183)),v=n(r(2174)),g=n(r(6073)),b=n(r(7)),w=n(r(1762)),S=n(r(2313)),L=n(r(4799)),E=n(r(1193))},
  3121. /***/4483:
  3122. /***/function(e,t,r){"use strict";var n=r(5263).default,a=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0});var i={};t.default=void 0;var o=a(r(8683));r(9626),r(2547);var s=n(r(1191));Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var u=n(r(2009)),l=(0,o.default)((0,o.default)({},s),{},{commontypes:u});t.default=l},
  3123. /***/1016:
  3124. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(3144)),i=n(r(5671)),o=(0,a.default)((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.default)(this,e),this.id=t.id,this.maxzoom=t.maxzoom,this.minzoom=t.minzoom,this.source=t.source,this.type=t.type,this.visibility=t.visibility||"visible"})),s=o;t.default=s},
  3125. /***/8611:
  3126. /***/function(e,t,r){"use strict";var n=r(5263).default,a=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(r(8683)),o=a(r(5671)),s=a(r(3144)),u=a(r(7326)),l=a(r(9340)),c=a(r(8557)),d=n(r(3899)),f=r(4831),h=a(r(8031)),p=a(r(1296)),y=a(r(1633)),m=a(r(39)),v=a(r(9208)),g=a(r(2307)),b=r(1892),w=a(r(1104)),S=r(9752),L=r(5893),E=function(e){(0,l.default)(r,e);var t=(0,c.default)(r);function r(e){var n;return(0,o.default)(this,r),(n=t.call(this,e)).viewModelProps=["mapOptions.center","mapOptions.zoom","mapOptions.crs","mapOptions.minZoom","mapOptions.maxZoom","mapOptions.maxBounds","mapOptions.renderWorldCopies","mapOptions.bearing","mapOptions.pitch"],n.initializeWebMap=function(){var e=n.props,t=e.target,r=e.tiandituKey,a=e.mapOptions,i=e.autoresize;n.viewModel=new h.default({target:t,tiandituKey:r},a),i&&(0,b.addListener)(n.selfRef.current,n.__resizeHandler)},n.registerEvents=function(){var e=n.props,t=e.target,r=e.onLoad;n.viewModel.on("addlayerssucceeded",(function(e){n.setState({spinning:!1}),w.default.setMap(t,e.map),n.viewModel&&w.default.setWebMap(t,n.viewModel),w.default.emit("load-map",e.map,t),e.map.resize(),n.map=e.map,// 绑定map event
  3127. n.bindMapEvents(),
  3128. /**
  3129. * @event load
  3130. * @desc webmap 加载完成之后触发。
  3131. * @property {mapboxgl.Map} map - MapBoxGL Map 对象。
  3132. */
  3133. (0,S.isFunction)(r)&&r((0,i.default)((0,i.default)({},e),{},{component:(0,u.default)(n)}))}))},n.mapEventCallback=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.emitMapEvent(e.type,(0,i.default)({mapboxEvent:e},t))},n.state={spinning:!0},n.selfRef=d.default.createRef(),n.__resizeHandler=(0,p.default)(n.__resizeHandler.bind((0,u.default)(n)),100,{leading:!0}),n}return(0,s.default)(r,[{key:"componentDidMount",value:function(){this.initializeWebMap(),this.registerEvents()}},{key:"getLayerIds",value:function(e){return null===e||void 0===e?void 0:e.reduce((function(e,t){var r,n;if(null!==t&&void 0!==t&&null!==(r=t.type)&&void 0!==r&&null!==(n=r.displayName)&&void 0!==n&&n.includes("Layer")){var a=t.props.layerId;a&&e.push(a)}return e}),[])}},{key:"componentDidUpdate",value:function(e){var t=this;this.viewModel&&this.viewModelProps.forEach((function(r){var n=r.includes(".")?r.split(".")[1]:r,a="set".concat((0,m.default)(n)),i=(0,v.default)(t.props,r),o=(0,v.default)(e,r);i&&!(0,g.default)(i,o)&&t.viewModel[a](i)}));var r=this.props,n=r.sprites,a=r.glyphs;for(var i in n)e.sprites[i]!==n[i]&&this.viewModel.addSprites(i,n[i]);for(var o in a)e.glyphs[o]!==a[o]&&this.viewModel.addGlyphs(o,a[o]);if(this.map){var s=this.getLayerIds(e.children),u=this.getLayerIds(this.props.children);// 过滤图层顺序相等的情况
  3134. (0,g.default)(s,u)||this.viewModel.changeLayersOrder(u)}}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.target,r=e.autoresize;w.default.deleteMap(t),w.default.deleteWebMap(t),r&&this.selfRef.current&&(0,b.removeListener)(this.selfRef.current,this.__resizeHandler)}},{key:"bindMapEvents",value:function(){var e=this;Object.keys(this.props).forEach((function(t){if(f.MAP_EVENT_NAMES.includes(t)){var r=t.replace("on","");e.bindMapEvent(r.toLowerCase(),e.mapEventCallback)}}))}},{key:"bindMapEvent",value:function(e,t){this.map.on(e,t)}},{key:"emitMapEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="on".concat((0,y.default)(e));(0,S.isFunction)(this.props[r])&&this.props[r]((0,i.default)({map:this.map,component:this},t))}},{key:"__resizeHandler",value:function(){this.resize()}},{key:"resize",value:function(){this.viewModel&&this.viewModel.resize&&this.viewModel.resize()}},{key:"render",value:function(){var e=this.state.spinning,t=this.props,r=t.target,n=t.children;return(0,L.jsx)("div",{id:r,className:"sm-component-map",ref:this.selfRef,children:!e&&n})}}]),r}(d.Component);E.defaultProps={target:"map",autoresize:!0};var M=E;t.default=M},
  3135. /***/8031:
  3136. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375)),l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{style:{version:8,sources:{},layers:[]}};return(0,a.default)(this,r),(n=t.call(this)).mapOptions=Object.assign({style:{version:8,sources:{},layers:[]}},i),n.tiandituKey=e.tiandituKey||"",n.target=e.target||"map",n.center=i.center||[],n.zoom=i.zoom,n._createMap(),n}return(0,i.default)(r,[{key:"_createMap",value:function(){var e=this;this.map&&(this.map.remove(),this.center=[],this.zoom=null),this.mapOptions.container=this.target,setTimeout((function(){e.map=new u.default.Map(e.mapOptions),e.map.on("load",(function(){e.fire("addlayerssucceeded",{map:e.map})}))}),0)}
  3137. /**
  3138. * @function WebMapViewModel.prototype.resize
  3139. * @description Map 更新大小。
  3140. */},{key:"resize",value:function(){this.map&&this.map.resize()}
  3141. /**
  3142. * @function WebMapViewModel.prototype.setCRS
  3143. * @description 设置地图的投影。
  3144. * @param {Number} crs - 地图投影。
  3145. */},{key:"setCrs",value:function(e){this.map&&(this.mapOptions.crs=e,//@ts-ignore
  3146. e&&this.map.setCRS(u.default.CRS.get(e)))}
  3147. /**
  3148. * @function WebMapViewModel.prototype.setZoom
  3149. * @description 设置地图的缩放级别。
  3150. * @param {Number} zoom - 地图缩放级别。
  3151. */},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,(e||0===e)&&this.map.setZoom(e))}
  3152. /**
  3153. * @function WebMapViewModel.prototype.setCenter
  3154. * @description 设置地图的中心点。
  3155. * @param {Array} center - 地图中心点。
  3156. */},{key:"setCenter",value:function(e){this.map&&(this.mapOptions.center=e,e&&e.length>0&&this.map.setCenter(e))}
  3157. /**
  3158. * @function WebMapViewModel.prototype.setMaxBounds
  3159. * @description 设置地图的最大范围。
  3160. * @param {Array} maxBounds - 地图最大范围。
  3161. */},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&e.length>0&&this.map.setMaxBounds(e))}
  3162. /**
  3163. * @function WebMapViewModel.prototype.setMinZoom
  3164. * @description 设置地图的最小级别。
  3165. * @param {Number} minZoom - 地图最小级别。
  3166. */},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}
  3167. /**
  3168. * @function WebMapViewModel.prototype.setMaxZoom
  3169. * @description 设置地图的最大级别。
  3170. * @param {Number} maxZoom - 地图最大级别。
  3171. */},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMinZoom(e))}
  3172. /**
  3173. * @function WebMapViewModel.prototype.setRenderWorldCopies
  3174. * @description 设置地图的平铺。
  3175. * @param {Boolean} renderWorldCopies - 地图是否平铺。
  3176. */},{key:"setRenderWorldCopies",value:function(e){this.map&&(this.mapOptions.renderWorldCopies=e,e&&this.map.setRenderWorldCopies(e))}
  3177. /**
  3178. * @function WebMapViewModel.prototype.setBearing
  3179. * @description 设置地图的方位。
  3180. * @param {Number} bearing - 地图的初始方位。
  3181. */},{key:"setBearing",value:function(e){this.map&&(this.mapOptions.bearing=e,(e||0===e)&&this.map.setBearing(e))}
  3182. /**
  3183. * @function WebMapViewModel.prototype.setPitch
  3184. * @description 设置地图的俯仰。
  3185. * @param {Number} pitch - 地图的初始俯仰。
  3186. */},{key:"setPitch",value:function(e){this.map&&(this.mapOptions.pitch=e,(e||0===e)&&this.map.setPitch(e))}},{key:"addSprites",value:function(e,t){var r;null!==(r=this.map)&&void 0!==r&&r.style&&this.map.style.addSprite(e,t)}},{key:"addGlyphs",value:function(e,t){var r;null!==(r=this.map)&&void 0!==r&&r.style&&this.map.style.addGlyphs(e,t)}
  3187. /**
  3188. * @function MapViewModel.prototype.changeLayersOrder
  3189. * @description 设置图层顺序
  3190. * @param {string[]} newLayerIds - 正确顺序的图层id数据
  3191. */},{key:"changeLayersOrder",value:function(e){// 最后一个图层的位置不变,从倒数第二个图层开始移动图层顺序
  3192. for(var t=e.length-2;t>-1;t--){var r=e[t],n=e[t+1];this.map.moveLayer(r,n)}}}]),r}(u.default.Evented),c=l;t.default=c},
  3193. /***/1406:
  3194. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(4925)),o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(9635)),h=["id","mapNotLoadedTip"],p=(0,c.default)(f.default)(a=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(e){var n;return(0,o.default)(this,r),(n=t.call(this,e))._map=null,n}return(0,s.default)(r,[{key:"componentWillUnmount",value:function(){var e=this;setTimeout((function(){e._map.removeSource(e.props.id)}),100)}},{key:"loaded",value:function(e){this._map=e;var t=this.props,r=t.id,n=(t.mapNotLoadedTip,(0,i.default)(t,h));this._map.getSource(r)||this._map.addSource(r,n)}},{key:"render",value:function(){return null}}]),r}(d.default.PureComponent))||a;t.default=p},
  3195. /***/8383:
  3196. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(7591)),s=n(r(1016)),u=function(){function e(t){(0,a.default)(this,e),this.map=t.map,this.style=this.map.getStyle(),this.layers=this.map.getStyle().layers,this.overlayLayers=this.map.overlayLayersManager,this.detailLayers=null,this.sourceList={},this.sourceNames=[],this._initLayers(),this._initSource(),this.excludeSourceNames=["tdt-search-","tdt-route-","smmeasure","mapbox-gl-draw"]}return(0,i.default)(e,[{key:"getSourceList",value:function(){var e={};for(var t in this.sourceList)t&&this.excludeSource(t)&&(e[t]=this.sourceList[t]);return e}},{key:"getSourceNames",value:function(){var e=this,t=[];return this.sourceNames.forEach((function(r){r&&e.excludeSource(r)&&t.push(r)})),t}},{key:"excludeSource",value:function(e){for(var t=0;t<this.excludeSourceNames.length;t++)if(e.indexOf(this.excludeSourceNames[t])>=0)return!1;return!0}},{key:"getLegendStyle",value:function(e){return e?this.sourceList[e]?this.sourceList[e].style:"":(Object.values(this.sourceList)||[]).filter((function(e){return!!e.style}))}},{key:"getLayers",value:function(){return this.detailLayers}},{key:"getLayersBySourceLayer",value:function(e,t){return this.sourceList[e].sourceLayerList[t]}},{key:"getSourceLayersBySource",value:function(e){return this.sourceList[e].sourceLayerList}},{key:"addSourceStyle",value:function(e,t){this.sourceList[e]&&(this.sourceList[e].style=t)}},{key:"_initLayers",value:function(){var e=this;this.layers&&(this.detailLayers=this.layers.map((function(t){return e.map.getLayer(t.id)}))),Object.values(this.overlayLayers).forEach((function(t){t.id&&e.detailLayers.push({id:t.id,visibility:t.visibility?"visible":"none",source:t.id})}))}},{key:"_initSource",value:function(){var e=this;this.detailLayers&&this.detailLayers.forEach((function(t){e.sourceList[t.source]||(e.sourceList[t.source]=new o.default({source:t.source}),e.sourceNames.push(t.source)),e.sourceList[t.source].addLayer(new s.default(t),t.sourceLayer)}))}}]),e}();t.default=u},
  3197. /***/7591:
  3198. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=function(){function e(t){(0,a.default)(this,e),this.id=t.source,this.sourceLayerList={},this.layers=[],this.type=null}return(0,i.default)(e,[{key:"addLayer",value:function(e,t){t?(this.sourceLayerList[t]||(this.sourceLayerList[t]=[]),this.sourceLayerList[t].push(e)):this.sourceLayerList=void 0,this.layers.push(e),this.type=e.type,[e.visibility,this.visibility].includes("visible")?this.visibility="visible":this.visibility="none"}}]),e}();t.default=o},
  3199. /***/4416:
  3200. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(8683)),i=n(r(5671)),o=n(r(3144)),s=n(r(7326)),u=n(r(9340)),l=n(r(8557)),c=n(r(3899)),d=r(1892),f=n(r(1296)),h=n(r(1633)),p=n(r(39)),y=r(2721),m=n(r(9208)),v=n(r(2307)),g=n(r(1104)),b=n(r(2872)),w=r(9752),S=r(4831),L=r(5893),E=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(e){var n;return(0,i.default)(this,r),(n=t.call(this,e))._isMounted=!1,n.initializeWebMap=function(){var e=n.props,t=e.target,r=e.serverUrl,a=e.accessToken,i=e.accessKey,o=e.tiandituKey,s=e.withCredentials,u=e.excludePortalProxyUrl,l=e.mapOptions,c=e.autoresize;n.viewModel=new b.default(n.props.mapId,{target:t,serverUrl:r,accessToken:a,accessKey:i,tiandituKey:o,withCredentials:s,excludePortalProxyUrl:u},l),c&&(0,d.addListener)(n.selfRef.current,n.__resizeHandler)},n.registerEvents=function(){var e=n.props,t=e.target,r=e.onLoad;n.viewModel.on("addlayerssucceeded",(function(e){n._isMounted&&n.setState({spinning:!1}),g.default.setMap(t,e.map),n.viewModel&&g.default.setWebMap(t,n.viewModel),g.default.emit("load-map",e.map,t),e.map.resize(),n.map=e.map,// 绑定map event
  3201. n.bindMapEvents(),
  3202. /**
  3203. * @event load
  3204. * @desc webmap 加载完成之后触发。
  3205. * @property {mapboxgl.Map} map - MapBoxGL Map 对象。
  3206. */
  3207. (0,w.isFunction)(r)&&r((0,a.default)((0,a.default)({},e),{},{component:(0,s.default)(n)}))})),n.viewModel.on("getmapinfofailed",(function(e){var t=n.props.onGetMapFailed;
  3208. /**
  3209. * @event getMapFailed
  3210. * @desc 获取 WebMap 地图信息失败。
  3211. * @property {Object} error - 失败原因。
  3212. */(0,w.isFunction)(t)&&t({error:e.error}),y.message.error(e.error.message),n._isMounted&&n.setState({spinning:!1})})),n.viewModel.on("getlayerdatasourcefailed",(function(e){var t=n.props.onGetLayerDatasourceFailed;
  3213. /**
  3214. * @event getLayerDatasourceFailed
  3215. * @desc 获取图层数据失败。
  3216. * @property {Object} error - 失败原因。
  3217. * @property {Object} layer - 图层信息。
  3218. * @property {mapboxgl.Map} map - MapBoxGL Map 对象。
  3219. */(0,w.isFunction)(t)&&t({error:e.error,layer:e.layer,map:e.map}),// TODO
  3220. // message.error(this.$t('webmap.getLayerInfoFailed'));
  3221. y.message.error("\u83b7\u53d6\u56fe\u5c42\u4fe1\u606f\u5931\u8d25\uff01")}))},n.state={spinning:!0,viewModelProps:["mapId","serverUrl","mapOptions.center","mapOptions.zoom","mapOptions.style","mapOptions.crs","mapOptions.minZoom","mapOptions.maxZoom","mapOptions.maxBounds","mapOptions.renderWorldCopies","mapOptions.bearing","mapOptions.pitch","withCredentials"]},n.selfRef=c.default.createRef(),n.__resizeHandler=(0,f.default)(n.__resizeHandler.bind((0,s.default)(n)),100,{leading:!0}),n}return(0,o.default)(r,[{key:"componentDidMount",value:function(){this._isMounted=!0,this.initializeWebMap(),this.registerEvents()}},{key:"componentDidUpdate",value:function(e){var t=this;this.viewModel&&this.state.viewModelProps.forEach((function(r){var n=r.includes(".")?r.split(".")[1]:r,a="set".concat((0,p.default)(n)),i=(0,m.default)(t.props,r),o=(0,m.default)(e,r);void 0===i||null===i||(0,v.default)(i,o)||t.viewModel[a](i)}))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.target,r=e.autoresize;g.default.deleteMap(t),g.default.deleteWebMap(t),r&&this.selfRef.current&&(0,d.removeListener)(this.selfRef.current,this.__resizeHandler),this._isMounted=!1}},{key:"__resizeHandler",value:function(){this.resize()}},{key:"resize",value:function(){this.viewModel&&this.viewModel.resize&&this.viewModel.resize()}},{key:"bindMapEvents",value:function(){var e=this;Object.keys(this.props).forEach((function(t){if(S.MAP_EVENT_NAMES.includes(t)){var r=t.replace("on","");e.bindMapEvent(r.toLowerCase(),e.mapEventCallback.bind(e))}}))}},{key:"bindMapEvent",value:function(e,t){this.map.on(e,t)}},{key:"mapEventCallback",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.emitMapEvent(e.type,(0,a.default)({mapboxEvent:e},t))}},{key:"emitMapEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="on".concat((0,h.default)(e));(0,w.isFunction)(this.props[r])&&this.props[r]((0,a.default)({map:this.map,component:this},t))}},{key:"render",value:function(){var e=this.state.spinning,t=this.props,r=t.target,n=t.children;return(0,L.jsxs)("div",{id:r,className:"sm-component-web-map",ref:this.selfRef,children:[n,e&&(0,L.jsx)(y.Spin,{size:"large",tip:"\u5730\u56fe\u52a0\u8f7d\u4e2d...",spinning:e})]})}}]),r}(c.default.Component);E.defaultProps={target:"map",autoresize:!0};var M=E;t.default=M},
  3222. /***/2872:
  3223. /***/function(e,t,r){"use strict";var n=r(5263).default,a=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(r(5671)),o=a(r(3144)),s=a(r(9340)),u=a(r(8557)),l=a(r(375)),c=a(r(8383)),d=r(3595),f=r(9752);r(2395),r(8399),r(8553);var h=n(r(7888)),p=a(r(5973)),y=a(r(550)),m=a(r(3094)),v=a(r(5385)),g=a(r(2158)),b=a(r(4461)),w=a(r(3465)),S=["559082264.0287178","279541132.0143589","139770566.0071794","69885283.00358972","34942641.50179486","17471320.75089743","8735660.375448715","4367830.1877224357","2183915.093862179","1091957.546931089","545978.7734655447","272989.7734655447","272989.3867327723","136494.6933663862","68247.34668319309","34123.67334159654","17061.83667079827","8530.918335399136","4265.459167699568","2132.729583849784"],L=["5.590822640287176E8","2.795411320143588E8","1.397705660071794E8","6.98852830035897E7","3.494264150179485E7","1.7471320750897426E7","8735660.375448713","4367830.187724357","2183915.0938621783","1091957.5469310891","545978.7734655446","272989.3867327723","136494.69336638614","68247.34668319307","34123.673341596535","17061.836670798268","8530.918335399134"],E=["GoogleCRS84Quad","GoogleMapsCompatible","GlobalCRS84Scale"],M=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(e){var n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{style:{version:8,sources:{},layers:[]}};return(0,i.default)(this,r),(n=t.call(this)).mapParams={},// on: any;
  3224. // fire: any;
  3225. n.echartslayer=[],n.canvgsV=[],n._layers=[],n.mapId=e,n.mapOptions=Object.assign({style:{version:8,sources:{},layers:[]}},o),n.serverUrl=a.serverUrl||"http://www.supermapol.com",n.accessToken=a.accessToken,n.accessKey=a.accessKey,n.tiandituKey=a.tiandituKey||"",n.withCredentials=a.withCredentials||!1,n.target=a.target||"map",n.excludePortalProxyUrl=a.excludePortalProxyUrl,n.center=o.center||[],n.zoom=o.zoom,n.echartslayer=[],n._createWebMap(),n.on("mapinitialized",(function(){n.map.on("remove",(function(){n._stopCanvg()}))})),n}
  3226. /**
  3227. * @function WebMapViewModel.prototype.resize
  3228. * @description Map 更新大小。
  3229. */return(0,o.default)(r,[{key:"resize",value:function(){this.map&&this.map.resize(),this.echartsLayerResize()}
  3230. /**
  3231. * @function WebMapViewModel.prototype.EchartsLayerResize
  3232. * @description echartslayer 更新大小。
  3233. */},{key:"echartsLayerResize",value:function(){this.echartslayer.forEach((function(e){e.chart.resize()}))}
  3234. /**
  3235. * @function WebMapViewModel.prototype.setMapId
  3236. * @description 设置地图 ID。
  3237. * @param {String} mapId - iPortal|Online 地图 ID。
  3238. */},{key:"setMapId",value:function(e){var t=this;this.mapId=e,setTimeout((function(){t._createWebMap(),//@ts-ignore
  3239. window.map=t.map}),0)}
  3240. /**
  3241. * @function WebMapViewModel.prototype.setServerUrl
  3242. * @description 设置地图的地址。
  3243. * @param {string} options.serverUrl - 地图的地址。
  3244. */},{key:"setServerUrl",value:function(e){this.serverUrl=e}},{key:"setWithCredentials",value:function(e){this.withCredentials=e}
  3245. /**
  3246. * @function WebMapViewModel.prototype.setCRS
  3247. * @description 设置地图的投影。
  3248. * @param {Number} crs - 地图投影。
  3249. */},{key:"setCrs",value:function(e){this.map&&(this.mapOptions.crs=e,//@ts-ignore
  3250. e&&this.map.setCRS(l.default.CRS.get(e)))}
  3251. /**
  3252. * @function WebMapViewModel.prototype.setZoom
  3253. * @description 设置地图的缩放级别。
  3254. * @param {Number} zoom - 地图缩放级别。
  3255. */},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,(e||0===e)&&this.map.setZoom(e))}
  3256. /**
  3257. * @function WebMapViewModel.prototype.setCenter
  3258. * @description 设置地图的中心点。
  3259. * @param {Array} center - 地图中心点。
  3260. */},{key:"setCenter",value:function(e){this.map&&(this.mapOptions.center=e,e&&e.length>0&&this.map.setCenter(e))}
  3261. /**
  3262. * @function WebMapViewModel.prototype.setMaxBounds
  3263. * @description 设置地图的最大范围。
  3264. * @param {Array} maxBounds - 地图最大范围。
  3265. */},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&e.length>0&&this.map.setMaxBounds(e))}
  3266. /**
  3267. * @function WebMapViewModel.prototype.setMinZoom
  3268. * @description 设置地图的最小级别。
  3269. * @param {Number} minZoom - 地图最小级别。
  3270. */},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}
  3271. /**
  3272. * @function WebMapViewModel.prototype.setMaxZoom
  3273. * @description 设置地图的最大级别。
  3274. * @param {Number} maxZoom - 地图最大级别。
  3275. */},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMaxZoom(e))}
  3276. /**
  3277. * @function WebMapViewModel.prototype.setRenderWorldCopies
  3278. * @description 设置地图的平铺。
  3279. * @param {Boolean} renderWorldCopies - 地图是否平铺。
  3280. */},{key:"setRenderWorldCopies",value:function(e){this.map&&(this.mapOptions.renderWorldCopies=e,e&&this.map.setRenderWorldCopies(e))}
  3281. /**
  3282. * @function WebMapViewModel.prototype.setBearing
  3283. * @description 设置地图的方位。
  3284. * @param {Number} bearing - 地图的初始方位。
  3285. */},{key:"setBearing",value:function(e){this.map&&(this.mapOptions.bearing=e,(e||0===e)&&this.map.setBearing(e))}
  3286. /**
  3287. * @function WebMapViewModel.prototype.setPitch
  3288. * @description 设置地图的俯仰。
  3289. * @param {Number} pitch - 地图的初始俯仰。
  3290. */},{key:"setPitch",value:function(e){this.map&&(this.mapOptions.pitch=e,(e||0===e)&&this.map.setPitch(e))}
  3291. /**
  3292. * @function WebMapViewModel.prototype.setStyle
  3293. * @description 设置地图的样式。
  3294. * @param {Object} style - 地图的样式。
  3295. */},{key:"setStyle",value:function(e){this.map&&(this.mapOptions.style=e,e&&this.map.setStyle(e))}},{key:"getSourceListModel",get:function(){return this._sourceListModel}
  3296. /**
  3297. * @private
  3298. * @function WebMapViewModel.prototype._createWebMap
  3299. * @description 登陆窗口后添加地图图层。
  3300. */},{key:"_createWebMap",value:function(){var e=this;if(this.map&&(this.map.remove(),this.center=[],this.zoom=null,this._dataflowService&&this._dataflowService.off("messageSucceeded",this._handleDataflowFeaturesCallback)),!this.mapId||!this.serverUrl)return this.mapOptions.container=this.target,void setTimeout((function(){e.map=new l.default.Map(e.mapOptions),e.map.on("load",(function(){e.fire("addlayerssucceeded",{map:e.map,mapparams:{},layers:[]})}))}),0);this._legendList={},this._taskID=new Date;var t=this.serverUrl.split("");"/"!==t[t.length-1]&&(this.serverUrl+="/");var r=this.serverUrl+"web/maps/"+this.mapId+"/map";(this.accessToken||this.accessKey)&&(r+=(this.accessToken&&this.accessKey,"token="+this.accessToken));var n="getUrlResource.json?url=";if(this.excludePortalProxyUrl&&this.serverUrl.indexOf(n)>-1){// 大屏需求,或者有加上代理的
  3301. var a=this.serverUrl.split(n);a.length>1&&(r=a[0]+n+this.serverUrl+"web/maps/"+this.mapId+"/map.json")}this._getMapInfo(r,this._taskID)}
  3302. /**
  3303. * @private
  3304. * @function WebMapViewModel.prototype._createMap
  3305. * @description 创建地图。
  3306. */},{key:"_createMap",value:function(e){// 获取字体样式
  3307. var t=[],r=e.layers;// 获取 label 图层字体类型
  3308. r&&r.length>0&&r.forEach((function(e){e.labelStyle&&t.push(e.labelStyle.fontFamily)}),this),t.push("'supermapol-icons'");var n,a=t.join(",");// zoom
  3309. n=e.center&&[e.center.x,e.center.y];// center
  3310. var i=e.level||0;i=0===i?0:i-1,n||(n=[0,0]),"EPSG:3857"===this.baseProjection&&(n=this._unproject(n)),n=new l.default.LngLat(n[0],n[1]),// 初始化 map
  3311. this.map=new l.default.Map({container:this.target,center:this.center.length?this.center:n,zoom:this.zoom||i,style:{version:8,sources:{},// "glyphs": 'http://iclsvr.supermap.io/iserver/services/map-beijing/rest/maps/beijingMap/tileFeature/sdffonts/{fontstack}/{range}.pbf',
  3312. layers:[]},// @ts-ignore -------- crs 为 enhance 新加属性
  3313. crs:this.baseProjection,localIdeographFontFamily:a||"",renderWorldCopies:!1,preserveDrawingBuffer:this.mapOptions.preserveDrawingBuffer||!1}),
  3314. /**
  3315. * @event WebMapViewModel#mapinitialized
  3316. * @description Map 初始化成功。
  3317. * @property {mapboxglTypes.Map} map - MapBoxGL Map 对象。
  3318. */
  3319. this.fire("mapinitialized",{map:this.map})}
  3320. /**
  3321. * @private
  3322. * @function WebMapViewModel.prototype._getMapInfo
  3323. * @description 获取地图的 JSON 信息。
  3324. * @param {string} url - 请求地图的 url。
  3325. */},{key:"_getMapInfo",value:function(e,t){var r=this,n=-1===e.indexOf(".json")?"".concat(e,".json"):e;SuperMap.FetchRequest.get(n,null,{withCredentials:this.withCredentials}).then((function(e){return e.json()})).then((function(e){// 坐标系异常处理
  3326. if(r.baseProjection=e.projection,// 存储地图的名称以及描述等信息,返回给用户
  3327. r.mapParams={title:e.title,description:e.description},!l.default.CRS.get(r.baseProjection))throw Error("\u4e0d\u652f\u6301\u5f53\u524d\u5730\u56fe\u7684\u5750\u6807\u7cfb");r._createMap(e);var n=e.layers;r.map.on("load",(function(){e.baseLayer&&"MAPBOXSTYLE"===e.baseLayer.layerType?// 添加矢量瓦片服务作为底图
  3328. r._addMVTBaseMap(e):r._addBaseMap(e),n&&0!==n.length?r._addLayers(n,t):r._sendMapToUser(0,0)}))})).catch((function(e){
  3329. /**
  3330. * @event WebMapViewModel#getmapinfofailed
  3331. * @description 获取地图信息失败。
  3332. * @property {Object} error - 失败原因。
  3333. */
  3334. r.fire("getmapinfofailed",{error:e})}))}},{key:"_addMVTBaseMap",value:function(e){var t=e.baseLayer.dataSource.url;// @ts-ignore
  3335. this.map.addStyle(t)}
  3336. /**
  3337. * @private
  3338. * @function WebMapViewModel.prototype._addBaseMap
  3339. * @description 添加底图。
  3340. * @param {Object} mapInfo - map 信息。
  3341. */},{key:"_addBaseMap",value:function(e){this._createBaseLayer(e)}
  3342. /**
  3343. * @private
  3344. * @function WebMapViewModel.prototype._createBaseLayer
  3345. * @description 创建底图。
  3346. * @param {Object} mapInfo - map 信息。
  3347. */},{key:"_createBaseLayer",value:function(e){var t=e.baseLayer||e,r=t.layerType;// 底图和rest地图兼容
  3348. (r.indexOf("TIANDITU_VEC")>-1||r.indexOf("TIANDITU_IMG")>-1||r.indexOf("TIANDITU_TER")>-1)&&(r=r.substr(0,12));var n;switch(r){case"TIANDITU_VEC":case"TIANDITU_IMG":case"TIANDITU_TER":this._createTiandituLayer(e);break;case"BING":this._createBingLayer(t.name);break;case"WMS":this._createWMSLayer(t);break;case"WMTS":this._createWMTSLayer(t);break;case"TILE":case"SUPERMAP_REST":this._createDynamicTiledLayer(t);break;case"CLOUD":case"CLOUD_BLACK":case"OSM":case"JAPAN_ORT":case"JAPAN_RELIEF":case"JAPAN_PALE":case"JAPAN_STD":case"GOOGLE_CN":case"GOOGLE":n={CLOUD:"http://t2.dituhui.com/FileService/image?map=quanguo&type=web&x={x}&y={y}&z={z}",CLOUD_BLACK:"http://t3.dituhui.com/MapService/getGdp?x={x}&y={y}&z={z}",OSM:"http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",GOOGLE:"http://www.google.cn/maps/vt/pb=!1m4!1m3!1i{z}!2i{x}!3i{y}!2m3!1e0!2sm!3i380072576!3m8!2szh-CN!3scn!5e1105!12m4!1e68!2m2!1sset!2sRoadmap!4e0!5m1!1e0",GOOGLE_CN:"https://mt{0-3}.google.cn/vt/lyrs=m&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}",JAPAN_STD:"http://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png",JAPAN_PALE:"http://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png",JAPAN_RELIEF:"http://cyberjapandata.gsi.go.jp/xyz/relief/{z}/{x}/{y}.png",JAPAN_ORT:"http://cyberjapandata.gsi.go.jp/xyz/ort/{z}/{x}/{y}.jpg"}[r],this._createXYZLayer(t,n)}}
  3349. /**
  3350. * @private
  3351. * @function WebMapViewModel.prototype._createTiandituLayer
  3352. * @description 创建天地图底图。
  3353. * @param {Object} mapInfo - map 信息。
  3354. */},{key:"_createTiandituLayer",value:function(e){var t=this._getTiandituUrl(e),r=e.baseLayer.layerType,n=Boolean(e.baseLayer.labelLayerVisible),a=t.labelUrl,i=t.tiandituUrl;this._addBaselayer(i,"tianditu-layers-"+r),n&&this._addBaselayer(a,"tianditu-label-layers-"+r)}
  3355. /**
  3356. * @private
  3357. * @function WebMapViewModel.prototype._createWMTSLayer
  3358. * @description 创建 WMTS 底图。
  3359. * @param {Object} layerInfo - 地图信息。
  3360. */},{key:"_createWMTSLayer",value:function(e){var t=this,r=this._getWMTSUrl(e);this._filterWMTSIsMatched(e,(function(n,a){n&&t._addBaselayer([r],"wmts-layers"+e.name,0,a)}))}
  3361. /**
  3362. * @private
  3363. * @function WebMapViewModel.prototype._filterWMTSIsMatched
  3364. * @description 过滤能够跟mapboxgl匹配的wmts服务。
  3365. * @param {Object} mapInfo - map 信息。
  3366. * @callback matchedCallback
  3367. */},{key:"_filterWMTSIsMatched",value:function(e,t){var r=this,n=!1,a=22,i=e.url;SuperMap.FetchRequest.get(i,null,{withCredentials:!1,withoutFormatSuffix:!0}).then((function(e){return e.text()})).then((function(i){for(var o=h||window.convert,s=JSON.parse(o.xml2json(i,{compact:!0,spaces:4})).Capabilities.Contents.TileMatrixSet,u=0;u<s.length;u++)if(s[u]["ows:Identifier"]&&s[u]["ows:Identifier"]._text===e.tileMatrixSet)if(E.includes(s[u].WellKnownScaleSet._text))n=!0;else{if(!s[u].WellKnownScaleSet||"Custom"!==s[u].WellKnownScaleSet._text)throw Error("\u4e0d\u652f\u6301\u4f20\u5165\u7684 TileMatrixSet");for(var l=[],c=// @ts-ignore -------- crs 为 enhance 新加属性
  3368. "EPSG:3857"===r.map.crs?S:L,d=0,f=c.length// 坐标系判断
  3369. ;d<f&&s[u].TileMatrix[d]&&c[d]===s[u].TileMatrix[d].ScaleDenominator._text;d++)l.push(c[d]);if(a=l.length-1,0===l.length)throw Error("\u4e0d\u652f\u6301\u4f20\u5165\u7684 TileMatrixSet");n=!0}t(n,a)})).catch((function(e){
  3370. /**
  3371. * @event WebMapViewModel#getwmtsinfofailed
  3372. * @description 获取 WMTS 图层信息失败。
  3373. * @property {Object} error - 失败原因。
  3374. * @property {mapboxglTypes.Map} map - MapBoxGL Map 对象。
  3375. */
  3376. r.fire("getwmtsinfofailed",{error:e,map:r.map})}))}
  3377. /**
  3378. * @private
  3379. * @function WebMapViewModel.prototype._createBingLayer
  3380. * @description 创建 Bing 图层。
  3381. */},{key:"_createBingLayer",value:function(e){// @ts-ignore
  3382. this._addBaselayer(["http://dynamic.t0.tiles.ditu.live.com/comp/ch/{quadkey}?it=G,TW,L,LA&mkt=zh-cn&og=109&cstl=w4c&ur=CN&n=z"],"bing-layers-"+e)}
  3383. /**
  3384. * @private
  3385. * @function WebMapViewModel.prototype._createXYZLayer
  3386. * @description 创建 XYZ 底图。
  3387. * @param {String} url - url 地址。
  3388. */},{key:"_createXYZLayer",value:function(e,t){var r=[];if("OSM"===e.layerType){for(var n=t.match(/\w\-\w/g)[0],a=n[0],i=n[2],o="",s=97;s<123;s++)o+=String.fromCharCode(s);for(var u=o.split(""),l=u.indexOf(a),c=u.indexOf(i),d=u.slice(l,c+1),f=0;f<d.length;f++){var h=t.replace(/{\w\-\w}/g,d[f]);r.push(h)}}else if("GOOGLE_CN"===e.layerType)for(var p=t.match(/\d\-\d/g)[0],y=parseInt(p[0]),m=parseInt(p[2]),v=y;v<=m;v++){var g=t.replace(/{\d\-\d}/g,v.toString());r.push(g)}else r=[t];this._addBaselayer(r,"XYZ-layers-"+e.name)}
  3389. /**
  3390. * @private
  3391. * @function WebMapViewModel.prototype._createDynamicTiledLayer
  3392. * @description 创建 iserver 底图。
  3393. * @param {Object} layerInfo - 图层信息。
  3394. */},{key:"_createDynamicTiledLayer",value:function(e){var t=e.url+"/zxyTileImage.png?z={z}&x={x}&y={y}";// @ts-ignore -------- setCRS 为 enhance 新加属性
  3395. this.map.setCRS&&"EPSG:3857"!==this.baseProjection&&(t=e.url+"/image.png?viewBounds={viewBounds}&width={width}&height={height}"),this._addBaselayer([t],"tile-layers-"+e.name)}
  3396. /**
  3397. * @private
  3398. * @function WebMapViewModel.prototype._createWMSLayer
  3399. * @description 创建 WMS 图层。
  3400. * @param {Object} layerInfo - 图层信息。
  3401. */},{key:"_createWMSLayer",value:function(e){var t=this._getWMSUrl(e);this._addBaselayer([t],"WMS-layers-"+e.name)}
  3402. /**
  3403. * @private
  3404. * @function WebMapViewModel.prototype._createVectorLayer
  3405. * @description 创建 Vector 图层。
  3406. * @param {Object} layerInfo - map 信息。
  3407. * @param {Array} features - 属性 信息。
  3408. */},{key:"_createVectorLayer",value:function(e,t){var r=e.style,n=e.featureType,a=e.layerID,i=e.visible,o={style:this._transformStyleToMapBoxGl(r,n),layout:{visibility:i}},s={type:"geojson",data:{type:"FeatureCollection",features:t}};this._addOverlayToMap(n,s,a,o),// 如果面有边框
  3409. "POLYGON"===n&&r.strokeColor&&this._addStrokeLineForPoly(r,s,a+"-strokeLine",i)}
  3410. /**
  3411. * @function WebMapViewModel.prototype._getTiandituUrl
  3412. * @private
  3413. * @description 创建天地图url;
  3414. * @param {Object} mapInfo - map 信息。
  3415. */},{key:"_getTiandituUrl",value:function(e){for(var t=/t0/gi,r={tiandituUrl:[],labelUrl:[]},n=e.baseLayer.layerType.split("_")[1].toLowerCase(),a=Boolean(e.baseLayer.labelLayerVisible),i="http://t0.tianditu.com/{layer}_{proj}/wmts?tk=".concat(this.tiandituKey),o=i,s="EPSG:4326"===this.baseProjection?"c":"w",u={service:"WMTS",request:"GetTile",style:"default",version:"1.0.0",layer:n,tilematrixSet:s,format:"tiles",width:256,height:256},l=(i+=this._getParamString(u,i)+"&tilematrix={z}&tilerow={y}&tilecol={x}").replace("{layer}",n).replace("{proj}",s),c=[],d=0;d<8;d++)c.push(l.replace(t,"t".concat(d)));// 如果有 label 图层
  3416. if(r.tiandituUrl=c,a){var f={vec:"cva",ter:"cta",img:"cia"}[n];u.layer=f,o=(o+=this._getParamString(u,o)+"&tilematrix={z}&tilerow={y}&tilecol={x}").replace("{layer}",f).replace("{proj}",s);for(var h=[],p=0;p<8;p++)h.push(o.replace(t,"t".concat(p)));r.labelUrl=h}return r}
  3417. /**
  3418. * @function WebMapViewModel.prototype._getWMSUrl
  3419. * @private
  3420. * @description 创建 WMS url;
  3421. * @param {Object} mapInfo - map 信息。
  3422. */},{key:"_getWMSUrl",value:function(e){var t=e.url,r=(t=t.split("?")[0]).split("/"),n={service:"WMS",request:"GetMap",layers:r[r.length-1],styles:"",format:"image/png",transparent:"true",version:"1.1.1",width:256,height:256,srs:this.baseProjection},a="EPSG:4326"===this.baseProjection?"{bbox-epsg-4326}":"{bbox-epsg-3857}";return t+=this._getParamString(n,t)+"&bbox=".concat(a)}
  3423. /**
  3424. * @private
  3425. * @function WebMapViewModel.prototype._checkUploadToRelationship
  3426. * @description 检查是否上传到关系型
  3427. * @param {String} fileId - 文件的id
  3428. * @returns {Promise<T | never>} 关系型文件一些参数
  3429. */},{key:"_checkUploadToRelationship",value:function(e){return SuperMap.FetchRequest.get("".concat(this.serverUrl,"web/datas/").concat(e,"/datasets.json"),null,{withCredentials:this.withCredentials}).then((function(e){return e.json()})).then((function(e){return e}))}
  3430. /**
  3431. * @private
  3432. * @function ol.supermap.WebMap.prototype._getDataService
  3433. * @description 获取上传的数据信息
  3434. * @param {String} fileId - 文件id
  3435. * @param {String} datasetName 数据服务的数据集名称
  3436. * @returns {Promise<T | never>} 数据的信息
  3437. */},{key:"_getDataService",value:function(e,t){return SuperMap.FetchRequest.get("".concat(this.serverUrl,"web/datas/").concat(e,".json"),null,{withCredentials:this.withCredentials}).then((function(e){return e.json()})).then((function(r){return r.fileId=e,r.datasetName=t,r}))}
  3438. /**
  3439. * @private
  3440. * @function WebMapViewModel.prototype._getService
  3441. * @description 获取当前数据发布的服务中的某种类型服务
  3442. * @param {Array} services 服务集合
  3443. * @param {String} type 服务类型,RESTDATA, RESTMAP
  3444. * @returns {Object} 服务
  3445. */},{key:"_getService",value:function(e,t){return e.filter((function(e){return e&&e.serviceType===t}))[0]}},{key:"_getServiceInfoFromLayer",value:function(e,t,r,n,a,i,o){var s=this,u=o?!o.isMvt:"HOSTED_TILE"===r.layerType,l=!1;n.forEach((function(n,c){l||(//有服务了,就不需要循环
  3446. n&&u&&"RESTMAP"===n.serviceType?(l=!0,//地图服务,判断使用mvt还是tile
  3447. s._getTileLayerInfo(n.address).then((function(e){e.forEach((function(e){var n=e.bounds;r.layerType="TILE",r.orginEpsgCode=s.baseProjection,r.units=e.coordUnit&&e.coordUnit.toLowerCase(),r.extent=[n.left,n.bottom,n.right,n.top],r.visibleScales=e.visibleScales,r.url=e.url,r.sourceType="TILE",s._createBaseLayer(r),s.layerAdded++,s._sendMapToUser(s.layerAdded,t)}))}))):n&&!u&&"RESTDATA"===n.serviceType&&(o&&o.isMvt?(s._addVectorLayer(o,r,i),s.layerAdded++,s._sendMapToUser(s.layerAdded,t)):(//数据服务
  3448. l=!0,//关系型文件发布的数据服务
  3449. s._getDatasources(n.address).then((function(i){r.dataSource.dataSourceName=i+":"+a,r.dataSource.url="".concat(n.address,"/data"),s._getFeatureBySQL(r.dataSource.url,[r.dataSource.dataSourceName||r.name],(function(n){var a=s._parseGeoJsonData2Feature({allDatas:{features:n.result.features.features},fileCode:r.projection,featureProjection:s.baseProjection});s._addLayer(r,a,e),s.layerAdded++,s._sendMapToUser(s.layerAdded,t)}),(function(e){s.layerAdded++,s._sendMapToUser(s.layerAdded,t),s.fire("getlayerdatasourcefailed",{error:e,layer:r,map:s.map})}))})))))}),this),l||(//循环完成了,也没有找到合适的服务。有可能服务被删除
  3450. this.layerAdded++,this._sendMapToUser(this.layerAdded,t),this.fire("getlayerdatasourcefailed",{error:null,layer:r,map:this.map}))}
  3451. /**
  3452. * @private
  3453. * @function WebMapViewModel.prototype._getDatasources
  3454. * @description 获取关系型文件发布的数据服务中数据源的名称
  3455. * @param {String} url - 获取数据源信息的url
  3456. * @returns {Promise<T | never>} 数据源名称
  3457. */},{key:"_getDatasources",value:function(e){return SuperMap.FetchRequest.get("".concat(e,"/data/datasources.json")).then((function(e){return e.json()})).then((function(e){return e.datasourceNames[0]}))}
  3458. /**
  3459. * @private
  3460. * @function WebMapViewModel.prototype._getTileLayerInfo
  3461. * @description 获取地图服务的信息
  3462. * @param {String} url 地图服务的url(没有地图名字)
  3463. * @returns {Promise<T | never>} 地图服务信息
  3464. */},{key:"_getTileLayerInfo",value:function(e){var t=this,r=this.serverUrl+"apps/viewer/getUrlResource.json?url=",n=r+encodeURIComponent(e),a=this.baseProjection.split("EPSG:")[1];return SuperMap.FetchRequest.get("".concat(n,"/maps.json"),null,{withCredentials:this.withCredentials}).then((function(e){return e.json()})).then((function(e){var n=[];return e&&e.forEach((function(e){var i=SuperMap.FetchRequest.get("".concat(r).concat(e.path,".json?prjCoordSys=").concat(JSON.stringify({epsgCode:a})),null,{withCredentials:t.withCredentials}).then((function(e){return e.json()})).then((function(t){return t.url=e.path,t}));n.push(i)})),Promise.all(n).then((function(e){return e}))}))}
  3465. /**
  3466. * @private
  3467. * @function WebMapViewModel.prototype._addLayers
  3468. * @description 添加叠加图层。
  3469. * @param {Object} mapInfo - 图层信息。
  3470. */},{key:"_addLayers",value:function(e,t){var r,n=this;// 存储地图上所有的图层对象
  3471. this._layers=e,this.layerAdded=0;var a=e.length;a>0&&e.forEach((function(e,i){if(e.dataSource&&e.dataSource.serverId||"MARKER"===e.layerType||"HOSTED_TILE"===e.layerType){//数据存储到iportal上了
  3472. var o=e.dataSource,s=o?o.serverId:e.serverId;if(!s)return n._addLayer(e,null,i),n.layerAdded++,void n._sendMapToUser(n.layerAdded,a);if("MARKER"===e.layerType||o&&(!o.accessType||"DIRECT"===o.accessType)){//原来二进制文件
  3473. var u="".concat(n.serverUrl,"web/datas/").concat(s,"/content.json?pageSize=9999999&currentPage=1");n.accessToken&&(u="".concat(u,"&").concat(n.accessKey,"=").concat(n.accessToken)),SuperMap.FetchRequest.get(u,null,{withCredentials:n.withCredentials}).then((function(e){return e.json()})).then((function(o){if(t===n._taskID)return!1===o.succeed?(//请求失败
  3474. n.layerAdded++,n._sendMapToUser(n.layerAdded,a),void// -----------------------todo-----------------
  3475. n.fire("getlayerdatasourcefailed",{error:o.error,layer:e,map:n.map})):void(o&&o.type&&("JSON"===o.type||"GEOJSON"===o.type?(o.content=JSON.parse(o.content.trim()),r=n._formatGeoJSON(o.content)):"EXCEL"!==o.type&&"CSV"!==o.type||(r=n._excelData2Feature(o.content)),n._addLayer(e,r,i),n.layerAdded++,n._sendMapToUser(n.layerAdded,a)))})).catch((function(t){n.layerAdded++,n._sendMapToUser(n.layerAdded,a),n.fire("getlayerdatasourcefailed",{error:t,layer:e,map:n.map})}))}else{//关系型文件
  3476. var l="HOSTED_TILE"===e.layerType,c=o?o.serverId:e.serverId;n._checkUploadToRelationship(c).then((function(t){if(t&&t.length>0){var r=t[0].name,o=t[0].type.toUpperCase();n._getDataService(c,r).then((function(t){var s=t.dataItemServices;if(0===s.length)return n.layerAdded++,n._sendMapToUser(n.layerAdded,a),void n.fire("getlayerdatasourcefailed",{error:null,layer:e,map:n.map});if(l){var u=s.filter((function(e){return e&&"RESTDATA"===e.serviceType}))[0];n._isMvt(u.address,r).then((function(t){n._getServiceInfoFromLayer(i,a,e,s,r,o,t)})).catch((function(){//判断失败就走之前逻辑,>数据量用tile
  3477. n._getServiceInfoFromLayer(i,a,e,s,r,o)}))}else n._getServiceInfoFromLayer(i,a,e,s,r,o)}))}else n.layerAdded++,n._sendMapToUser(n.layerAdded,a),n.fire("getlayerdatasourcefailed",{error:null,layer:e,map:n.map})})).catch((function(t){n.layerAdded++,n._sendMapToUser(n.layerAdded,a),n.fire("getlayerdatasourcefailed",{error:t,layer:e,map:n.map})}))}}else if("SUPERMAP_REST"===e.layerType||"TILE"===e.layerType||"WMS"===e.layerType||"WMTS"===e.layerType)n._createBaseLayer(e),n.layerAdded++,n._sendMapToUser(n.layerAdded,a);else if(e.dataSource&&"REST_DATA"===e.dataSource.type){//从restData获取数据
  3478. var d=e.dataSource;n._getFeatureBySQL(d.url,[d.dataSourseName||e.name],(function(t){r=n._parseGeoJsonData2Feature({allDatas:{features:t.result.features.features},fileCode:e.projection,featureProjection:n.baseProjection}),n._addLayer(e,r,i),n.layerAdded++,n._sendMapToUser(n.layerAdded,a)}),(function(t){n.layerAdded++,n._sendMapToUser(n.layerAdded,a),n.fire("getlayerdatasourcefailed",{error:t,layer:e,map:n.map})}))}else e.dataSource&&"REST_MAP"===e.dataSource.type&&e.dataSource.url?n._queryFeatureBySQL(e.dataSource.url,e.dataSource.layerName,(function(t){var r=t&&t.result.recordsets,o=r&&r[0],s=o.fields;if(o&&s){var u=[];for(var l in s){var c=s[l];0===c.indexOf("Sm")&&"SmID"!==c||u.push(c)}n._getFeatures(u,e,(function(t){n._addLayer(e,t,i),n.layerAdded++,n._sendMapToUser(n.layerAdded,a)}),(function(t){n.layerAdded++,n.fire("getlayerdatasourcefailed",{error:t,layer:e,map:n.map})}))}}),(function(t){n.fire("getlayerdatasourcefailed",{error:t,layer:e,map:n.map})}),"smid=1"):"DATAFLOW_POINT_TRACK"!==e.layerType&&"DATAFLOW_HEAT"!==e.layerType||n._getDataflowInfo(e,(function(){n._addLayer(e,null,i),n.layerAdded++,n._sendMapToUser(n.layerAdded,a)}),(function(e){n.layerAdded++;// TODO fire faild
  3479. }))}),this)}
  3480. /**
  3481. * @private
  3482. * @function WebMapViewModel.prototype._getFeatures
  3483. */},{key:"_getFeatures",value:function(e,t,r,n){var a=this,i=t.dataSource,o=t.projection;this._queryFeatureBySQL(i.url,i.layerName,(function(e){var t=e.result.recordsets[0].features.features,n=a._parseGeoJsonData2Feature({allDatas:{features:t},fileCode:o,featureProjection:a.baseProjection});r(n)}),(function(e){n(e)}),null,e)}
  3484. /**
  3485. * @private
  3486. * @function WebMapViewModel.prototype._addLayer
  3487. * @description 将单个图层添加到地图上。
  3488. * @param layerInfo 某个图层的图层信息
  3489. * @param {Array.<GeoJSON>} features - feature。
  3490. */},{key:"_addLayer",value:function(e,t,r){var n=e.layerType;e.layerID=n+"-"+e.name+"-"+r,e.visible=e.visible?"visible":"none",// mbgl 目前不能处理 geojson 复杂面情况
  3491. // mbgl isssue https://github.com/mapbox/mapbox-gl-js/issues/7023
  3492. t&&t[0]&&"Polygon"===t[0].geometry.type&&(t=(0,d.handleMultyPolygon)(t)),e.style&&e.filterCondition&&"RANGE"!==n&&"UNIQUE"!==n&&"RANK_SYMBOL"!==n&&(t=this._getFiterFeatures(e.filterCondition,t)),t&&e.projection&&"EPSG:4326"!==e.projection&&this._transformFeatures(t),"VECTOR"===n?"POINT"===e.featureType?"SYMBOL_POINT"===e.style.type?this._createSymbolLayer(e,t):this._createGraphicLayer(e,t):// 线和面
  3493. this._createVectorLayer(e,t):"UNIQUE"===n?this._createUniqueLayer(e,t):"RANGE"===n?this._createRangeLayer(e,t):"HEAT"===n?this._createHeatLayer(e,t):"MARKER"===n?this._createMarkerLayer(e,t):"MIGRATION"===e.layerType?this._createMigrationLayer(e,t):"RANK_SYMBOL"===e.layerType?this._createRankSymbolLayer(e,t):"DATAFLOW_POINT_TRACK"!==e.layerType&&"DATAFLOW_HEAT"!==e.layerType||this._createDataflowLayer(e),e.labelStyle&&e.labelStyle.labelField&&"DATAFLOW_POINT_TRACK"!==e.layerType&&// 存在标签专题图
  3494. this._addLabelLayer(e,t)}},{key:"_createDataflowLayer",value:function(e){var t=new l.default.supermap.DataFlowService(e.wsUrl).initSubscribe();this._handleDataflowFeaturesCallback=this._handleDataflowFeatures.bind(this,e),t.on("messageSucceeded",this._handleDataflowFeaturesCallback),this._dataflowService=t}},{key:"_handleDataflowFeatures",value:function(e,t){var r=t.data&&JSON.parse(t.data);// this._transformFeatures([features]); // TODO 坐标系
  3495. if(this.fire("dataflowfeatureupdated",{features:r,identifyField:e.identifyField,layerID:e.layerID}),e.filterCondition){//过滤条件
  3496. var n="select * from json where ("+this._replaceFilterCharacter(e.filterCondition)+")",a=window.jsonsql.query(n,{attributes:r&&r.properties});a&&a.length>0&&this._addDataflowLayer(e,r)}else this._addDataflowLayer(e,r)}},{key:"_getDataFlowRotateStyle",value:function(e,t,r){var n=["match",["get",r]];return e.forEach((function(e){var a;if((a=void 0!==t&&"\u672a\u8bbe\u7f6e"!==t&&"None"!==t?e.properties[t]:0)>360||a<0)return null;// @ts-ignore
  3497. n.push(e.properties[r],parseInt(a))})),// @ts-ignore
  3498. n.push(0),n}},{key:"_addDataflowLayer",value:function(e,t){var r=e.layerID;if("DATAFLOW_HEAT"===e.layerType)this.map.getSource(r)?this._updateDataFlowFeature(r,t,e):this._createHeatLayer(e,[t]);else{var n=e.pointStyle;if(e.style=n,this.map.getSource(r))this._updateDataFlowFeature(r,t,e,"point");else{var a=this._getDataFlowRotateStyle(t?[t]:[],e.directionField,e.identifyField);["BASIC_POINT","SVG_POINT","IMAGE_POINT"].includes(n.type)?this._createGraphicLayer(e,[t],null,a):this._createSymbolLayer(e,[t],null,a)}if(e.labelStyle&&e.visible&&(this.map.getSource(r+"label")?this._updateDataFlowFeature(r+"label",t,e):this._addLabelLayer(e,[t])),e.lineStyle&&e.visible)if(this.map.getSource(r+"-line"))this._updateDataFlowFeature(r+"-line",t,e,"line");else{var i=t&&t.geometry.coordinates||[],o={type:"Feature",properties:t&&t.properties,geometry:{type:"LineString",coordinates:[i]}};this._createVectorLayer({style:e.lineStyle,featureType:"LINE",visible:"visible",layerID:r+"-line"},[o])}}}},{key:"_updateDataFlowFeature",value:function(e,t,r,n){var a=r.identifyField,i=r.maxPointCount,o=r.directionField,s=(0,w.default)(this.map.getSource(e)._data.features),u=!1;// @ts-ignore
  3499. if(s.map((function(e,r){if(t&&e.properties[a]===t.properties[a])if(u=!0,"line"===n){var o=e.geometry.coordinates;o.push(t.geometry.coordinates),i&&o.length>i&&o.splice(0,o.length-i),s[r].geometry.coordinates=o}else s[r]=t})),u||("line"===n?s.push({type:"Feature",properties:t.properties,geometry:{type:"LineString",coordinates:[t.geometry.coordinates]}}):s.push(t)),// @ts-ignore
  3500. this.map.getSource(e).setData({type:"FeatureCollection",features:s}),"point"===n){var l=r.pointStyle.type,c=this._getDataFlowRotateStyle(s,o,a);["SVG_POINT","IMAGE_POINT"].includes(l)?this.map.setLayoutProperty(e,"icon-rotate",c):"SYMBOL_POINT"===l&&this.map.setLayoutProperty(e,"text-rotate",c)}}},{key:"_getDataflowInfo",value:function(e,t,r){var n,a=e.url,i="".concat(a,".json");e.credential&&e.credential.token&&(n=e.credential.token,i+="?token=".concat(n)),SuperMap.FetchRequest.get(i).then((function(e){return e.json()})).then((function(n){n&&n.featureMetaData?(e.featureType=n.featureMetaData.featureType.toUpperCase(),e.dataSource={dataTypes:{}},n.featureMetaData.fieldInfos&&n.featureMetaData.fieldInfos.length>0&&n.featureMetaData.fieldInfos.forEach((function(t){var r=t.name.trim();"TEXT"===t.type?e.dataSource.dataTypes[r]="STRING":["DOUBLE","INT","FLOAT","LONG","SHORT"].includes(t.type)?e.dataSource.dataTypes[r]="NUMBER":e.dataSource.dataTypes[r]="UNKNOWN"})),e.wsUrl=n.urls[0].url,e.name=n.urls[0].url.split("iserver/services/")[1].split("/dataflow")[0],t())://失败也要到成功会调函数中,否则不会继续执行
  3501. r()})).catch((function(){r()}))}},{key:"_createMigrationLayer",value:function(e,t){window.echarts=y.default;var r=this._getFeatureProperties(t),n=this._createLinesData(e,r),a=this._createPointsData(n,e,r),i=this._createOptions(e,n,a),o=new m.default(this.map);o.chart.setOption(i),this.echartslayer.push(o)}},{key:"_createOptions",value:function(e,t,r){var n,a=this._createLineSeries(e,t);if(r&&r.length){var i=this._createPointSeries(e,r);n=a.concat(i)}else n=a.slice();return{GLMap:{roam:!0},// geo: {
  3502. // map: 'GLMap',
  3503. // label: {
  3504. // emphasis: {
  3505. // show: false
  3506. // }
  3507. // },
  3508. // roam: true,
  3509. // itemStyle: {
  3510. // normal: {
  3511. // areaColor: '#323c48',
  3512. // borderColor: '#404a59'
  3513. // },
  3514. // emphasis: {
  3515. // areaColor: '#2a333d'
  3516. // }
  3517. // }
  3518. // },
  3519. series:n}}},{key:"_createPointSeries",value:function(e,t){var r=e.lineSetting,n=e.animationSetting,a=e.labelSetting,i=[{name:"point-series",coordinateSystem:"GLMap",zlevel:2,label:{normal:{show:a.show,position:"right",formatter:"{b}",color:a.color,fontFamily:a.fontFamily}},itemStyle:{normal:{color:r.color||a.color}},data:t}];return n.show?(// 开启动画
  3520. // @ts-ignore
  3521. i[0].type="effectScatter",// @ts-ignore
  3522. i[0].rippleEffect={brushType:"stroke"}):// 关闭动画
  3523. // @ts-ignore
  3524. i[0].type="scatter",i}},{key:"_createLineSeries",value:function(e,t){var r=e.lineSetting,n=e.animationSetting,a=[// 轨迹线样式
  3525. {name:"line-series",coordinateSystem:"GLMap",type:"lines",zlevel:1,effect:{show:n.show,constantSpeed:n.constantSpeed,trailLength:0,symbol:n.symbol,symbolSize:n.symbolSize},lineStyle:{normal:{color:r.color,type:r.type,width:r.width,opacity:r.opacity,curveness:r.curveness}},data:t}];return t.length>=1e3&&(// @ts-ignore
  3526. a[0].large=!0,// @ts-ignore
  3527. a[0].largeThreshold=100,// @ts-ignore
  3528. a[0].blendMode="lighter"),a}},{key:"_createLinesData",value:function(e,t){var r=[];if(t&&t.length){// 重新获取数据
  3529. var n,a,i=e.from,o=e.to;if("XY_FIELD"===i.type&&i.xField&&i.yField&&o.xField&&o.yField)t.forEach((function(e){var t=e[i.xField],s=e[i.yField],u=e[o.xField],l=e[o.yField];t&&s&&u&&l&&(n=[e[i.xField],e[i.yField]],a=[e[o.xField],e[o.yField]],r.push({coords:[n,a]}))}));else if("PLACE_FIELD"===i.type&&i.field&&o.field){var s=v.default.concat(g.default);t.forEach((function(e){var t=e[i.field],u=e[o.field];n=s.find((function(e){return l.default.supermap.Util.isMatchAdministrativeName(e.name,t)})),a=s.find((function(e){return l.default.supermap.Util.isMatchAdministrativeName(e.name,u)})),n&&a&&r.push({coords:[n.coord,a.coord]})}))}}return r}},{key:"_createPointsData",value:function(e,t,r){var n=[],a=t.labelSetting;// 标签隐藏则直接返回
  3530. if(!a.show||!e.length)return n;var i=[],o=[];return e.forEach((function(e,t){var n=e.coords,s=n[0],u=n[1],l=r[t][a.from],c=r[t][a.to];// 起始字段去重
  3531. !i.find((function(e){return e.value[0]===s[0]&&e.value[1]===s[1]}))&&i.push({name:l,value:s}),!o.find((function(e){return e.value[0]===u[0]&&e.value[1]===u[1]}))&&o.push({name:c,value:u})})),n=i.concat(o)}},{key:"_createRankSymbolLayer",value:function(e,t){var r=e.themeSetting.themeField,n=e.style,a=e.featureType,i=this._createRankStyleSource(e,t,e.featureType).styleGroups;t=this._getFiterFeatures(e.filterCondition,t);// 获取 expression
  3532. var o=["match",["get","index"]];if(t.forEach((function(e){var t=parseFloat(e.properties[r]);if(i)for(var a=0;a<i.length;a++)if(i[a].start<=t&&t<i[a].end){var s="SYMBOL_POINT"===n.type||"IMAGE_POINT"===n.type?"SYMBOL_POINT"===n.type?2*i[a].radius:2*Number.parseFloat((i[a].radius/n.imageInfo.size.h).toFixed(2)):i[a].radius;o.push(e.properties.index,s)}// @ts-ignore
  3533. !t&&o.push(e.properties.index,1)}),this),// @ts-ignore
  3534. o.push(1),"SYMBOL_POINT"===n.type)this._createSymbolLayer(e,t,o);else if("IMAGE_POINT"===n.type)this._createGraphicLayer(e,t,o);else{var s={type:"geojson",data:{type:"FeatureCollection",features:t}},u={layout:{visibility:e.visible}};// 获取样式
  3535. u.style=this._transformStyleToMapBoxGl(n,a,o,"circle-radius");var l=e.layerID;this._addOverlayToMap(a,s,l,u)}}},{key:"_createRankStyleSource",value:function(e,t,r){var n=e.themeSetting.themeField,a=this._getRankStyleGroup(n,t,e,r);// @ts-ignore
  3536. return!!a&&{parameters:e,styleGroups:a}}},{key:"_getRankStyleGroup",value:function(e,t,r,n){// 找出所有的单值
  3537. var a=[],i=[],o=r.style,s=r.themeSetting,u=s.segmentMethod,c=s.segmentCount,d=s.customSettings,f=r.themeSetting.minRadius,h=r.themeSetting.maxRadius;t.forEach((function(t){var r=t.properties[e];// 过滤掉空值和非数值
  3538. null!=r&&l.default.supermap.Util.isNumber(r)&&a.push(Number(r))}));try{i=SuperMap.ArrayStatistic.getArraySegments(a,u,c)}catch(M){console.error(M)}// 处理自定义 分段
  3539. for(var p=0;p<c;p++)if(p in d){var y=d[p].segment.start,m=d[p].segment.end;null!=y&&(i[p]=y),null!=m&&(i[p+1]=m)}//生成styleGroup
  3540. var v=[];if(i&&i.length){for(var// 半径增量
  3541. g,b,w=i.length,S=(h-f)/(w-1),L=Number(((h+f)/2).toFixed(2)),E=0;E<w-1;E++)// 这里特殊处理以下分段值相同的情况(即所有字段值相同)
  3542. L=(g=Number(i[E].toFixed(2)))===(b=Number(i[E+1].toFixed(2)))?L:f+Math.round(S*E),// 最后一个分段时将end+0.01,避免取不到最大值
  3543. b=E===w-2?b+.01:b,// 处理自定义 半径
  3544. L=d[E]&&d[E].radius?d[E].radius:L,o.radius=L,v.push({radius:L,start:g,end:b});return v}return!1}
  3545. /**
  3546. * @private
  3547. * @function WebMapViewModel.prototype._addLabelLayer
  3548. * @description 添加标签图层。
  3549. * @param layerInfo 某个图层的图层信息。
  3550. * @param {Array.<GeoJSON>} features - feature。
  3551. */},{key:"_addLabelLayer",value:function(e,t){var r=e.labelStyle;this.map.addLayer({id:e.layerID+"label",type:"symbol",source:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:{"text-color":r.fill,"text-halo-color":"rgba(255,255,255,0.8)","text-halo-width":parseFloat(r.fontSize)||12},layout:{"text-field":"{".concat(r.labelField,"}"),"text-size":parseFloat(r.fontSize)||12,"text-offset":r.offsetX?[r.offsetX/10||0,r.offsetY/10||0]:[0,-2.5],"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],visibility:e.visible}})}
  3552. /**
  3553. * @private
  3554. * @function WebMapViewModel.prototype._createSymbolLayer
  3555. * @description 添加 symbol 图层。
  3556. * @param layerInfo 某个图层的图层信息。
  3557. * @param {Array.<GeoJSON>} features - feature。
  3558. */},{key:"_createSymbolLayer",value:function(e,t,r,n){document.getElementById("".concat(this.target)).classList.add("supermapol-icons-map");var a=e.style,i=e.style.unicode,o=String.fromCharCode(parseInt(i.replace(/^&#x/,""),16)),s=e.layerID;this.map.addSource(s,{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:s,type:"symbol",source:s,paint:{"text-color":a.fillColor},layout:{"text-field":o,"text-size":r||a.fontSize&&parseFloat(a.fontSize)||12,"text-font":["DIN Offc Pro Italic","Arial Unicode MS Regular"],"text-rotate":n||0,visibility:e.visible}}),// @ts-ignore
  3559. this.map.getSource(s).setData({type:"FeatureCollection",features:t})}
  3560. /**
  3561. * @private
  3562. * @function WebMapViewModel.prototype._createGraphicLayer
  3563. * @description 创建 Graphic 图层。
  3564. * @param {Object} layerInfo - map 信息。
  3565. * @param {Array} features - 属性 信息。
  3566. */},{key:"_createGraphicLayer",value:function(e,t,r,n){var a=this,i=e.style,o=e.layerID,s={type:"geojson",data:{type:"FeatureCollection",features:t}};if("IMAGE_POINT"===i.type){var u=i.imageInfo;this.map.loadImage(u.url,(function(t,u){t&&console.log(t);var l=2*Number.parseFloat((i.radius/u.height).toFixed(2));a.map.addImage("imageIcon",u),a.map.addLayer({id:o,type:"symbol",source:s,layout:{"icon-image":"imageIcon","icon-size":r||l,visibility:e.visible,"icon-rotate":n||0}})}))}else if("SVG_POINT"===i.type){var l=i.url;this._svgDiv||(this._svgDiv=document.createElement("div"),document.body.appendChild(this._svgDiv)),this._getCanvasFromSVG(l,this._svgDiv,(function(t){var u=t.toDataURL("img/png");u&&a.map.loadImage(u,(function(u,l){u&&console.log(u);var c=Number.parseFloat((i.radius/t.width).toFixed(2));a.map.addImage("imageIcon",l),a.map.addLayer({id:o,type:"symbol",source:s,layout:{"icon-image":"imageIcon","icon-size":r||c,visibility:e.visible,"icon-rotate":n||0}})}))}))}else{var c={style:this._transformStyleToMapBoxGl(i,e.featureType),layout:{visibility:e.visible}};this._addOverlayToMap("POINT",s,o,c)}}
  3567. /**
  3568. * @private
  3569. * @function WebMapViewModel.prototype._createUniqueLayer
  3570. * @description 创建单值图层。
  3571. * @param layerInfo 某个图层的图层信息
  3572. * @param features 图层上的 feature
  3573. */},{key:"_createUniqueLayer",value:function(e,t){var r=this._getUniqueStyleGroup(e,t);t=this._getFiterFeatures(e.filterCondition,t);var n=e.style,a=e.themeSetting.themeField;Object.keys(t[0].properties).forEach((function(e){e.toLocaleUpperCase()===a.toLocaleUpperCase()&&(a=e)}));var i=e.featureType,o=["match",["get","index"]],s=e.layerID;t.forEach((function(e){r.forEach((function(t){t.value===e.properties[a]&&o.push(e.properties.index,t.color)}))})),o.push("#ffffff"),// 图例相关
  3574. this._initLegendConfigInfo(e,r);var u=e.visible,l={style:this._transformStyleToMapBoxGl(n,i,o),layout:{visibility:u}},c={type:"geojson",data:{type:"FeatureCollection",features:t}};this._addOverlayToMap(i,c,s,l),"POLYGON"===i&&n.strokeColor&&this._addStrokeLineForPoly(n,c,s+"-strokeLine",u)}
  3575. /**
  3576. * @private
  3577. * @function WebMapViewModel.prototype._getUniqueStyleGroup
  3578. * @description 获取单值的目标字段与颜色的对应数组。
  3579. * @param layerInfo 某个图层的图层信息
  3580. * @param features 图层上的 feature
  3581. */},{key:"_getUniqueStyleGroup",value:function(e,t){// 找出所有的单值
  3582. var r=e.featureType,n=e.style,a=e.themeSetting,i=a.themeField,o=a.colors;Object.keys(t[0].properties).forEach((function(e){e.toLocaleUpperCase()===i.toLocaleUpperCase()&&(i=e)}));var s=[],u=a.customSettings;for(var l in t){var c=t[l].properties[i],d=!1;for(var f in s)if(s[f]===c){d=!0;break}d||s.push(c)}// 获取一定量的颜色
  3583. var h=o;h=SuperMap.ColorsPickerUtil.getGradientColors(h,s.length);// 生成styleGroup
  3584. var p=[];return s.forEach((function(e,t){var a=h[t];e in u&&(a=u[e]),"LINE"===r?n.strokeColor=a:n.fillColor=a,p.push({color:a,value:e})}),this),p}
  3585. /**
  3586. * @private
  3587. * @function WebMapViewModel.prototype._getWMTSUrl
  3588. * @description 根据传入的配置信息拼接wmts url。
  3589. * @param options 配置对象
  3590. */},{key:"_getWMTSUrl",value:function(e){var t={service:"WMTS",request:"GetTile",version:"1.0.0",style:"default",layer:e.layer,tilematrixSet:e.tileMatrixSet,format:"image/png"},r=e.url;return r+=this._getParamString(t,r)+"&tilematrix={z}&tilerow={y}&tilecol={x}"}
  3591. /**
  3592. * @private
  3593. * @function WebMapViewModel.prototype._createMarkerLayer
  3594. * @description 添加标记图层。
  3595. * @param {Array.<GeoJSON>} features - feature。
  3596. */},{key:"_createMarkerLayer",value:function(e,t){var r=this;t&&t.forEach((function(t){var n=t.geometry.type.toUpperCase(),a=t.dv_v5_markerStyle;"POINT"===n&&a.text&&(// 说明是文字的feature类型
  3597. n="TEXT");var i=r._setFeatureInfo(t);t.properties.useStyle=a,t.properties.featureInfo=i,"POINT"===n&&a.src&&-1===a.src.indexOf("http://")&&-1===a.src.indexOf("https://")&&(// 说明地址不完整
  3598. a.src=r.serverUrl+a.src);var o={type:"geojson",data:t},s=t.properties.index,u=n+"-"+s;// point-line-polygon-marker
  3599. if(// image-marker
  3600. "POINT"===n&&a.src&&a.src.indexOf("svg")<=-1&&r.map.loadImage(a.src,(function(t,n){t&&console.log(t),r.map.addImage(s+"",n),r.map.addLayer({id:u,type:"symbol",source:o,layout:{"icon-image":a.src,"icon-size":a.scale,visibility:e.visible}})})),// svg-marker
  3601. "POINT"===n&&a.src&&a.src.indexOf("svg")>-1&&(r._svgDiv||(r._svgDiv=document.createElement("div"),document.body.appendChild(r._svgDiv)),r._getCanvasFromSVG(a.src,r._svgDiv,(function(t){var n=t.toDataURL("img/png");n&&r.map.loadImage(n,(function(t,n){t&&console.log(t),r.map.addImage(s+"",n),r.map.addLayer({id:u,type:"symbol",source:o,layout:{"icon-image":s+"","icon-size":a.scale,visibility:e.visible}}),console.log(r.map.getStyle())}))}))),!a.src){var l={layout:{}};"LINESTRING"===n&&a.lineCap&&(n="LINE",l.layout={"line-cap":a.lineCap});var c=e.visible;l.layout.visibility=c,// get style
  3602. l.style=r._transformStyleToMapBoxGl(a,n),r._addOverlayToMap(n,o,u,l),// 若面有边框
  3603. "POLYGON"===n&&a.strokeColor&&r._addStrokeLineForPoly(a,o,u+"-strokeLine",c)}}),this)}
  3604. /**
  3605. * @private
  3606. * @function WebMapViewModel.prototype._setFeatureInfo
  3607. * @description 设置 feature 信息。
  3608. * @param {Array.<GeoJSON>} features - feature。
  3609. */},{key:"_setFeatureInfo",value:function(e){var t,r=e.dv_v5_markerInfo;if(!r||!r.dataViz_title)// featureInfo = this.getDefaultAttribute();
  3610. return r;// 有featureInfo信息就不需要再添加
  3611. t=r;var n=e.properties;for(var a in t)n[a]&&(t[a]=n[a],delete n[a]);return t}
  3612. /**
  3613. * @private
  3614. * @function WebMapViewModel.prototype._createHeatLayer
  3615. * @description 添加热力图。
  3616. * @param {Array.<GeoJSON>} features - feature。
  3617. */},{key:"_createHeatLayer",value:function(e,t){var r=e.themeSetting,n={gradient:r.colors.slice(),radius:parseInt(r.radius)},a=r.customSettings;for(var i in a)n.gradient[i]=a[i];// 权重字段恢复
  3618. r.weight&&this._changeWeight(t,r.weight);var o=["interpolate",["linear"],["heatmap-density"]],s=n.gradient.length,u=parseFloat((1/s).toFixed(2));n.gradient.forEach((function(e,t){o.push(t*u),0===t&&(e=l.default.supermap.Util.hexToRgba(e,0)),o.push(e)})),// 图例相关
  3619. this._initLegendConfigInfo(e,n.gradient);var c={"heatmap-color":o,"heatmap-radius":r.radius+15,"heatmap-intensity":{base:1,stops:[[0,.8],[22,1]]}};if(t[0].weight&&t.length>=4){var d=[];t.forEach((function(e){d.push(e.weight)}));var f=SuperMap.ArrayStatistic.getMax(d),h=SuperMap.ArrayStatistic.getMin(d);c["heatmap-weight"]=["interpolate",["linear"],["get","weight"],h,0,f,1]}this.map.addLayer({id:e.layerID,type:"heatmap",source:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:c})}
  3620. /**
  3621. * @private
  3622. * @function WebMapViewModel.prototype._changeWeight
  3623. * @description 改变当前权重字段
  3624. * @param {Array.<GeoJSON>} features - feature。
  3625. * @param {String} weightFeild - 权重字段
  3626. */},{key:"_changeWeight",value:function(e,t){this._fieldMaxValue={},this._getMaxValue(e,t);var r=this._fieldMaxValue[t];e.forEach((function(e){var n=e.properties[t];e.weight=n/r}))}
  3627. /**
  3628. * @private
  3629. * @function WebMapViewModel.prototype._getMaxValue
  3630. * @description 获取当前字段对应的最大值,用于计算权重。
  3631. * @param {Array.<GeoJSON>} features - feature。
  3632. * @param {String} weightFeild - 权重字段
  3633. */},{key:"_getMaxValue",value:function(e,t){var r,n=[],a=t;this._fieldMaxValue[a]||(e.forEach((function(e){// 收集当前权重字段对应的所有值
  3634. (r=e.properties)&&parseFloat(r[a])&&n.push(parseFloat(r[a]))})),this._fieldMaxValue[a]=SuperMap.ArrayStatistic.getArrayStatistic(n,"Maximum"))}
  3635. /**
  3636. * @private
  3637. * @function WebMapViewModel.prototype._createRangeLayer
  3638. * @description 添加分段专题图。
  3639. * @param {Array.<GeoJSON>} features - feature。
  3640. */},{key:"_createRangeLayer",value:function(e,t){var r=e.themeSetting.themeField,n=e.style,a=e.featureType,i=this._getRangeStyleGroup(e,t),o={type:"geojson",data:{type:"FeatureCollection",features:t=this._getFiterFeatures(e.filterCondition,t)}},s=["match",["get","index"]];t.forEach((function(e){var t=parseFloat(e.properties[r]);if(i)for(var n=0;n<i.length;n++)i[n].start<=t&&t<i[n].end&&s.push(e.properties.index,i[n].color);!t&&s.push(e.properties.index,"rgba(0, 0, 0, 0)")}),this),s.push("rgba(0, 0, 0, 0)"),// 图例处理
  3641. this._initLegendConfigInfo(e,i);// 获取样式
  3642. var u={layout:{}};"LINE"===a&&n.lineCap&&(u.layout={"line-cap":n.lineCap});var l=e.visible;u.layout.visibility=l,u.style=this._transformStyleToMapBoxGl(n,a,s);// 添加图层
  3643. var c=e.layerID;this._addOverlayToMap(a,o,c,u),// 如果面有边框
  3644. "POLYGON"===a&&n.strokeColor&&this._addStrokeLineForPoly(n,o,c+"-strokeline",l)}
  3645. /**
  3646. * @private
  3647. * @function WebMapViewModel.prototype._getFiterFeatures
  3648. * @description 通过过滤条件查询满足的 feature。
  3649. * @param {String} filterCondition - 过滤条件。
  3650. * @param {array} allFeatures - 图层上的 feature 集合
  3651. */},{key:"_getFiterFeatures",value:function(e,t){if(!e||!t)return t;for(var r="select * from json where ("+this._replaceFilterCharacter(e)+")",n=[],a=0;a<t.length;a++){var i=t[a],o=void 0;try{o=window.jsonsql.query(r,{properties:i.properties})}catch(s){// 必须把要过滤得内容封装成一个对象,主要是处理jsonsql(line : 62)中由于with语句遍历对象造成的问题
  3652. continue}o&&o.length>0&&// afterFilterFeatureIdx.push(i);
  3653. n.push(i)}return n}
  3654. /**
  3655. * @private
  3656. * @function WebMapViewModel.prototype._replaceFilterCharacter
  3657. * @description 获取过滤字符串。
  3658. * @param {String} filterString - 过滤条件。
  3659. */},{key:"_replaceFilterCharacter",value:function(e){return e=e.replace(/=/g,"==").replace(/AND|and/g,"&&").replace(/or|OR/g,"||").replace(/<==/g,"<=").replace(/>==/g,">=")}
  3660. /**
  3661. * @private
  3662. * @function WebMapViewModel.prototype._getRangeStyleGroup
  3663. * @description 获取分段样式。
  3664. * @param {Array.<GeoJSON>} features - feature。
  3665. */},{key:"_getRangeStyleGroup",value:function(e,t){// 找出分段值
  3666. var r,n=e.featureType,a=e.style,i=[],o=e.themeSetting,s=o.customSettings,u=o.themeField,c=o.segmentCount;t.forEach((function(e){(r=e.properties||e.get("Properties"))?// 过滤掉非数值的数据
  3667. r[u]&&l.default.supermap.Util.isNumber(r[u])&&i.push(parseFloat(r[u])):e.get(u)&&l.default.supermap.Util.isNumber(e.get(u))&&e.get(u)&&i.push(parseFloat(e.get(u)))}),this);var d=SuperMap.ArrayStatistic.getArraySegments(i,o.segmentMethod,c);if(d){var f=c;r&&d[0]===d[r.length-1]&&(f=1,d.length=2);// 保留两位有效数
  3668. for(var h=0;h<d.length;h++){var p=d[h];p=0===h?Math.floor(100*p)/100:Math.ceil(100*p)/100+.1,// 加0.1 解决最大值没有样式问题
  3669. d[h]=Number(p.toFixed(2))}// 获取一定量的颜色
  3670. // curentColors = SuperMap.ColorsPickerUtil.getGradientColors(curentColors, itemNum, 'RANGE');
  3671. for(var y=o.colors,m=0;m<f;m++)m in s&&(s[m].segment.start&&(d[m]=s[m].segment.start),s[m].segment.end&&(d[m+1]=s[m].segment.end));// 生成styleGroup
  3672. for(var v=[],g=0;g<f;g++){var b=y[g];g in s&&s[g].color&&(b=s[g].color),"LINE"===n?a.strokeColor=b:a.fillColor=b;var w=d[g],S=d[g+1],L=JSON.parse(JSON.stringify(a));v.push({style:L,color:b,start:w,end:S})}return v}}
  3673. /**
  3674. * @private
  3675. * @function WebMapViewModel.prototype._formatGeoJSON
  3676. * @description 格式 GeoJSON。
  3677. * @param {GeoJSON} data - GeoJSON 数据。
  3678. */},{key:"_formatGeoJSON",value:function(e){var t=e.features;return t.forEach((function(e,t){e.properties.index=t})),t}
  3679. /**
  3680. * @private
  3681. * @function WebMapViewModel.prototype._excelData2Feature将
  3682. * @description csv 和 xls 文件内容转换成 geojson
  3683. * @param content 文件内容
  3684. * @param layerInfo 图层信息
  3685. * @returns {Array} feature的数组集合
  3686. */},{key:"_excelData2Feature",value:function(e){for(var t=e.colTitles,r=-1,n=-1,a=0,i=t.length// 位置属性处理
  3687. ;a<i;a++)(0,f.isXField)(t[a])&&(r=a),(0,f.isYField)(t[a])&&(n=a);// feature 构建后期支持坐标系 4326/3857
  3688. for(var o=[],s=0,u=e.rows.length;s<u;s++){var l=e.rows[s],c=Number(l[r]),d=Number(l[n]),h={};for(var p in e.colTitles){h[e.colTitles[p]]=e.rows[s][p]}h.index=s+"";// 目前csv 只支持处理点,所以先生成点类型的 geojson
  3689. var y={type:"Feature",geometry:{type:"Point",coordinates:[c,d]},properties:h};o.push(y)}return o}
  3690. /**
  3691. * @private
  3692. * @function WebMapViewModel.prototype._sendMapToUser
  3693. * @description 返回最终的 map 对象给用户,供他们操作使用。
  3694. * @param count
  3695. * @param layersLen
  3696. */},{key:"_sendMapToUser",value:function(e,t){if(e===t){for(var r in
  3697. /**
  3698. * @event WebMapViewModel#addlayerssucceeded
  3699. * @description 添加图层成功。
  3700. * @property {mapboxglTypes.Map} map - MapBoxGL Map 对象。
  3701. * @property {Object} mapparams - 地图信息。
  3702. * @property {string} mapParams.title - 地图标题。
  3703. * @property {string} mapParams.description - 地图描述。
  3704. * @property {Array.<Object>} layers - 地图上所有的图层对象。
  3705. */
  3706. this._sourceListModel=new c.default({map:this.map}),this._legendList)this._sourceListModel.addSourceStyle(r,this._legendList[r]);for(var n=this._layers.length-2;n>-1;n--){var a=this._layers[n].layerID,i=this._layers[n+1].layerID;this.map.moveLayer(a,i)}this.fire("addlayerssucceeded",{map:this.map,mapparams:this.mapParams,layers:this._layers})}}
  3707. /**
  3708. * @function WebMapViewModel.prototype._unproject
  3709. * @private
  3710. * @description 墨卡托转经纬度。
  3711. * @param {} point - 待转换的点。
  3712. */},{key:"_unproject",value:function(e){for(var t=180/Math.PI,r=6378137,n=Math.exp(-e[1]/r),a=Math.PI/2-2*Math.atan(n),i=0,o=.1;i<15&&Math.abs(o)>1e-7;i++)1,a+=o=Math.PI/2-2*Math.atan(1*n)-a;return[e[0]*t/r,a*t]}
  3713. /**
  3714. * @function WebMapViewModel.prototype._getParamString
  3715. * @private
  3716. * @param {Object} obj - 待添加的参数。
  3717. * @param {string} existingUrl - 待添加参数的 url。
  3718. * @param {Boolean} [uppercase] - 参数是否转换为大写。
  3719. */},{key:"_getParamString",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[];for(var a in e)n.push((r?a.toUpperCase():a)+"="+e[a]);return(t&&-1!==t.indexOf("?")?"&":"?")+n.join("&")}
  3720. /**
  3721. * @private
  3722. * @function WebMapViewModel.prototype._transformStyleToMapBoxGl
  3723. * @description 根据图层类型将 layerInfo 中的 style 属性格式转换为 mapboxglTypes 中的 style 格式。
  3724. * @param {Object} style - layerInfo中的style属性
  3725. * @param {String} type - 图层类型
  3726. * @param {Array} [expression] - 存储颜色值得表达式
  3727. */},{key:"_transformStyleToMapBoxGl",value:function(e,t,r,n){var a={};"POINT"!==e.type&&"BASIC_POINT"!==e.type&&"POINT"!==t||"LINE"===t?["LINE","LINESTRING","MULTILINESTRING"].includes(t)?a={strokeWidth:"line-width",strokeColor:"line-color",strokeOpacity:"line-opacity"}:["REGION","POLYGON","MULTIPOLYGON"].includes(t)&&(a={fillColor:"fill-color",fillOpacity:"fill-opacity",strokeColor:"fill-outline-color"}):a={fillColor:"circle-color",strokeWidth:"circle-stroke-width",fillOpacity:"circle-opacity",radius:"circle-radius",strokeColor:"circle-stroke-color",strokeOpacity:"circle-stroke-opacity"};var i={};for(var o in e)a[o]&&(i[a[o]]=e[o]);return r&&(n?i[n]=r:i["circle-color"]?i["circle-color"]=r:i["line-color"]?i["line-color"]=r:i["fill-color"]=r),e.lineDash&&"solid"!==e.lineDash&&"LINE"===t&&(i["line-dasharray"]=this._dashStyle(e)),i}
  3728. /**
  3729. * @private
  3730. * @function WebMapViewModel.prototype.._dashStyle
  3731. * @description 符号样式。
  3732. * @param {Object} style - 样式参数。
  3733. * @param {number} widthFactor - 宽度系数。
  3734. */},{key:"_dashStyle",value:function(e){if(!e)return[];// var w = style.strokeWidth * widthFactor;
  3735. var t=e.strokeDashstyle||e.lineDash;switch(t){case"solid":return[];case"dot":return[1,4];case"dash":return[4,4];case"dashdot":return[4,4,1,4];case"longdash":return[8,4];case"longdashdot":return[8,4,1,4];default:return t?SuperMap.Util.isArray(t)?t:(t=SuperMap.String.trim(t).replace(/\s+/g,",")).replace(/\[|\]/gi,"").split(","):[]}}
  3736. /**
  3737. * @private
  3738. * @description 将SVG转换成Canvas
  3739. * @param svgUrl
  3740. * @param divDom
  3741. * @param callBack
  3742. */},{key:"_getCanvasFromSVG",value:function(e,t,r){var n=this,a=document.createElement("canvas");// 一个图层对应一个canvas
  3743. a.id="dataviz-canvas-"+l.default.supermap.Util.newGuid(8),a.style.display="none",t.appendChild(a);var i=window.canvg&&window.canvg.default?window.canvg.default:p.default;try{var o=a.getContext("2d");i.from(o,e,{ignoreMouse:!0,ignoreAnimation:!0,forceRedraw:function(){return!1}}).then((function(e){e.start(),n.canvgsV.push(e),a.width>300||a.height>300||r(a)}))}catch(s){console.log(s)}}},{key:"_stopCanvg",value:function(){this.canvgsV.forEach((function(e){return e.stop()})),this.canvgsV=[]}
  3744. /**
  3745. * @private
  3746. * @function WebMapViewModel.prototype._addOverlayToMap
  3747. * @description 添加基础矢量图层到 MAP
  3748. * @param {Object} style - mabgl style
  3749. * @param {String} type - 图层类型
  3750. */},{key:"_addOverlayToMap",value:function(e,t,r,n){var a={POINT:"circle",LINE:"line",POLYGON:"fill"}[e];"circle"!==a&&"line"!==a&&"fill"!==a||this.map.addLayer({id:r,type:a,source:t,paint:n.style,layout:n.layout||{}})}},{key:"_addBaselayer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:22,a={type:"raster",tiles:e,tileSize:256};this.map.addLayer({id:t,type:"raster",source:a,minzoom:r,maxzoom:n})}
  3751. /**
  3752. * @private
  3753. * @function WebMapViewModel.prototype._addStrokeLineForPoly
  3754. * @description 添加面的边框。
  3755. * @param {Object} style - mabgl style
  3756. */},{key:"_addStrokeLineForPoly",value:function(e,t,r,n){var a={style:this._transformStyleToMapBoxGl(e,"LINE"),layout:{visibility:n}};this._addOverlayToMap("LINE",t,r,a)}
  3757. /**
  3758. * @private
  3759. * @function WebMapViewModel.prototype._parseGeoJsonData2Feature
  3760. * @description 将从restData地址上获取的json转换成feature(从iserver中获取的json转换成feature)
  3761. * @param {object} metaData - json内容
  3762. */},{key:"_parseGeoJsonData2Feature",value:function(e){for(var t=e.allDatas.features,r=[],n=0,a=t.length;n<a;n++){var i=t[n],o=i.geometry.coordinates;"Point"===t[n].geometry.type&&t[n].properties&&(t[n].properties.lon=o[0],t[n].properties.lat=o[1]),i.properties.index=n+"",r.push(i)}return r}
  3763. /**
  3764. * @private
  3765. * @function WebMapViewModel.prototype._getFeatureBySQL
  3766. * @description 通过 sql 方式查询数据。
  3767. */},{key:"_getFeatureBySQL",value:function(e,t,r,n){var a,i;a=new SuperMap.FilterParameter({name:t.join().replace(":","@"),attributeFilter:"SMID > 0"}),i=new SuperMap.GetFeaturesBySQLParameters({queryParameter:a,datasetNames:t,fromIndex:0,toIndex:-1,maxFeatures:-1,returnContent:!0});var o={eventListeners:{processCompleted:function(e){r&&r(e)},processFailed:function(e){n&&n(e)}}};new SuperMap.GetFeaturesBySQLService(e,o).processAsync(i)}
  3768. /**
  3769. * @private
  3770. * @function WebMapViewModel.prototype._queryFeatureBySQL
  3771. * @description 通过 sql 方式查询数据。
  3772. */},{key:"_queryFeatureBySQL",value:function(e,t,r,n,a,i,o,s,u,c){var d=new SuperMap.FilterParameter({name:t,attributeFilter:a});i&&(d.fields=i);var f={queryParams:[d]};c&&(f.queryOption=SuperMap.QueryOption.ATTRIBUTE),s&&(f.startRecord=s),u&&(f.expectCount=u),o&&(f.prjCoordSys={epsgCode:o});var h=new SuperMap.QueryBySQLParameters(f);new l.default.supermap.QueryService(e).queryBySQL(h,(function(e){"processCompleted"===e.type?r(e):n(e)}))}},{key:"_initLegendConfigInfo",value:function(e,t){this._legendList[e.layerID]||(this._legendList[e.layerID]={layerType:e.layerType,featureType:e.featureType,layerId:e.layerID,themeField:"HEAT"===e.layerType?e.themeSetting.weight:e.themeSetting.themeField,styleGroup:t})}},{key:"_getFeatureProperties",value:function(e){var t=[];return e&&e.length&&e.forEach((function(e){var r=e.properties;r&&t.push(r)})),t}},{key:"_addVectorLayer",value:function(e,t,r){var n=this._getDataVectorTileStyle(r),a=this._transformStyleToMapBoxGl(n,r),i=e.url+"/tileFeature.mvt",o=l.default.CRS.get(this.baseProjection).getOrigin();i+="?&returnAttributes=true&width=512&height=512&x={x}&y={y}&scale={scale}&origin={x:".concat(o[0],",y:").concat(o[1],"}"),this.map.addLayer({id:(0,b.default)(t.name+"-"),// @ts-ignore
  3773. type:n.mbglType,source:{type:"vector",tiles:[i]},"source-layer":"".concat(e.datasetName,"@").concat(e.datasourceName),paint:a,layout:{visibility:t.visible?"visible":"none"}})}},{key:"_isMvt",value:function(e,t){var r=this;return this._getDatasetsInfo(e,t).then((function(e){//判断是否和底图坐标系一直
  3774. return e.epsgCode==r.baseProjection.split("EPSG:")[1]?SuperMap.FetchRequest.get("".concat(e.url,"/tilefeature.mvt")).then((function(e){return e.json()})).then((function(t){return e.isMvt=t.error&&400===t.error.code,e})).catch((function(){return e})):e}))}},{key:"_getDatasetsInfo",value:function(e,t){return this._getDatasources(e).then((function(r){//判断mvt服务是否可用
  3775. var n="".concat(e,"/data/datasources/").concat(r,"/datasets/").concat(t);return SuperMap.FetchRequest.get(n).then((function(e){return e.json()})).then((function(e){return{epsgCode:e.datasetInfo.prjCoordSys.epsgCode,bounds:e.datasetInfo.bounds,datasourceName:r,datasetName:t,url:n}}))}))}},{key:"_getDataVectorTileStyle",value:function(e){var t={radius:8,//圆点半径
  3776. fillColor:"#EE4D5A",//填充色
  3777. fillOpacity:.9,strokeColor:"#ffffff",//边框颜色
  3778. strokeWidth:1,strokeOpacity:1,lineDash:"solid",type:"BASIC_POINT",mbglType:"circle"};return["LINE","LINESTRING","MULTILINESTRING"].includes(e)?(t.strokeColor="#4CC8A3",t.strokeWidth=2,t.mbglType="line"):["REGION","POLYGON","MULTIPOLYGON"].includes(e)&&(t.fillColor="#826DBA",t.mbglType="fill"),t}},{key:"_transformFeatures",value:function(e){var t=this;e&&e.forEach((function(r,n){var a=r.geometry.type,i=r.geometry.coordinates;"LineString"===a?i.forEach((function(e,r){e=t._unproject(e),i[r]=e}),t):"Point"===a?(i=t._unproject(i),r.geometry.coordinates=i):"MultiPolygon"!==a&&"Polygon"!==a||i.forEach((function(e,r){var n="MultiPolygon"===a?e[0]:e;n.forEach((function(e,r){e=t._unproject(e),n[r]=e})),i[r]=e})),e[n]=r}),this)}}]),r}(l.default.Evented);t.default=M},
  3779. /***/4831:
  3780. /***/function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MAP_EVENT_NAMES=void 0;t.MAP_EVENT_NAMES=["onResize","onWebglcontextlost","onWebglcontextrestored","onRemove","onMovestart","onContextmenu","onDblclick","onClick","onTouchcancel","onTouchmove","onTouchend","onTouchstart","onDataloading","onMousemove","onMouseup","onMousedown","onSourcedataloading","onError","onData","onStyledata","onSourcedata","onMouseout","onStyledataloading","onMoveend","onMove","onRender","onZoom","onZoomstart","onZoomend","onBoxzoomstart","onBoxzoomcancel","onBoxzoomend","onRotate","onRotatestart","onRotateend","onDragend","onDrag","onDragstart","onPitch","onIdle"]},
  3781. /***/5558:
  3782. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=n(r(3899)),d=n(r(9635)),f=n(r(7006)),h=(0,l.default)(d.default,f.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"loaded",value:function(e){var t=this.props,r=t.type,n=t.source,a=t.layerId,i=t.minzoom,o=t.maxzoom,s=t.filter,u=t.layout,l=t.paint,c=t.metadata;if(e.getLayer(a))console.error('There is already a layer with the id "'.concat(a,'"'));else if("string"!==typeof n||e.getSource(n))if("background"===r||n){var d={id:a,type:r};n&&(d.source=n),void 0!==i&&(d.minzoom=i),void 0!==o&&(d.maxzoom=o),s&&(d.filter=s),u&&(d.layout=u),l&&(d.paint=l),c&&(d.metadata=c),this.props["source-layer"]&&(d["source-layer"]=this.props["source-layer"]),e.addLayer(d)}else console.error("Source is required unless type is background");else console.error('Source "'.concat(n,'" is not loaded'))}},{key:"removed",value:function(){}},{key:"render",value:function(){return null}}]),r}(c.default.Component))||a;t.default=h},
  3783. /***/1193:
  3784. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=r(3899),d=n(r(2307)),f=n(r(9635)),h=n(r(3843)),p=n(r(7278)),y=n(r(2017)),m=n(r(6130)),v=n(r(970)),g=n(r(9041)),b=n(r(6889)),w=(0,f.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidMount",value:function(){this._markersElement=[]}},{key:"componentDidUpdate",value:function(e){this.viewModel&&!(0,d.default)(e.features,this.props.features)&&(this._markersElement=[],this._getMarkerElement(),this.props.features&&this.viewModel.setFeatures(this.props.features,this._markersElement)),this.viewModel&&!(0,d.default)(e.type,this.props.type)&&(this._markersElement=[],this._getMarkerElement(),this.viewModel.setType(this._markersElement)),this.viewModel&&this.props.width&&e.width!==this.props.width&&this.marker&&this.marker.setMarkersWidth(this.props.width),this.viewModel&&this.props.height&&e.height!==this.props.height&&this.marker&&this.marker.setMarkersHeight&&this.marker.setMarkersHeight(this.props.height),this.viewModel&&this.props.textColor&&e.textColor!==this.props.textColor&&this.marker&&this.marker.setMarkersTextColor(this.props.textColor),this.viewModel&&this.props.textFontSize&&e.textFontSize!==this.props.textFontSize&&this.marker&&this.marker.setMarkersTextFontSize(this.props.textFontSize),this.viewModel&&this.props.colors&&this.props.colors.length&&this.props.colors.length>0&&!(0,d.default)(e.colors,this.props.colors)&&this.marker&&this.marker.setMarkersColors(this.props.colors),this.viewModel&&this.props.textField&&e.textField!==this.props.textField&&this.marker&&this.marker.setMarkersTextField(this.props.textField)}},{key:"componentWillUnmount",value:function(){this.viewModel&&this.viewModel.clearMarkerLayer()}},{key:"loaded",value:function(e){this.props.features&&this._getMarkerElement(),this.viewModel=new h.default(e,this.props.features,this._markersElement,this.props.fitBounds)}},{key:"_getMarkerElement",value:function(){this.setState({marker:null});var e=this.props,t=e.features,r=e.width,n=e.height,a=e.colors,i=e.textFontSize,o=e.textColor,s=e.textField,u=e.type;if(t&&"{}"!==JSON.stringify(t)&&t.features){switch(u){case"rotatingAperture":this.marker=new v.default(t,{width:r,colors:a,textField:s,textColor:o,textFontSize:i});break;case"haloRing":this.marker=new m.default(t,{width:r,colors:a,textField:s,textColor:o,textFontSize:i});break;case"breathingAperture":this.marker=new p.default(t,{width:r,colors:a,textField:s,textColor:o,textFontSize:i});break;case"diffusedAperture":this.marker=new y.default(t,{width:r,colors:a,textField:s,textColor:o,textFontSize:i});break;case"rotatingTextBorder":this.marker=new g.default(t,{width:r,height:n,colors:a,textField:s,textColor:o,textFontSize:i});break;case"fluorescence":this.marker=new b.default(t,{width:r,colors:a,textField:s,textColor:o,textFontSize:i})}this.marker&&(this._markersElement=this.marker.getMarkersElement())}else this.viewModel&&this.viewModel.clearMarkerLayer()}},{key:"render",value:function(){return null}}]),r}(c.Component),i.defaultProps={type:"breathingAperture",textFontSize:14},a=i))||a;t.default=w},
  3785. /***/3843:
  3786. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375)),l=n(r(3880)),c=n(r(9705)),d=n(r(5748)),f=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n,i){var o,s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if((0,a.default)(this,r),o=t.call(this),!e)throw new Error("map is requierd");return o.map=e,o.features=n,o.markers=[],o.markersElement=i,o.fitBounds=s,o.features&&o._initalizeMarkerLayer(),o}return(0,i.default)(r,[{key:"setType",value:function(e){this.markersElement=e,this._initalizeMarkerLayer()}},{key:"setFeatures",value:function(e,t){this.markersElement=t,this.features=e,this._initalizeMarkerLayer()}},{key:"_initalizeMarkerLayer",value:function(){this.features&&"{}"!==JSON.stringify(this.features)&&(this.clearMarkerLayer(),this._createMarker())}},{key:"_createMarker",value:function(){var e=this;if(this.features.features.forEach((function(t,r){var n=new u.default.Marker(e.markersElement[r]||e.markersElement[0]).setLngLat(t.geometry.coordinates).addTo(e.map);e.markers.push(n)}),this),this.fitBounds){// @ts-ignore
  3787. var t=(0,c.default)((0,d.default)((0,l.default)(this.features),1.7));this.fitBounds&&this.map.fitBounds([[t[0],t[1]],[t[2],t[3]]],{maxZoom:17})}}},{key:"clearMarkerLayer",value:function(){this.markers.length>0&&this.markers.forEach((function(e){e&&e.remove()})),this.markers=[]}}]),r}(u.default.Evented);t.default=f},
  3788. /***/7278:
  3789. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e,i)).features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){this.options.width=e;for(var t=document.getElementsByClassName("sm-component-animate-marker__pulse"),r=0;r<t.length;r++)// @ts-ignore
  3790. this._setBreathingApertureWidth(t[r].style)}},{key:"setMarkersColors",value:function(e){if(this.options.colors=e,e&&e.length&&e.length>0){for(var t=document.getElementsByClassName("sm-component-animate-marker__dot-point"),r=0;r<t.length;r++)// @ts-ignore
  3791. t[r].style.background=this.options.colors[0];for(var n=document.getElementsByClassName("sm-component-animate-marker__pulse"),a=0;a<n.length;a++){// @ts-ignore
  3792. var i=n[a].style;i.borderColor=this.options.colors[0],i.boxShadow="0 0 12px ".concat(this.options.colors[1],", 0 0 20px ").concat(this.options.colors[1]," inset")}}}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=document.createElement("div");r.className="sm-component-animate-marker--breathing-aperture";var n,a=document.createElement("span");a.className="sm-component-animate-marker__dot-point",e.options.colors&&e.options.colors.length&&e.options.colors.length>0&&(n=e.options.colors),n&&(a.style.background=n[0]),r.appendChild(a),e._createMakerElement(3,"span",["sm-component-animate-marker__delay","sm-component-animate-marker__pulse"]).forEach((function(t){n&&(t.style.borderColor=n[0],t.style.boxShadow="0 0 12px ".concat(n[1],", 0 0 20px ").concat(n[1]," inset")),e._setBreathingApertureWidth(t.style),r.appendChild(t)}));var i=e._getTextContainer(t,"breathing-aperture-name");r.appendChild(i),e.markersElement.push(r)}),this)}},{key:"_setBreathingApertureWidth",value:function(e){var t=this.options.width;t&&(e.width=t+"px",e.height=t+"px",e.top=-t/2+"px",e.left=-t/2+"px",e.borderRadius=t/2+"px")}},{key:"_createMakerElement",value:function(e,t,r){for(var n=[],a=1;a<e+1;a++){var i=document.createElement(t);i.className="".concat(r[0],"-0").concat(a," ").concat(r[1]),n.push(i)}return n}}]),r}(n(r(9853)).default);t.default=u},
  3793. /***/2017:
  3794. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e,i)).features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){this.options.width=e;for(var t=document.getElementsByClassName("sm-component-animate-marker--diffused-aperture"),r=0;r<t.length;r++){t[r].style.setProperty("--container-width",e+"px")}}},{key:"setMarkersColors",value:function(e){if(this.options.colors=e,e&&e.length&&e.length>0)for(var t=document.getElementsByClassName("sm-component-animate-marker--diffused-aperture"),r=0;r<t.length;r++){// @ts-ignore
  3795. var n=t[r].style;n.setProperty("--background-color",this.options.colors[0]),n.setProperty("--box-shadow-color",this.options.colors[1]||this.options.colors[0])}}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=document.createElement("div");r.className="sm-component-animate-marker--diffused-aperture";var n=document.createElement("div");n.className="sm-component-animate-marker__diffused-aperture-wrapper";var a=document.createElement("div");a.className="sm-component-animate-marker__bg",n.appendChild(a);var i=document.createElement("div");i.className="sm-component-animate-marker__circle",n.appendChild(i),r.appendChild(n);var o=e._getTextContainer(t,"diffused-aperture-name");r.appendChild(o),e.options.width&&r.style.setProperty("--container-width",e.options.width+"px"),e.options.colors&&e.options.colors.length&&e.options.colors.length>0&&(r.style.setProperty("--background-color",e.options.colors[0]),r.style.setProperty("--box-shadow-color",e.options.colors[1]||e.options.colors[0])),e.markersElement.push(r)}),this)}}]),r}(n(r(9853)).default);t.default=u},
  3796. /***/6889:
  3797. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e,i)).features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){this.options.width=e;for(var t=document.getElementsByClassName("sm-component-animate-marker--fluorescence"),r=0;r<t.length;r++)// @ts-ignore
  3798. this._setFluorescenceWidth(t[r].style)}},{key:"setMarkersColors",value:function(e){if(this.options.colors=e,e&&e.length&&e.length>0)for(var t=document.getElementsByClassName("sm-component-animate-marker--fluorescence"),r=0;r<t.length;r++)// @ts-ignore
  3799. this._setFluorescenceColor(t[r].style)}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=document.createElement("div");r.className="sm-component-animate-marker--fluorescence";var n=document.createElement("div");n.className="sm-component-animate-marker__fluorescence",r.appendChild(n);var a=e._getTextContainer(t,"fluorescence-name");r.appendChild(a),e._setFluorescenceWidth(r.style),e._setFluorescenceColor(r.style),e.markersElement.push(r)}))}},{key:"_setFluorescenceWidth",value:function(e){this.options.width&&(e.setProperty("--container-width",this.options.width/3+"px"),e.setProperty("--box-shadow-width",this.options.width+"px"))}},{key:"_setFluorescenceColor",value:function(e){this.options.colors&&this.options.colors.length>0&&(e.setProperty("--box-shadow-color",this.options.colors[0]),e.setProperty("--light-color",this.options.colors[1]))}}]),r}(n(r(9853)).default);t.default=u},
  3800. /***/6130:
  3801. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(9458)),l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e,i)).features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){this.options.width=e;for(var t=document.getElementsByClassName("sm-component-animate-marker--halo-ring"),r=0;r<t.length;r++){// @ts-ignore
  3802. var n=t[r].style;n.setProperty("--halo-width",this.options.width+"px"),n.setProperty("--halo-left",-this.options.width/2+"px"),n.setProperty("--box-shadow-width-1",this.options.width/10+"px"),n.setProperty("--box-shadow-width-2",this.options.width/4+"px")}}},{key:"setMarkersColors",value:function(e){if(this.options.colors=e,e&&e.length&&e.length>0)for(var t=document.getElementsByClassName("sm-component-animate-marker--halo-ring"),r=0;r<t.length;r++){// @ts-ignore
  3803. var n=t[r].style;n.setProperty("--color-1",this._getColorWithOpacity(this.options.colors[0],.3)),n.setProperty("--color-1-transparent",this._getColorWithOpacity(this.options.colors[0],.1)),n.setProperty("--color-2",this._getColorWithOpacity(this.options.colors[1],.3)),n.setProperty("--color-2-transparent",this._getColorWithOpacity(this.options.colors[1],.1))}}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=document.createElement("div");r.className="sm-component-animate-marker--halo-ring",e._createMakerElement(8,"div",["sm-component-animate-marker__ring","sm-component-animate-marker__halo"]).forEach((function(e){r.appendChild(e)}));var n=e._getTextContainer(t,"halo-ring-name");r.appendChild(n),e.options.width&&(r.style.setProperty("--halo-width",e.options.width+"px"),r.style.setProperty("--halo-left",-e.options.width/2+"px"),r.style.setProperty("--box-shadow-width-1",e.options.width/10+"px"),r.style.setProperty("--box-shadow-width-2",e.options.width/4+"px")),e.options.colors&&e.options.colors.length&&e.options.colors.length>0&&(r.style.setProperty("--color-1",e._getColorWithOpacity((0,u.default)(e.options.colors[0],"rgba",!0),.3)),r.style.setProperty("--color-1-transparent",e._getColorWithOpacity((0,u.default)(e.options.colors[0],"rgba",!0),.1)),r.style.setProperty("--color-2",e._getColorWithOpacity((0,u.default)(e.options.colors[1],"rgba",!0),.3)),r.style.setProperty("--color-2-transparent",e._getColorWithOpacity((0,u.default)(e.options.colors[1],"rgba",!0),.1))),e.markersElement.push(r)}),this)}},{key:"_createMakerElement",value:function(e,t,r){for(var n=[],a=1;a<e+1;a++){var i=document.createElement(t);i.className="".concat(r[0],"-0").concat(a," ").concat(r[1]),n.push(i)}return n}}]),r}(n(r(9853)).default);t.default=l},
  3804. /***/9853:
  3805. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=r(9752),s=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,a.default)(this,e),this.markersElement=[],this.features=t,this.options=r}return(0,i.default)(e,[{key:"setFeatures",value:function(e){this.markersElement=[],this.features=e,this.features&&this._createMarker()}},{key:"getMarkersElement",value:function(){return this.markersElement}},{key:"setMarkersTextField",value:function(e){if(this.features&&"{}"!==JSON.stringify(this.features)){this.options.textField=e;for(var t=document.getElementsByClassName("sm-component-animate-marker__name"),r=0;r<t.length;r++){var n=this.features.features[r]&&this.features.features[r].properties;n&&n[e]?t[r].innerHTML=n[e]:t[r].innerHTML=""}}}},{key:"setMarkersTextFontSize",value:function(e){this.options.textFontSize=e;for(var t=document.getElementsByClassName("sm-component-animate-marker__name-container"),r=0;r<t.length;r++)// @ts-ignore
  3806. t[r].style.fontSize=e+"px"}},{key:"setMarkersTextColor",value:function(e){this.options.textColor=e;for(var t=document.getElementsByClassName("sm-component-animate-marker__name-container"),r=0;r<t.length;r++)// @ts-ignore
  3807. t[r].style.color=e}},{key:"_getColorWithOpacity",value:function(e,t){return(0,o.getColorWithOpacity)(e,t)}},{key:"_getTextContainer",value:function(e,t){var r;e.properties&&0!==Object.keys(e.properties).length&&this.options.textField&&(r=e.properties[this.options.textField]);var n=document.createElement("div");n.className="sm-component-animate-marker__name-container sm-component-animate-marker__name-container--".concat(t),this.options.textColor&&(n.style.color=this.options.textColor),this.options.textFontSize&&(n.style.fontSize=this.options.textFontSize+"px");var a=document.createElement("span");return a.className="sm-component-animate-marker__".concat(t," sm-component-animate-marker__name"),a.innerHTML=r||"",n.appendChild(a),n}}]),e}();t.default=s},
  3808. /***/970:
  3809. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e,i)).features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){// TODO 待抛出 width 不能小于 40
  3810. if(this.options.width=e,this.options.width&&!(this.options.width<40))for(var t=document.getElementsByClassName("sm-component-animate-marker--rotating-aperture"),r=0;r<t.length;r++){// @ts-ignore
  3811. t[r].style.setProperty("--container-width","".concat(this.options.width,"px"));var n=t[r].children[0],a=t[r].children[1],i=t[r].children[2];n.setAttribute("style",this._getDotsStyleObj(this.options.width-32)),a.setAttribute("style",this._getDotsStyleObj(this.options.width-16)),i.setAttribute("style",this._getDotsStyleObj(this.options.width))}}},{key:"setMarkersColors",value:function(e){if(this.options.colors=e,e&&e.length&&e.length>0)for(var t=document.getElementsByClassName("sm-component-animate-marker--rotating-aperture"),r=0;r<t.length;r++){// @ts-ignore
  3812. var n=t[r].style;n.setProperty("--light-color",this.options.colors[1]),n.setProperty("--color",this.options.colors[0]),n.setProperty("--line-color",this._getColorWithOpacity(this.options.colors[0],.2))}}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=e.options.width&&e.options.width>=40?e.options.width:50,n=document.createElement("div");n.className="sm-component-animate-marker--rotating-aperture",e._createMakerElement(3,"div",["sm-component-animate-marker__dots","sm-component-animate-marker__dots"]).forEach((function(t,a){var i;0===a&&(i=r-32),1===a&&(i=r-16),2===a&&(i=r),t.setAttribute("style",e._getDotsStyleObj(i)),n.appendChild(t)}));var a=e._getTextContainer(t,"rotating-aperture-name");n.appendChild(a),e.options.colors&&e.options.colors.length&&e.options.colors.length>0&&e.options.colors[0].indexOf("rgb")>-1&&(n.style.setProperty("--color",e.options.colors[0]),n.style.setProperty("--line-color",e._getColorWithOpacity(e.options.colors[0],.2)),n.style.setProperty("--light-color",e.options.colors[1])),n.style.setProperty("--container-width",r+"px"),e.markersElement.push(n)}),this)}},{key:"_createMakerElement",value:function(e,t,r){for(var n=[],a=1;a<e+1;a++){var i=document.createElement(t);i.className="".concat(r[0],"-0").concat(a," ").concat(r[1]),n.push(i)}return n}},{key:"_getDotsStyleObj",value:function(e){return"--dots-width: ".concat(e,"px;\n --dots-height: ").concat(e,"px;\n --dots-box-shadow-x: ").concat(e/2+6,"px;\n --dots-box-shadow-x-negative: -").concat(e/2+6,"px;\n --dots-box-shadow-radius1: ").concat(e/2-2,"px;\n --dots-box-shadow-radius1-negative: -").concat(e/2-2,"px;\n --dots-box-shadow-radius2: ").concat(e/2-3,"px;\n --dots-box-shadow-radius2-negative: -").concat(e/2-3,"px;")}}]),r}(n(r(9853)).default);t.default=u},
  3813. /***/9041:
  3814. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,a.default)(this,r),(n=t.call(this,e)).options=i,n.features&&n._createMarker(),n}return(0,i.default)(r,[{key:"setMarkersWidth",value:function(e){this.options.width=e,this._setMarkerContainerProperty({"--clip-width-1":e+e/10+"px","--clip-width-2":e+e/10-2+"px","--boder-width":e+"px","--text-left-position":-e/2+"px"})}},{key:"setMarkersHeight",value:function(e){this.options.height=e,this._setMarkerContainerProperty({"--clip-height-1":e+e/10+"px","--clip-height-2":e+e/10-2+"px","--boder-height":e+"px"})}},{key:"setMarkersTextField",value:function(e){if(this.features&&"{}"!==JSON.stringify(this.features)){this.options.textField=e;for(var t=document.getElementsByClassName("sm-component-animate-marker__text"),r=0;r<t.length;r++){var n=this.features.features[r]&&this.features.features[r].properties;n&&n[e]?t[r].innerHTML=n[e]:t[r].innerHTML=""}}}},{key:"setMarkersTextColor",value:function(e){this.options.textColor=e,this._setMarkerContainerProperty({"--text-color":e})}},{key:"setMarkersTextFontSize",value:function(e){this.options.textFontSize=e,this._setMarkerContainerProperty({"--text-font-size":e+"px"})}},{key:"setMarkersColors",value:function(e){this.options.colors=e,e&&e.length&&e.length>0&&this._setMarkerContainerProperty({"--border-color":e[0],"--box-shadow-color":e[1]})}},{key:"_createMarker",value:function(){var e=this;this.features.features.forEach((function(t){var r=document.createElement("div");r.className="sm-component-animate-marker--text-boder";var n=document.createElement("div");n.className="sm-component-animate-marker__boder";var a,i=Object.keys(t.properties);(t.properties||0!==Object.keys(t.properties).length)&&(a=t.properties[e.options.textField]||t.properties[i[0]]);var o=document.createElement("span");o.className="sm-component-animate-marker__text",o.innerHTML=a||"",n.appendChild(o),e.options.colors&&e.options.colors.length&&e.options.colors.length>0&&(r.style.setProperty("--border-color",e.options.colors[0]),r.style.setProperty("--box-shadow-color",e.options.colors[1])),e.options.textColor&&r.style.setProperty("--text-color",e.options.textColor),e.options.textFontSize&&r.style.setProperty("--text-font-size",e.options.textFontSize+"px"),e.options.width&&(r.style.setProperty("--clip-width-1",e.options.width+e.options.width/10+"px"),r.style.setProperty("--clip-width-2",e.options.width+e.options.width/10-2+"px"),r.style.setProperty("--boder-width",e.options.width+"px"),r.style.setProperty("--text-left-position",-e.options.width/2+"px")),e.options.height&&(r.style.setProperty("--clip-height-1",e.options.height+e.options.width/10+"px"),r.style.setProperty("--clip-height-2",e.options.height+e.options.width/10-2+"px"),r.style.setProperty("--boder-height",e.options.height+"px")),(e.options.width||100)>(e.options.width||200)?r.style.setProperty("--animation-name","clipMe2"):r.style.setProperty("--animation-name","clipMe1"),r.appendChild(n),e.markersElement.push(r)}),this)}},{key:"_setMarkerContainerProperty",value:function(e){for(var t=this,r=document.getElementsByClassName("sm-component-animate-marker--text-boder"),n=function(){// @ts-ignore
  3815. var n=r[a].style;Object.keys(e).forEach((function(t){n.setProperty(t,e[t])})),(t.options.height||100)>(t.options.width||200)?n.setProperty("--animation-name","clipMe2"):n.setProperty("--animation-name","clipMe1")},a=0;a<r.length;a++)n()}}]),r}(n(r(9853)).default);t.default=u},
  3816. /***/9407:
  3817. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(8683)),s=n(r(5671)),u=n(r(3144)),l=n(r(9340)),c=n(r(8557)),d=n(r(8808)),f=r(3899),h=n(r(7727)),p=n(r(1558)),y=n(r(2307)),m=n(r(9635)),v=n(r(7006)),g=(0,d.default)(m.default,v.default)((i=function(e){(0,l.default)(r,e);var t=(0,c.default)(r);function r(){return(0,s.default)(this,r),t.apply(this,arguments)}return(0,u.default)(r,[{key:"componentDidUpdate",value:function(e){var t=this.props,r=t.data,n=t.clusteredPointStyle,a=t.unclusteredPointStyle,i=t.clusteredPointTextLayout;(0,y.default)(r,e.data)||this.viewModel&&this.viewModel.setData(r),e.clusteredPointStyle!==n&&this.viewModel&&this.viewModel.setClusteredPointStyle(n),e.unclusteredPointStyle!==a&&this.viewModel&&this.viewModel.setUnclusteredPointStyle(a),e.clusteredPointTextLayout!==i&&this.viewModel&&this.viewModel.setClusteredPointTextLayout(i)}},{key:"loaded",value:function(e){var t=JSON.parse(JSON.stringify(this.props));delete t.data,this.viewModel=new h.default(e,this.props.data,(0,o.default)({},t))}},{key:"render",value:function(){return null}}]),r}(f.Component),i.defaultProps={radius:50,maxZoom:14,clusteredPointStyle:new p.default({"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}),unclusteredPointStyle:new p.default({"circle-color":"#11b4da","circle-radius":4,"circle-stroke-width":1,"circle-stroke-color":"#fff"})},a=i))||a,b=g;t.default=b},
  3818. /***/7727:
  3819. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,a.default)(this,r),(i=t.call(this)).options=o,!e)throw new Error("map is requierd");return i.map=e,i.data=n,i.layerId=o.layerId||"clusterLayer"+(new Date).getTime(),i.data&&i._initializeClusterLayer(),i}return(0,i.default)(r,[{key:"setData",value:function(e){e&&(this.data=e,this.layerId&&!this.map.getSource(this.layerId)?this._initializeClusterLayer():this.map.getSource(this.layerId).setData(e))}},{key:"setClusteredPointStyle",value:function(e){!e||this.layerId&&!this.map.getSource(this.layerId)||(this.options.clusteredPointStyle=e,this._setPaintProperty(e.paint,this.layerId),this._setLayoutProperty(e.layout,this.layerId))}},{key:"setUnclusteredPointStyle",value:function(e){var t="unclustered_point"+this.layerId;e&&this.map.getSource(t)&&(this.options.unclusteredPointStyle=e,this._setPaintProperty(e.paint,t),this._setLayoutProperty(e.layout,t))}},{key:"setClusteredPointTextLayout",value:function(e){var t="count_"+this.layerId;e&&this.map.getSource(t)&&(this.options.clusteredPointTextLayout=e,this._setLayoutProperty(e,t))}},{key:"_setPaintProperty",value:function(e,t){var r=this;Object.keys(e).forEach((function(n){r.map.setPaintProperty(t,n,e[n])}))}},{key:"_setLayoutProperty",value:function(e,t){var r=this;Object.keys(e).forEach((function(n){r.map.setLayoutProperty(t,n,e[n])}))}},{key:"_initializeClusterLayer",value:function(){var e=this;this.map.addSource(this.layerId,{type:"geojson",data:this.data,cluster:!0,clusterMaxZoom:this.options.maxZoom||14,clusterRadius:this.options.radius||50}),this.map.addLayer({id:this.layerId,type:"circle",source:this.layerId,filter:["has","point_count"],paint:this.options.clusteredPointStyle&&this.options.clusteredPointStyle.paint||{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}}),// 聚合点文本 layer
  3820. this.map.addLayer({id:"count_"+this.layerId,type:"symbol",source:this.layerId,filter:["has","point_count"],layout:this.options.clusteredPointTextLayout||{"text-field":"{point_count_abbreviated}","text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12}}),// 未聚合点 layer
  3821. this.map.addLayer({id:"unclustered_point"+this.layerId,type:"circle",source:this.layerId,filter:["!",["has","point_count"]],paint:this.options.unclusteredPointStyle&&this.options.unclusteredPointStyle.paint||{"circle-color":"#11b4da","circle-radius":4,"circle-stroke-width":1,"circle-stroke-color":"#fff"}}),
  3822. /**
  3823. * @event addcusterlayersucceeded
  3824. * @description 添加点聚合图层成功后触发。
  3825. * @property {Object} map - mapboxgl map 对象。
  3826. */
  3827. this.fire("addcusterlayersucceeded",{map:this.map}),this.map.on("click",this.layerId,(function(t){var r=e.map.queryRenderedFeatures(t.point,{layers:[e.layerId]}),n=r[0].properties.cluster_id;e.map.getSource(e.layerId).getClusterExpansionZoom(n,(function(t,n){t||e.map.easeTo({center:r[0].geometry.coordinates,zoom:n})}))})),this.map.on("mouseenter",this.layerId,(function(){e.map.getCanvas().style.cursor="pointer"})),this.map.on("mouseleave",this.layerId,(function(){e.map.getCanvas().style.cursor=""}))}}]),r}(n(r(375)).default.Evented);t.default=u},
  3828. /***/2313:
  3829. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(8683)),s=n(r(5671)),u=n(r(3144)),l=n(r(9340)),c=n(r(8557)),d=n(r(8808)),f=n(r(3899)),h=n(r(9635)),p=n(r(7006)),y=n(r(9162)),m=r(2009),v=r(9752),g=(0,d.default)(h.default,p.default)((i=function(e){(0,l.default)(r,e);var t=(0,c.default)(r);function r(){return(0,s.default)(this,r),t.apply(this,arguments)}return(0,u.default)(r,[{key:"loaded",value:function(e){var t=JSON.parse(JSON.stringify(this.props));delete t.serviceUrl,this.viewModel=new y.default(e,this.props.serviceUrl,(0,o.default)({},t)),this.registerEvents()}},{key:"registerEvents",value:function(){var e=this;// @ts-ignore
  3830. this.viewModel.on("subscribefailed",(function(t){// this.$message.error(this.$t('dataFlow.dataSubscriptionFailed'));
  3831. /**
  3832. * @event subscribeFailed
  3833. * @desc 数据订阅失败后触发。
  3834. * @property {Object} e - 事件对象。
  3835. */
  3836. (0,v.isFunction)(e.props.onSubscribeFailed)&&e.props.onSubscribeFailed(t)})),// @ts-ignore
  3837. this.viewModel.on("subscribesucceeded",(function(t){
  3838. /**
  3839. * @event subscribeSucceeded
  3840. * @desc 数据订阅失败后触发。
  3841. * @property {Object} e - 事件对象。
  3842. */
  3843. (0,v.isFunction)(e.props.onSubscribeSucceeded)&&e.props.onSubscribeSucceeded(t)})),// @ts-ignore
  3844. this.viewModel.on("dataupdated",(function(t){
  3845. /**
  3846. * @event dataUpdated
  3847. * @desc 数据更新成功后触发。
  3848. * @property {GeoJSONObject} data - 更新的数据。
  3849. * @property {mapboxgl.Map} map - MapBoxGL Map 对象。
  3850. */
  3851. (0,v.isFunction)(e.props.onDataUpdated)&&e.props.onDataUpdated(t)}))}},{key:"render",value:function(){return null}}]),r}(f.default.Component),i.defaultProps={layerStyle:{line:new m.LineStyle,circle:new m.CircleStyle,fill:new m.FillStyle}},a=i))||a;t.default=g},
  3852. /***/9162:
  3853. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(3465)),l=n(r(375));r(2395);
  3854. /**
  3855. * @class DataFlowLayerViewModel
  3856. * @category ViewModel
  3857. * @classdesc 数据流图层组件功能类。
  3858. * @param {mapboxgl.Map} map - mapboxgl map 对象。
  3859. * @param {String} serviceUrl - 数据流服务地址。
  3860. * @param {Object} [options] - 可选参数。
  3861. * @param {String} [options.layerId] - 图层 ID。
  3862. * @param {Object} [options.layerStyle] - 指定图层样式。
  3863. * @param {GeoJSONObject} [options.geometry] - 指定几何范围,该范围内的要素才能被订阅。
  3864. * @param {String} [options.excludeField] - 排除字段。
  3865. * @param {Object} [options.styleOptions] - style OPtion
  3866. * @fires DataFlowLayerViewModel#subscribesucceeded
  3867. * @fires DataFlowLayerViewModel#subscribefailed
  3868. * @fires DataFlowLayerViewModel#dataUpdated
  3869. */
  3870. var c=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n,i){var o;if((0,a.default)(this,r),o=t.call(this),!n)throw new Error("serviceUrl is requierd");if(!e)throw new Error("map is requierd");return o.options=i||{},o.map=e,o.serviceUrl=n,o.sourceID=i.layerId||"dataFlow"+(new Date).getTime(),o.layerStyle=i.layerStyle||{},o.options.registerToken&&SuperMap.SecurityManager.registerToken(o.serviceUrl,o.options.registerToken),o._initializeDataFlow(),o}return(0,i.default)(r,[{key:"setLayerStyle",value:function(e){this.layerStyle=e}
  3871. /**
  3872. * @function DataFlowLayerViewModel.prototype.setExcludeField
  3873. * @description 设置唯一字段。
  3874. * @param {string} excludeField - 唯一字段。
  3875. */},{key:"setExcludeField",value:function(e){return this.dataService.setExcludeField(e),this.options.excludeField=e,this}
  3876. /**
  3877. * @function DataFlowLayerViewModel.prototype.setGeometry
  3878. * @description 设置集合要素。
  3879. * @param {GeoJSONObject} geometry - 待设置的 GeoJSON 几何要素对象。
  3880. */},{key:"setGeometry",value:function(e){return this.dataService.setGeometry(e),this.options.geometry=e,this}},{key:"_initializeDataFlow",value:function(){var e=this,t=new l.default.supermap.DataFlowService(this.serviceUrl,{geometry:this.options.geometry,excludeField:this.options.excludeField}).initSubscribe();t.on("subscribeSocketConnected",(function(t){
  3881. /**
  3882. * @event DataFlowLayerViewModel#subscribesucceeded
  3883. * @description 数据订阅成功后触发。
  3884. * @property {Object} e - 事件对象。
  3885. */
  3886. e.fire("subscribesucceeded",t)})),t.on("subscribeSocketError",(function(t){
  3887. /**
  3888. * @event DataFlowLayerViewModel#subscribefailed
  3889. * @description 数据订阅失败后触发。
  3890. * @property {Object} e - 事件对象。
  3891. */
  3892. e.fire("subscribefailed",t)})),t.on("messageSucceeded",(function(t){e._addLayer(t)})),this.dataService=t}},{key:"_addLayer",value:function(e){if(e.featureResult){var t=e.featureResult,r=t.geometry.type,n=this.layerStyle;if(this.map.getSource(this.sourceID)){// update layer
  3893. var a=(0,u.default)(this.map.getSource(this.sourceID)._data.features),i=!1;a.forEach((function(e,r){e.properties.id===t.properties.id&&(i=!0,a[r]=t)})),i||a.push(t),this.map.getSource(this.sourceID).setData({type:"FeatureCollection",features:a}),
  3894. /**
  3895. * @event DataFlowLayerViewModel#dataUpdated
  3896. * @description 数据更新成功后触发。
  3897. * @property {GeoJSONObject} data - 更新的数据。
  3898. * @property {mapboxgl.Map} map - MapBoxGL Map 对象。
  3899. */
  3900. this.fire("dataupdated",{data:t,map:this.map})}else if(this.map.addSource(this.sourceID,{type:"geojson",data:{type:"FeatureCollection",features:[t]}}),"Point"===r){var o="circle",s={"circle-radius":6,"circle-color":"red"};n.symbol&&(o="symbol",s={}),this.map.addLayer({id:this.sourceID,type:o,source:this.sourceID,paint:n[o]&&n[o].paint||s,layout:n[o]&&n[o].layout||{}})}else"MultiPolygon"===r||"Polygon"===r?this.map.addLayer({id:this.sourceID,type:"fill",paint:n.fill&&n.fill.paint||{"fill-color":"red","fill-opacity":1},layout:n.fill&&n.fill.layout||{},source:this.sourceID}):"LineString"!==r&&"Line"!==r&&"MultiLineString"!==r||this.map.addLayer({id:this.sourceID,type:"line",paint:n.line&&n.line.paint||{"line-width":5,"line-color":"red","line-opacity":1},layout:n.line&&n.line.layout||{},source:this.sourceID})}}}]),r}(l.default.Evented);t.default=c},
  3901. /***/9183:
  3902. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=r(3899),d=n(r(9635)),f=n(r(7006)),h=n(r(5703)),p=["scatter-plot","path-layer","polygon-layer","arc-layer","hexagon-layer","screen-grid-layer"],y=(0,l.default)(d.default,f.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"loaded",value:function(e){var t=this;p.findIndex((function(e){return e===t.props.layerType}))>-1&&(this.viewModel=new h.default(e,this.props))}},{key:"render",value:function(){return null}}]),r}(c.Component))||a;t.default=y},
  3903. /***/5703:
  3904. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395),r(2371);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),(i=t.call(this)).map=e;var o=n.layerType,s=n.options,u=n.layerId;return i.layerType=o,s.data=s.data||[],s.layerId=s.layerId||u,i.options=s,i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.layerType&&this.options&&this._addDeckglLayer()}},{key:"_addDeckglLayer",value:function(){var e=new u.default.supermap.DeckglLayer(this.layerType,this.options);this.map.addLayer(e)}}]),r}(u.default.Evented);t.default=l},
  3905. /***/1762:
  3906. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=n(r(3899)),d=n(r(9635)),f=n(r(7006)),h=n(r(3395)),p=(0,l.default)(d.default,f.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"loaded",value:function(e){this.viewModel=new h.default(e,this.props.options)}},{key:"render",value:function(){return null}}]),r}(c.default.Component))||a;t.default=p},
  3907. /***/3395:
  3908. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(550)),l=n(r(375)),c=n(r(3094)),d=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;if((0,a.default)(this,r),i=t.call(this),!n)throw new Error("echarts options is requierd");if(!e)throw new Error("map is requierd");return i.map=e,i.options=n,i._initializeEchartsLayer(),i}return(0,i.default)(r,[{key:"_initializeEchartsLayer",value:function(){window.echarts=u.default;var e=new c.default(this.map);e.chart.setOption(this.options),
  3909. /**
  3910. * @event echartslayeraddsucceeded
  3911. * @property {Object} layer - Echarts Layer.
  3912. */
  3913. this.fire("echartslayeraddsucceeded",{layer:e}),this.echartslayer=e}}]),r}(l.default.Evented);t.default=d},
  3914. /***/4799:
  3915. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=n(r(5382)),m=(0,c.default)(h.default,p.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidUpdate",value:function(e){var t=this.props,r=t.features,n=t.modelScale;this.viewModel&&((0,f.default)(e.features,r)||this.viewModel.setFeatures(r),e.modelScale!==n&&this.viewModel.setModelScale(n))}},{key:"loaded",value:function(e){this.viewModel=new y.default(e,this.props.features,this.props.modelScale,this.props.layerId)}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={modelScale:541843220338983e-20},a=i))||a;t.default=m},
  3916. /***/5382:
  3917. /***/function(e,t,r){"use strict";var n=r(5263).default,a=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=a(r(2982)),o=a(r(5671)),s=a(r(3144)),u=a(r(9340)),l=a(r(8557)),c=n(r(2069)),d=a(r(375)),f=a(r(2769)),h=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(e,n){var a,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:541843220338983e-20,s=arguments.length>3?arguments[3]:void 0;if((0,o.default)(this,r),a=t.call(this),!e)throw new Error("map is requierd");return a.map=e,a.layerId=s,a.features=n,a.modelScale=i,a.features&&a._addFireLayer(),a}return(0,s.default)(r,[{key:"setFeatures",value:function(e){this.features=e,this._addFireLayer()}},{key:"setModelScale",value:function(e){this.modelScale=e,this._addFireLayer()}},{key:"_addFireLayer",value:function(){var e=this;if("Point"!==this.features.features[0].geometry.type)throw new Error("Feature's type must be point");if(this.features.features.length>50)throw new Error("The maximum number of features is 50");this.features.features.forEach((function(t,r){var n=t.geometry;"Point"===n.type&&e._initializeFireLayer(n.coordinates,r)}))}},{key:"_initializeFireLayer",value:function(e,t){var r=this,n=this._getModelTransform(e),a=this.layerId&&this.layerId+"-"+t||"threeLayerFire-".concat(new Date);this.map.getLayer(a)&&this.map.removeLayer(a);var i={id:a,type:"custom",renderingMode:"3d",onAdd:function(e,t){r.camera=new c.PerspectiveCamera(45,e.getCanvas().width/e.getCanvas().height,.1,2e3),r.scene=new c.Scene,r.renderer=new c.WebGLRenderer({canvas:e.getCanvas(),context:t,antialias:!0}),r.renderer.autoClear=!1;var n=new c.Group;n.add(r.camera),r.scene.add(n),r._fire(),r.scene.add(r._object);var a=new c.PointLight(16777215,1,100);a.position.set(10,10,20),r.scene.add(a),r.map=e},render:function(e,t){var a=(new c.Matrix4).makeRotationAxis(new c.Vector3(1,0,0),n.rotateX),i=(new c.Matrix4).makeRotationAxis(new c.Vector3(0,1,0),n.rotateY),o=(new c.Matrix4).makeRotationAxis(new c.Vector3(0,0,1),n.rotateZ),s=(new c.Matrix4).fromArray(t),u=(new c.Matrix4).makeTranslation(n.translateX,n.translateY,n.translateZ).scale(new c.Vector3(n.scale,-n.scale,n.scale)).multiply(a).multiply(i).multiply(o);r.camera.projectionMatrix.elements=t,r.camera.projectionMatrix=s.multiply(u),r.renderer.state.reset(),r._update(),r.renderer.render(r.scene,r.camera),// @ts-ignore
  3918. r.map.triggerRepaint()}};// @ts-ignore TODO mapbox-gl types 未更新
  3919. this.map.addLayer(i)}},{key:"_getModelTransform",value:function(e){var t=e,r=[Math.PI/2,0,0];return{translateX:d.default.MercatorCoordinate.fromLngLat(t,0).x,translateY:d.default.MercatorCoordinate.fromLngLat(t,0).y,translateZ:d.default.MercatorCoordinate.fromLngLat(t,0).z,rotateX:r[0],rotateY:r[1],rotateZ:r[2],scale:this.modelScale}}},{key:"_fire",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:150,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.2;this._object=new c.Group,this._fireballs=[],this._height=r,this._radius=n;var a=(new c.TextureLoader).load(f.default,(function(){console.log("loaded")}),void 0,(function(e){console.log("error",e)}));// @ts-ignore
  3920. a.crossOrigin="",// "anonymous";
  3921. this._fireMaterial=new c.ShaderMaterial({uniforms:{time:{value:1},blend:{value:1},blendPattern:{type:"t",value:a}},vertexShader:"precision mediump float;\n precision mediump int;\n attribute vec4 color;\n varying vec2 vUv;\n varying float vFade;\n void main()\t{\n vUv = uv;\n vec4 localPosition = vec4( position, 1);\n vFade = clamp((localPosition.y + 3.0) / 6.0, 0.0, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * localPosition;\n }",fragmentShader:"precision mediump float;\n precision mediump int;\n uniform float time;\n uniform float blend;\n uniform sampler2D blendPattern;\n varying float vFade;\n varying vec2 vUv;\n\n\n void main()\t{\n\n vec4 startColor = vec4(1., 0.5, 0.1, 1.0);\n vec4 endColor = vec4(0.2, 0.2, 0.2, 1.0);\n\n float dissolve = texture2D(blendPattern, vUv).r * 0.5;\n\n float spread = 0.4;\n\n float fadeAmount = smoothstep(\n max(0.0, vFade - spread),\n min(1.0, vFade + spread),\n blend + dissolve\n );\n\n vec4 color = mix(\n startColor, endColor,\n smoothstep(0.1,1., fadeAmount)\n );\n\n gl_FragColor = vec4(color.rgb, 1.-fadeAmount);\n }",transparent:!0,side:c.DoubleSide,blending:c.AdditiveBlending}),this._light=new c.PointLight(16733440,1,100),this._light.position.set(0,.4,0),this._lightIntensity=5*Math.random(),this._object.add(this._light);// this._fireMaterial = new THREE.MeshStandardMaterial(0x661100);
  3922. for(var o=0;o<t;o++){var s=new c.SphereGeometry(1,32,32),u=this._fireMaterial.clone();u.uniforms.blendPattern.value=a,u.needsUpdate=!0;var l=new c.Mesh(s,u);l.position.y=Math.random()*r,l.position.x=(.5-Math.random())*this._radius,l.position.z=(.5-Math.random())*this._radius,l.rotateX(5*Math.random()),l.rotateZ(5*Math.random()),l.rotateY(5*Math.random()),// @ts-ignore
  3923. l.dirX=.006*(.5-Math.random()),// @ts-ignore
  3924. l.dirY=.006,// @ts-ignore
  3925. l.dirZ=.006*(.5-Math.random()),this._fireballs.push(l)}(e=this._object).add.apply(e,(0,i.default)(this._fireballs))}},{key:"_update",value:function(){var e=this;this._fireballs.forEach((function(t){t.position.y+=t.dirY,t.position.x+=Math.sin(t.position.y)*t.dirX,t.position.z+=Math.cos(t.position.y)*t.dirZ,t.position.y>e._height&&(t.position.y=.1*Math.random(),t.position.x=(.5-Math.random())*e._radius,t.position.z=(.5-Math.random())*e._radius);var r=.1+t.position.y/e._height;t.rotateX(.01*(1.2-r)),t.rotateZ(.01*(1.2-r)),t.rotateY(.01*(1.2-r)),t.scale.set(r,r,r),/// ball.opacity = p;
  3926. t.material.uniforms.blend.value=r})),this._light.intensity+=.006*(this._lightIntensity-this._light.intensity),Math.random()>.8&&(this._lightIntensity=5*Math.random())}}]),r}(d.default.Evented);t.default=h},
  3927. /***/9704:
  3928. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=r(3899),d=n(r(8428)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=(0,l.default)(h.default,p.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"componentDidUpdate",value:function(e){!(0,f.default)(this.props.layerStyle,e.layerStyle)&&this.viewModel&&this.viewModel.setLayerStyle(this.props.layerStyle),!(0,f.default)(this.props.data,e.data)&&this.viewModel&&this.viewModel.setData(this.props.data)}},{key:"loaded",value:function(e){this.viewModel=new d.default(e,this.props)}},{key:"render",value:function(){return null}}]),r}(c.Component))||a;t.default=y},
  3929. /***/8428:
  3930. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;if((0,a.default)(this,r),i=t.call(this),!e)throw new Error("map is requierd");i.map=e;var o=n.layerStyle,s=n.data,u=n.layerId;return i.data=s,i.layerStyle=o,i.layerId=u,i.data&&i._addLayer(),i}return(0,i.default)(r,[{key:"setData",value:function(e){e&&this.map.getSource(this.layerId)&&(this.data=e,this.layerId&&!this.map.getSource(this.layerId)?this._addLayer():this.map.getSource(this.layerId).setData(e))}},{key:"setLayerStyle",value:function(e){if(e&&this.map.getSource(this.layerId)){for(var t=e.paint,r=e.layout,n=0,a=Object.keys(t);n<a.length;n++){var i=a[n];this.map.setPaintProperty(this.layerId,i,t[i])}for(var o=0,s=Object.keys(r);o<s.length;o++){var u=s[o];this.map.setLayoutProperty(this.layerId,u,r[u])}this.layerStyle=e}}},{key:"_addLayer",value:function(){if(!(this.layerStyle instanceof Object))throw new Error("layerStyle must be object");var e=this.layerStyle,t=e.paint,r=e.layout;this.map.addLayer({id:this.layerId,type:this._getLayerType(t),source:{type:"geojson",data:this.data},layout:r||{},paint:t||{}})}},{key:"_getLayerType",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e).join(" ").match(/circle-|line-|fill-extrusion-|fill-+/i),r=t?t[0]:"";return r.substr(0,r.length-1)}}]),r}(n(r(375)).default.Evented);t.default=u},
  3931. /***/910:
  3932. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=r(9752),m=n(r(1043)),v=(0,c.default)(h.default,p.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidUpdate",value:function(e){var t=this.props.data;!(0,f.default)(e.data,t)&&this.viewModel&&this.viewModel.setData(t)}},{key:"loaded",value:function(e){var t=this.props.onLoad;this.viewModel=new m.default(e,this.props),(0,y.isFunction)(t)&&t(this.viewModel.themeLayer,e)}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={options:{},chartsType:"Bar"},a=i))||a;t.default=v},
  3933. /***/1043:
  3934. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),(i=t.call(this)).map=e;var o=n.layerName,s=n.options,u=n.chartsType,l=n.layerId,c=n.data;return i.layerName=o||l,i.chartsType=u||"Bar",s.id=s.id||l,i.options=s,i.data=c||{},i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.themeLayer=new u.default.supermap.GraphThemeLayer(this.layerName,this.chartsType,this.options),this.map.addLayer(this.themeLayer),"{}"!==JSON.stringify(this.data)&&this.setData(this.data)}},{key:"setData",value:function(e){this.themeLayer.addFeatures(e)}}]),r}(u.default.Evented);t.default=l},
  3935. /***/6073:
  3936. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=n(r(9354)),m=n(r(9623)),v=(0,c.default)(h.default,p.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidUpdate",value:function(e){e.layerStyle!==this.props.layerStyle&&this.viewModel&&this.viewModel.setLayerStyle(this.props.layerStyle),!(0,f.default)(this.props.data,e.data)&&this.viewModel&&this.viewModel.setData(this.props.data)}},{key:"loaded",value:function(e){var t=this.props,r=t.data,n=t.layerId,a=t.layerStyle;this.viewModel=new y.default(e,r,{layerId:n,layerStyle:a})}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={layerStyle:new m.default},a=i))||a;t.default=v},
  3937. /***/9354:
  3938. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n,i){var o;if((0,a.default)(this,r),o=t.call(this),!e)throw new Error("map is requierd");i=i||{},o.map=e,o.data=n,o.layerId=i.layerId||"heatmap"+(new Date).getTime();var s=i.layerStyle;return o.paint=s&&s.paint,o.layout=s&&s.layout,o._initializeHeatMapLayer(),o}return(0,i.default)(r,[{key:"setData",value:function(e){e&&this.map.getSource(this.layerId)&&(this.data=e,this.layerId&&!this.map.getSource(this.layerId)?this._initializeHeatMapLayer():this.map.getSource(this.layerId).setData(e))}},{key:"setLayerStyle",value:function(e){if(e&&this.map.getSource(this.layerId)){for(var t=e.paint,r=e.layout,n=0,a=Object.keys(t);n<a.length;n++){var i=a[n];this.map.setPaintProperty(this.layerId,i,t[i])}for(var o=0,s=Object.keys(r);o<s.length;o++){var u=s[o];this.map.setLayoutProperty(this.layerId,u,r[u])}this.layerStyle=e}}},{key:"_initializeHeatMapLayer",value:function(){this.map.addSource(this.layerId,{type:"geojson",data:this.data}),this.map.addLayer({id:this.layerId,type:"heatmap",source:this.layerId,paint:this.paint||{"heatmap-intensity":["interpolate",["linear"],["zoom"],0,1,9,3],"heatmap-color":["interpolate",["linear"],["heatmap-density"],0,"rgba(33,102,172,0)",.2,"rgb(103,169,207)",.4,"rgb(209,229,240)",.6,"rgb(253,219,199)",.8,"rgb(239,138,98)",1,"rgb(178,24,43)"],"heatmap-radius":["interpolate",["linear"],["zoom"],0,2,9,20]},layout:this.layout||{}}),this.fire("heatmaplayeraddsucceeded",{map:this.map})}}]),r}(n(r(375)).default.Evented);t.default=u},
  3939. /***/2174:
  3940. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=r(3899),f=n(r(9635)),h=n(r(7006)),p=r(9752),y=n(r(8499)),m=(0,c.default)(f.default,h.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"loaded",value:function(e){var t=this.props.onLoad;this.viewModel=new y.default(e,this.props),(0,p.isFunction)(t)&&t(this.viewModel.themeLayer,e)}},{key:"render",value:function(){return null}}]),r}(d.Component),i.defaultProps={options:{}},a=i))||a;t.default=m},
  3941. /***/8499:
  3942. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),i=t.call(this);var o=n.layerName,s=n.options,u=n.layerId,l=n.data;return i.map=e,i.layerName=o||u,s.id=s.id||u,i.options=s,i.data=l||[],i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.themeLayer=new u.default.supermap.LabelThemeLayer(this.layerName,this.options),this.map.addLayer(this.themeLayer),this.themeLayer.addFeatures(this.data)}}]),r}(u.default.Evented);t.default=l},
  3943. /***/7:
  3944. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(9635)),h=n(r(7006)),p=n(r(8862)),y=(0,c.default)(f.default,h.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"loaded",value:function(e){this.viewModel=new p.default(e,this.props)}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={options:{},data:{}},a=i))||a;t.default=y},
  3945. /***/8862:
  3946. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(8683)),i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(375));r(2395);var c=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(e,n){var o;(0,i.default)(this,r),(o=t.call(this)).map=e;var s=n.data,u=n.options,l=n.layerId;return o.data=s,o.options=u.layerId?u:(0,a.default)((0,a.default)({},u),{},{layerId:l}),o._init(),o}return(0,o.default)(r,[{key:"_init",value:function(){this.data&&this.options&&this._addMapvLayer()}},{key:"_addMapvLayer",value:function(){var e=new l.default.supermap.MapvLayer("",this.data,this.options);this.map.addLayer(e)}}]),r}(l.default.Evented);t.default=c},
  3947. /***/5890:
  3948. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=r(9752),m=n(r(5040)),v=(0,c.default)(h.default,p.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidUpdate",value:function(e){var t=this.props.data;!(0,f.default)(e.data,t)&&this.viewModel&&this.viewModel.setData(t)}},{key:"loaded",value:function(e){var t=this.props.onLoad;this.viewModel=new m.default(e,this.props),(0,y.isFunction)(t)&&t(this.viewModel.themeLayer,e)}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={options:{}},a=i))||a;t.default=v},
  3949. /***/5040:
  3950. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),i=t.call(this);var o=n.layerName,s=n.options,u=n.layerId,l=n.data;return i.map=e,i.layerName=o||u,s.id=s.id||u,i.options=s,i.data=l||[],i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.themeLayer=new u.default.supermap.RangeThemeLayer(this.layerName,this.options),this.map.addLayer(this.themeLayer),this.data&&this.data.length&&this.setData(this.data)}},{key:"setData",value:function(e){this.themeLayer.addFeatures(e)}}]),r}(u.default.Evented);t.default=l},
  3951. /***/3930:
  3952. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=r(3899),d=n(r(9635)),f=n(r(7006)),h=r(9752),p=n(r(8510)),y=(0,l.default)(d.default,f.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"loaded",value:function(e){var t=this.props.onLoad;this.viewModel=new p.default(e,this.props),(0,h.isFunction)(t)&&t(this.viewModel.themeLayer,e)}},{key:"render",value:function(){return null}}]),r}(c.Component))||a;t.default=y},
  3953. /***/8510:
  3954. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),(i=t.call(this)).map=e;var o=n.layerName,s=n.options,u=n.symbolType,l=n.layerId,c=n.data;return i.layerName=o||l,i.symbolType=u||"Circle",s.id=s.id||l,i.options=s,i.data=c||[],i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.themeLayer=new u.default.supermap.RankSymbolThemeLayer(this.layerName,this.symbolType,this.options),this.map.addLayer(this.themeLayer),this.themeLayer.addFeatures(this.data)}}]),r}(u.default.Evented);t.default=l},
  3955. /***/1771:
  3956. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(9635)),h=n(r(7006)),p=n(r(339)),y=(0,c.default)(f.default,h.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"loaded",value:function(e){this.viewModel=new p.default(e,this.props)}},{key:"removed",value:function(){this.viewModel=null}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={scheme:"xyz",visible:!0,opacity:1},a=i))||a;t.default=y},
  3957. /***/339:
  3958. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),(i=t.call(this)).map=e;var o=n.layerId,s=n.tileSize,u=n.mapUrl,l=n.tiles,c=n.bounds,d=n.minZoom,f=void 0===d?0:d,h=n.maxZoom,p=void 0===h?22:h,y=n.attribution,m=n.scheme,v=void 0===m?"xyz":m,g=n.visible,b=void 0===g||g,w=n.opacity,S=void 0===w?1:w,L=n.before;return i.layerId=o,i.tileSize=s,i.mapUrl=u,i.tiles=l,i.bounds=c,i.minZoom=f,i.maxZoom=p,i.attribution=y,i.scheme=v,i.opacity=S,i.visibility=b?"visible":"none",i.before=L,// enhance扩展,传iserver标识是iserver rest map
  3959. i.rasterSource="",i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.mapUrl?this._addRestMapLayer():this._addLayer()}},{key:"_addRestMapLayer",value:function(){var e=this;new u.default.supermap.MapService(this.mapUrl).getMapInfo((function(t){e.layerId||(e.layerId=t.name),!e.tileSize&&t.viewer&&(e.tileSize=t.viewer.width);var r=t.bounds;!e.bounds&&r&&(e.bounds=[r.left,r.bottom,r.right,r.top]),e.rasterSource="iserver",e.tiles=[e.mapUrl],e._addLayer(t)}))}},{key:"_addLayer",value:function(){this.map.addLayer({id:this.layerId||"raster-layer-".concat((new Date).getTime()),type:"raster",layout:{visibility:this.visibility},paint:{"raster-opacity":this.opacity},source:{bounds:this.bounds||[-180,-85.051129,180,85.051129],type:"raster",tileSize:this.tileSize||256,tiles:this.tiles,rasterSource:this.rasterSource,minzoom:this.minZoom,maxzoom:this.maxZoom,scheme:this.scheme}},this.before)}}]),r}(u.default.Evented);t.default=l},
  3960. /***/4204:
  3961. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i,o=n(r(5671)),s=n(r(3144)),u=n(r(9340)),l=n(r(8557)),c=n(r(8808)),d=n(r(3899)),f=n(r(2307)),h=n(r(9635)),p=n(r(7006)),y=r(9752),m=n(r(2658)),v=(0,c.default)(h.default,p.default)((i=function(e){(0,u.default)(r,e);var t=(0,l.default)(r);function r(){return(0,o.default)(this,r),t.apply(this,arguments)}return(0,s.default)(r,[{key:"componentDidUpdate",value:function(e){var t=this.props.data;!(0,f.default)(e.data,t)&&this.viewModel&&this.viewModel.setData(t)}},{key:"loaded",value:function(e){var t=this.props.onLoad;this.viewModel=new m.default(e,this.props),(0,y.isFunction)(t)&&t(this.viewModel.themeLayer,e)}},{key:"render",value:function(){return null}}]),r}(d.default.Component),i.defaultProps={options:{}},a=i))||a;t.default=v},
  3962. /***/2658:
  3963. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(r(5671)),i=n(r(3144)),o=n(r(9340)),s=n(r(8557)),u=n(r(375));r(2395);var l=function(e){(0,o.default)(r,e);var t=(0,s.default)(r);function r(e,n){var i;(0,a.default)(this,r),(i=t.call(this)).map=e;var o=n.options,s=n.layerId,u=n.data,l=n.layerName;return i.layerName=l||s,o.id=o.id||s,i.options=o,i.data=u||[],i._init(),i}return(0,i.default)(r,[{key:"_init",value:function(){this.themeLayer=new u.default.supermap.UniqueThemeLayer(this.layerName,this.options),this.map.addLayer(this.themeLayer),this.data&&this.data.length&&this.setData(this.data)}},{key:"setData",value:function(e){this.themeLayer.addFeatures(e)}}]),r}(u.default.Evented);t.default=l},
  3964. /***/2125:
  3965. /***/function(e,t,r){"use strict";var n=r(4836).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,i=n(r(5671)),o=n(r(3144)),s=n(r(9340)),u=n(r(8557)),l=n(r(8808)),c=n(r(3899)),d=n(r(9635)),f=n(r(7006)),h=(0,l.default)(d.default,f.default)(a=function(e){(0,s.default)(r,e);var t=(0,u.default)(r);function r(){return(0,i.default)(this,r),t.apply(this,arguments)}return(0,o.default)(r,[{key:"loaded",value:function(e){e&&e.addStyle&&e.addStyle(this.props.styleOptions,this.props.before)}},{key:"render",value:function(){return null}}]),r}(c.default.Component))||a;t.default=h},
  3966. /***/8874:
  3967. /***/function(e){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},
  3968. /***/7187:
  3969. /***/function(e){"use strict";
  3970. // Copyright Joyent, Inc. and other Node contributors.
  3971. // Permission is hereby granted, free of charge, to any person obtaining a
  3972. // copy of this software and associated documentation files (the
  3973. // "Software"), to deal in the Software without restriction, including
  3974. // without limitation the rights to use, copy, modify, merge, publish,
  3975. // distribute, sublicense, and/or sell copies of the Software, and to permit
  3976. // persons to whom the Software is furnished to do so, subject to the
  3977. // following conditions:
  3978. // The above copyright notice and this permission notice shall be included
  3979. // in all copies or substantial portions of the Software.
  3980. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3981. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  3982. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  3983. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  3984. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  3985. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  3986. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  3987. var t,r="object"===typeof Reflect?Reflect:null,n=r&&"function"===typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"===typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!==e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(r,n){function a(r){e.removeListener(t,i),n(r)}function i(){"function"===typeof e.removeListener&&e.removeListener("error",a),r([].slice.call(arguments))}y(e,t,i,{once:!0}),"error"!==t&&function(e,t,r){"function"===typeof e.on&&y(e,"error",t,r)}(e,a,{once:!0})}))},
  3988. // Backwards-compat with node 0.10.x
  3989. i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;
  3990. // By default EventEmitters will print a warning if more than 10 listeners are
  3991. // added to it. This is a useful default which helps finding memory leaks.
  3992. var o=10;function s(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function l(e,t,r,n){var a,i,o,l;if(s(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(
  3993. // To avoid recursion in the case that type === "newListener"! Before
  3994. // adding it to the listeners, first emit "newListener".
  3995. void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),
  3996. // Re-assign `events` because a newListener handler could have caused the
  3997. // this._events to be assigned to a new object
  3998. i=e._events),o=i[t]),void 0===o)
  3999. // Optimize the case of one listener. Don't need the extra array object.
  4000. o=i[t]=r,++e._eventsCount;else if("function"===typeof o?
  4001. // Adding the second element, need to change to array.
  4002. o=i[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),(
  4003. // Check for listener leak
  4004. a=u(e))>0&&o.length>a&&!o.warned){o.warned=!0;
  4005. // No error code for this since it is a Warning
  4006. // eslint-disable-next-line no-restricted-syntax
  4007. var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,l=c,console&&console.warn&&console.warn(l)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=c.bind(n);return a.listener=r,n.wrapFn=a,a}function f(e,t,r){var n=e._events;if(void 0===n)return[];var a=n[t];return void 0===a?[]:"function"===typeof a?r?[a.listener||a]:[a]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(a):p(a,a.length)}function h(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function p(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function y(e,t,r,n){if("function"===typeof e.on)n.once?e.once(t,r):e.on(t,r);else{if("function"!==typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);
  4008. // EventTarget does not have `error` event semantics like Node
  4009. // EventEmitters, we do not listen for `error` events here.
  4010. e.addEventListener(t,(function a(i){
  4011. // IE does not have builtin `{ once: true }` support so we
  4012. // have to do it manually.
  4013. n.once&&e.removeEventListener(t,a),r(i)}))}}
  4014. /***/Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!==typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},
  4015. // Obviously not all Emitters should be limited to 10. This function allows
  4016. // that to be increased. Set to zero for unlimited.
  4017. i.prototype.setMaxListeners=function(e){if("number"!==typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return u(this)},i.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var a="error"===e,i=this._events;if(void 0!==i)a=a&&void 0===i.error;else if(!a)return!1;
  4018. // If there is no 'error' event listener then throw.
  4019. if(a){var o;if(t.length>0&&(o=t[0]),o instanceof Error)
  4020. // Note: The comments on the `throw` lines are intentional, they show
  4021. // up in Node's output if this results in an unhandled exception.
  4022. throw o;// Unhandled 'error' event
  4023. // At least give some kind of context to the user
  4024. var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s;// Unhandled 'error' event
  4025. }var u=i[e];if(void 0===u)return!1;if("function"===typeof u)n(u,this,t);else{var l=u.length,c=p(u,l);for(r=0;r<l;++r)n(c[r],this,t)}return!0},i.prototype.addListener=function(e,t){return l(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return l(this,e,t,!0)},i.prototype.once=function(e,t){return s(t),this.on(e,d(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,d(this,e,t)),this},
  4026. // Emits a 'removeListener' event if and only if the listener was removed.
  4027. i.prototype.removeListener=function(e,t){var r,n,a,i,o;if(s(t),void 0===(n=this._events))return this;if(void 0===(r=n[e]))return this;if(r===t||r.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!==typeof r){for(a=-1,i=r.length-1;i>=0;i--)if(r[i]===t||r[i].listener===t){o=r[i].listener,a=i;break}if(a<0)return this;0===a?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,a),1===r.length&&(n[e]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",e,o||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,r,n;if(void 0===(r=this._events))return this;
  4028. // not listening for removeListener, no need to emit
  4029. if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[e]),this;
  4030. // emit removeListener for all listeners on all events
  4031. if(0===arguments.length){var a,i=Object.keys(r);for(n=0;n<i.length;++n)"removeListener"!==(a=i[n])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"===typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)
  4032. // LIFO order
  4033. for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},i.prototype.listeners=function(e){return f(this,e,!0)},i.prototype.rawListeners=function(e){return f(this,e,!1)},i.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},i.prototype.listenerCount=h,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},
  4034. /***/8679:
  4035. /***/function(e,t,r){"use strict";var n=r(7109),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};
  4036. /**
  4037. * Copyright 2015, Yahoo! Inc.
  4038. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
  4039. */function u(e){
  4040. // React v16.11 and below
  4041. return n.isMemo(e)?o:s[e.$$typeof]||a;// React v16.12 and above
  4042. }s[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[n.Memo]=o;var l=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,r,n){if("string"!==typeof r){
  4043. // don't hoist over string (html) components
  4044. if(p){var a=h(r);a&&a!==p&&e(t,a,n)}var o=c(r);d&&(o=o.concat(d(r)));for(var s=u(t),y=u(r),m=0;m<o.length;++m){var v=o[m];if(!i[v]&&(!n||!n[v])&&(!y||!y[v])&&(!s||!s[v])){var g=f(r,v);try{
  4045. // Avoid failures from read-only properties
  4046. l(t,v,g)}catch(b){}}}}return t}},
  4047. /***/6103:
  4048. /***/function(e,t){"use strict";
  4049. /** @license React v16.13.1
  4050. * react-is.production.min.js
  4051. *
  4052. * Copyright (c) Facebook, Inc. and its affiliates.
  4053. *
  4054. * This source code is licensed under the MIT license found in the
  4055. * LICENSE file in the root directory of this source tree.
  4056. */var r="function"===typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,a=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,o=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,l=r?Symbol.for("react.context"):60110,c=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,f=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,p=r?Symbol.for("react.suspense_list"):60120,y=r?Symbol.for("react.memo"):60115,m=r?Symbol.for("react.lazy"):60116,v=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function S(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case c:case d:case i:case s:case o:case h:return e;default:switch(e=e&&e.$$typeof){case l:case f:case m:case y:case u:return e;default:return t}}case a:return t}}}function L(e){return S(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=u,t.Element=n,t.ForwardRef=f,t.Fragment=i,t.Lazy=m,t.Memo=y,t.Portal=a,t.Profiler=s,t.StrictMode=o,t.Suspense=h,t.isAsyncMode=function(e){return L(e)||S(e)===c},t.isConcurrentMode=L,t.isContextConsumer=function(e){return S(e)===l},t.isContextProvider=function(e){return S(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return S(e)===f},t.isFragment=function(e){return S(e)===i},t.isLazy=function(e){return S(e)===m},t.isMemo=function(e){return S(e)===y},t.isPortal=function(e){return S(e)===a},t.isProfiler=function(e){return S(e)===s},t.isStrictMode=function(e){return S(e)===o},t.isSuspense=function(e){return S(e)===h},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===d||e===s||e===o||e===h||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===y||e.$$typeof===u||e.$$typeof===l||e.$$typeof===f||e.$$typeof===g||e.$$typeof===b||e.$$typeof===w||e.$$typeof===v)},t.typeOf=S},
  4057. /***/7109:
  4058. /***/function(e,t,r){"use strict";e.exports=r(6103)},
  4059. /***/5717:
  4060. /***/function(e){"function"===typeof Object.create?
  4061. // implementation from standard node.js 'util' module
  4062. e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:
  4063. // old school shim for old browsers
  4064. e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}
  4065. /***/},
  4066. /***/1633:
  4067. /***/function(e,t,r){
  4068. /**
  4069. * lodash (Custom Build) <https://lodash.com/>
  4070. * Build: `lodash modularize exports="npm" -o ./`
  4071. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  4072. * Released under MIT license <https://lodash.com/license>
  4073. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  4074. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  4075. */
  4076. /** Used as references for various `Number` constants. */
  4077. var n=1/0,a="[object Symbol]",i="\\ud800-\\udfff",o="\\u0300-\\u036f\\ufe20-\\ufe23",s="\\u20d0-\\u20f0",u="\\ufe0e\\ufe0f",l="["+i+"]",c="["+o+s+"]",d="\\ud83c[\\udffb-\\udfff]",f="[^"+i+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",p="[\\ud800-\\udbff][\\udc00-\\udfff]",y="\\u200d",m="(?:"+c+"|"+d+")"+"?",v="["+u+"]?",g=v+m+("(?:"+y+"(?:"+[f,h,p].join("|")+")"+v+m+")*"),b="(?:"+[f+c+"?",c,h,p,l].join("|")+")",w=RegExp(d+"(?="+d+")|"+b+g,"g"),S=RegExp("["+y+i+o+s+u+"]"),L="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,E="object"==typeof self&&self&&self.Object===Object&&self,M=L||E||Function("return this")();
  4078. /** `Object#toString` result references. */
  4079. /**
  4080. * Checks if `string` contains Unicode symbols.
  4081. *
  4082. * @private
  4083. * @param {string} string The string to inspect.
  4084. * @returns {boolean} Returns `true` if a symbol is found, else `false`.
  4085. */
  4086. function k(e){return S.test(e)}
  4087. /**
  4088. * Converts `string` to an array.
  4089. *
  4090. * @private
  4091. * @param {string} string The string to convert.
  4092. * @returns {Array} Returns the converted array.
  4093. */function x(e){return k(e)?
  4094. /**
  4095. * Converts a Unicode `string` to an array.
  4096. *
  4097. * @private
  4098. * @param {string} string The string to convert.
  4099. * @returns {Array} Returns the converted array.
  4100. */
  4101. function(e){return e.match(w)||[]}
  4102. /** Used for built-in method references. */(e):
  4103. /**
  4104. * Converts an ASCII `string` to an array.
  4105. *
  4106. * @private
  4107. * @param {string} string The string to convert.
  4108. * @returns {Array} Returns the converted array.
  4109. */
  4110. function(e){return e.split("")}(e)}var T=Object.prototype.toString,F=M.Symbol,P=F?F.prototype:void 0,C=P?P.toString:void 0;
  4111. /**
  4112. * Used to resolve the
  4113. * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
  4114. * of values.
  4115. */
  4116. /**
  4117. * The base implementation of `_.toString` which doesn't convert nullish
  4118. * values to empty strings.
  4119. *
  4120. * @private
  4121. * @param {*} value The value to process.
  4122. * @returns {string} Returns the string.
  4123. */
  4124. function N(e){
  4125. // Exit early for strings to avoid a performance hit in some environments.
  4126. if("string"==typeof e)return e;if(
  4127. /**
  4128. * Checks if `value` is classified as a `Symbol` primitive or object.
  4129. *
  4130. * @static
  4131. * @memberOf _
  4132. * @since 4.0.0
  4133. * @category Lang
  4134. * @param {*} value The value to check.
  4135. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  4136. * @example
  4137. *
  4138. * _.isSymbol(Symbol.iterator);
  4139. * // => true
  4140. *
  4141. * _.isSymbol('abc');
  4142. * // => false
  4143. */
  4144. function(e){return"symbol"==typeof e||
  4145. /**
  4146. * Checks if `value` is object-like. A value is object-like if it's not `null`
  4147. * and has a `typeof` result of "object".
  4148. *
  4149. * @static
  4150. * @memberOf _
  4151. * @since 4.0.0
  4152. * @category Lang
  4153. * @param {*} value The value to check.
  4154. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  4155. * @example
  4156. *
  4157. * _.isObjectLike({});
  4158. * // => true
  4159. *
  4160. * _.isObjectLike([1, 2, 3]);
  4161. * // => true
  4162. *
  4163. * _.isObjectLike(_.noop);
  4164. * // => false
  4165. *
  4166. * _.isObjectLike(null);
  4167. * // => false
  4168. */
  4169. function(e){return!!e&&"object"==typeof e}(e)&&T.call(e)==a}
  4170. /**
  4171. * Converts `value` to a string. An empty string is returned for `null`
  4172. * and `undefined` values. The sign of `-0` is preserved.
  4173. *
  4174. * @static
  4175. * @memberOf _
  4176. * @since 4.0.0
  4177. * @category Lang
  4178. * @param {*} value The value to process.
  4179. * @returns {string} Returns the string.
  4180. * @example
  4181. *
  4182. * _.toString(null);
  4183. * // => ''
  4184. *
  4185. * _.toString(-0);
  4186. * // => '-0'
  4187. *
  4188. * _.toString([1, 2, 3]);
  4189. * // => '1,2,3'
  4190. */(e))return C?C.call(e):"";var t=e+"";return"0"==t&&1/e==-n?"-0":t}
  4191. /**
  4192. * Casts `array` to a slice if it's needed.
  4193. *
  4194. * @private
  4195. * @param {Array} array The array to inspect.
  4196. * @param {number} start The start position.
  4197. * @param {number} [end=array.length] The end position.
  4198. * @returns {Array} Returns the cast slice.
  4199. */function W(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:
  4200. /**
  4201. * The base implementation of `_.slice` without an iteratee call guard.
  4202. *
  4203. * @private
  4204. * @param {Array} array The array to slice.
  4205. * @param {number} [start=0] The start position.
  4206. * @param {number} [end=array.length] The end position.
  4207. * @returns {Array} Returns the slice of `array`.
  4208. */
  4209. function(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(r=r>a?a:r)<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(a);++n<a;)i[n]=e[n+t];return i}(e,t,r)}
  4210. /**
  4211. * Creates a function like `_.lowerFirst`.
  4212. *
  4213. * @private
  4214. * @param {string} methodName The name of the `String` case method to use.
  4215. * @returns {Function} Returns the new case function.
  4216. */function j(e){return null==e?"":N(e)}
  4217. /**
  4218. * Converts the first character of `string` to upper case and the remaining
  4219. * to lower case.
  4220. *
  4221. * @static
  4222. * @memberOf _
  4223. * @since 3.0.0
  4224. * @category String
  4225. * @param {string} [string=''] The string to capitalize.
  4226. * @returns {string} Returns the capitalized string.
  4227. * @example
  4228. *
  4229. * _.capitalize('FRED');
  4230. * // => 'Fred'
  4231. */
  4232. /**
  4233. * Converts the first character of `string` to upper case.
  4234. *
  4235. * @static
  4236. * @memberOf _
  4237. * @since 4.0.0
  4238. * @category String
  4239. * @param {string} [string=''] The string to convert.
  4240. * @returns {string} Returns the converted string.
  4241. * @example
  4242. *
  4243. * _.upperFirst('fred');
  4244. * // => 'Fred'
  4245. *
  4246. * _.upperFirst('FRED');
  4247. * // => 'FRED'
  4248. */
  4249. var I,O=(I="toUpperCase",function(e){var t=k(e=j(e))?x(e):void 0,r=t?t[0]:e.charAt(0),n=t?W(t,1).join(""):e.slice(1);return r[I]()+n});e.exports=function(e){return O(j(e).toLowerCase())}},
  4250. /***/3465:
  4251. /***/function(e,t,r){
  4252. /* module decorator */e=r.nmd(e);
  4253. /**
  4254. * lodash (Custom Build) <https://lodash.com/>
  4255. * Build: `lodash modularize exports="npm" -o ./`
  4256. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  4257. * Released under MIT license <https://lodash.com/license>
  4258. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  4259. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  4260. */
  4261. /** Used as the size to enable large array optimizations. */
  4262. var n="__lodash_hash_undefined__",a=9007199254740991,i="[object Arguments]",o="[object Boolean]",s="[object Date]",u="[object Function]",l="[object GeneratorFunction]",c="[object Map]",d="[object Number]",f="[object Object]",h="[object Promise]",p="[object RegExp]",y="[object Set]",m="[object String]",v="[object Symbol]",g="[object WeakMap]",b="[object ArrayBuffer]",w="[object DataView]",S="[object Float32Array]",L="[object Float64Array]",E="[object Int8Array]",M="[object Int16Array]",k="[object Int32Array]",x="[object Uint8Array]",T="[object Uint8ClampedArray]",F="[object Uint16Array]",P="[object Uint32Array]",C=/\w*$/,N=/^\[object .+?Constructor\]$/,W=/^(?:0|[1-9]\d*)$/,j={};
  4263. /** Used to stand-in for `undefined` hash values. */j[i]=j["[object Array]"]=j[b]=j[w]=j[o]=j[s]=j[S]=j[L]=j[E]=j[M]=j[k]=j[c]=j[d]=j[f]=j[p]=j[y]=j[m]=j[v]=j[x]=j[T]=j[F]=j[P]=!0,j["[object Error]"]=j[u]=j[g]=!1;
  4264. /** Detect free variable `global` from Node.js. */
  4265. var I="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,O="object"==typeof self&&self&&self.Object===Object&&self,D=I||O||Function("return this")(),R=t&&!t.nodeType&&t,V=R&&e&&!e.nodeType&&e,U=V&&V.exports===R;
  4266. /** Detect free variable `self`. */
  4267. /**
  4268. * Adds the key-value `pair` to `map`.
  4269. *
  4270. * @private
  4271. * @param {Object} map The map to modify.
  4272. * @param {Array} pair The key-value pair to add.
  4273. * @returns {Object} Returns `map`.
  4274. */
  4275. function A(e,t){
  4276. // Don't return `map.set` because it's not chainable in IE 11.
  4277. return e.set(t[0],t[1]),e}
  4278. /**
  4279. * Adds `value` to `set`.
  4280. *
  4281. * @private
  4282. * @param {Object} set The set to modify.
  4283. * @param {*} value The value to add.
  4284. * @returns {Object} Returns `set`.
  4285. */function q(e,t){
  4286. // Don't return `set.add` because it's not chainable in IE 11.
  4287. return e.add(t),e}
  4288. /**
  4289. * A specialized version of `_.forEach` for arrays without support for
  4290. * iteratee shorthands.
  4291. *
  4292. * @private
  4293. * @param {Array} [array] The array to iterate over.
  4294. * @param {Function} iteratee The function invoked per iteration.
  4295. * @returns {Array} Returns `array`.
  4296. */
  4297. /**
  4298. * A specialized version of `_.reduce` for arrays without support for
  4299. * iteratee shorthands.
  4300. *
  4301. * @private
  4302. * @param {Array} [array] The array to iterate over.
  4303. * @param {Function} iteratee The function invoked per iteration.
  4304. * @param {*} [accumulator] The initial value.
  4305. * @param {boolean} [initAccum] Specify using the first element of `array` as
  4306. * the initial value.
  4307. * @returns {*} Returns the accumulated value.
  4308. */
  4309. function K(e,t,r,n){var a=-1,i=e?e.length:0;for(n&&i&&(r=e[++a]);++a<i;)r=t(r,e[a],a,e);return r}
  4310. /**
  4311. * The base implementation of `_.times` without support for iteratee shorthands
  4312. * or max array length checks.
  4313. *
  4314. * @private
  4315. * @param {number} n The number of times to invoke `iteratee`.
  4316. * @param {Function} iteratee The function invoked per iteration.
  4317. * @returns {Array} Returns the array of results.
  4318. */
  4319. /**
  4320. * Checks if `value` is a host object in IE < 9.
  4321. *
  4322. * @private
  4323. * @param {*} value The value to check.
  4324. * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
  4325. */
  4326. function X(e){
  4327. // Many host objects are `Object` objects that can coerce to strings
  4328. // despite having improperly defined `toString` methods.
  4329. var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(r){}return t}
  4330. /**
  4331. * Converts `map` to its key-value pairs.
  4332. *
  4333. * @private
  4334. * @param {Object} map The map to convert.
  4335. * @returns {Array} Returns the key-value pairs.
  4336. */function Z(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}
  4337. /**
  4338. * Creates a unary function that invokes `func` with its argument transformed.
  4339. *
  4340. * @private
  4341. * @param {Function} func The function to wrap.
  4342. * @param {Function} transform The argument transform.
  4343. * @returns {Function} Returns the new function.
  4344. */function z(e,t){return function(r){return e(t(r))}}
  4345. /**
  4346. * Converts `set` to an array of its values.
  4347. *
  4348. * @private
  4349. * @param {Object} set The set to convert.
  4350. * @returns {Array} Returns the values.
  4351. */function Y(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}
  4352. /** Used for built-in method references. */var B=Array.prototype,G=Function.prototype,J=Object.prototype,H=D["__core-js_shared__"],Q=function(){var e=/[^.]+$/.exec(H&&H.keys&&H.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),_=G.toString,$=J.hasOwnProperty,ee=J.toString,te=RegExp("^"+_.call($).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=U?D.Buffer:void 0,ne=D.Symbol,ae=D.Uint8Array,ie=z(Object.getPrototypeOf,Object),oe=Object.create,se=J.propertyIsEnumerable,ue=B.splice,le=Object.getOwnPropertySymbols,ce=re?re.isBuffer:void 0,de=z(Object.keys,Object),fe=Re(D,"DataView"),he=Re(D,"Map"),pe=Re(D,"Promise"),ye=Re(D,"Set"),me=Re(D,"WeakMap"),ve=Re(Object,"create"),ge=Ke(fe),be=Ke(he),we=Ke(pe),Se=Ke(ye),Le=Ke(me),Ee=ne?ne.prototype:void 0,Me=Ee?Ee.valueOf:void 0;
  4353. /** Used to detect overreaching core-js shims. */
  4354. /**
  4355. * Creates a hash object.
  4356. *
  4357. * @private
  4358. * @constructor
  4359. * @param {Array} [entries] The key-value pairs to cache.
  4360. */
  4361. function ke(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  4362. /**
  4363. * Removes all key-value entries from the hash.
  4364. *
  4365. * @private
  4366. * @name clear
  4367. * @memberOf Hash
  4368. */
  4369. /**
  4370. * Creates an list cache object.
  4371. *
  4372. * @private
  4373. * @constructor
  4374. * @param {Array} [entries] The key-value pairs to cache.
  4375. */
  4376. function xe(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  4377. /**
  4378. * Removes all key-value entries from the list cache.
  4379. *
  4380. * @private
  4381. * @name clear
  4382. * @memberOf ListCache
  4383. */
  4384. /**
  4385. * Creates a map cache object to store key-value pairs.
  4386. *
  4387. * @private
  4388. * @constructor
  4389. * @param {Array} [entries] The key-value pairs to cache.
  4390. */
  4391. function Te(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  4392. /**
  4393. * Removes all key-value entries from the map.
  4394. *
  4395. * @private
  4396. * @name clear
  4397. * @memberOf MapCache
  4398. */
  4399. /**
  4400. * Creates a stack cache object to store key-value pairs.
  4401. *
  4402. * @private
  4403. * @constructor
  4404. * @param {Array} [entries] The key-value pairs to cache.
  4405. */
  4406. function Fe(e){this.__data__=new xe(e)}
  4407. /**
  4408. * Removes all key-value entries from the stack.
  4409. *
  4410. * @private
  4411. * @name clear
  4412. * @memberOf Stack
  4413. */
  4414. /**
  4415. * Creates an array of the enumerable property names of the array-like `value`.
  4416. *
  4417. * @private
  4418. * @param {*} value The value to query.
  4419. * @param {boolean} inherited Specify returning inherited property names.
  4420. * @returns {Array} Returns the array of property names.
  4421. */
  4422. function Pe(e,t){
  4423. // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  4424. // Safari 9 makes `arguments.length` enumerable in strict mode.
  4425. var r=Ze(e)||
  4426. /**
  4427. * Checks if `value` is likely an `arguments` object.
  4428. *
  4429. * @static
  4430. * @memberOf _
  4431. * @since 0.1.0
  4432. * @category Lang
  4433. * @param {*} value The value to check.
  4434. * @returns {boolean} Returns `true` if `value` is an `arguments` object,
  4435. * else `false`.
  4436. * @example
  4437. *
  4438. * _.isArguments(function() { return arguments; }());
  4439. * // => true
  4440. *
  4441. * _.isArguments([1, 2, 3]);
  4442. * // => false
  4443. */
  4444. function(e){
  4445. // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  4446. /**
  4447. * This method is like `_.isArrayLike` except that it also checks if `value`
  4448. * is an object.
  4449. *
  4450. * @static
  4451. * @memberOf _
  4452. * @since 4.0.0
  4453. * @category Lang
  4454. * @param {*} value The value to check.
  4455. * @returns {boolean} Returns `true` if `value` is an array-like object,
  4456. * else `false`.
  4457. * @example
  4458. *
  4459. * _.isArrayLikeObject([1, 2, 3]);
  4460. * // => true
  4461. *
  4462. * _.isArrayLikeObject(document.body.children);
  4463. * // => true
  4464. *
  4465. * _.isArrayLikeObject('abc');
  4466. * // => false
  4467. *
  4468. * _.isArrayLikeObject(_.noop);
  4469. * // => false
  4470. */
  4471. return function(e){
  4472. /**
  4473. * Checks if `value` is object-like. A value is object-like if it's not `null`
  4474. * and has a `typeof` result of "object".
  4475. *
  4476. * @static
  4477. * @memberOf _
  4478. * @since 4.0.0
  4479. * @category Lang
  4480. * @param {*} value The value to check.
  4481. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  4482. * @example
  4483. *
  4484. * _.isObjectLike({});
  4485. * // => true
  4486. *
  4487. * _.isObjectLike([1, 2, 3]);
  4488. * // => true
  4489. *
  4490. * _.isObjectLike(_.noop);
  4491. * // => false
  4492. *
  4493. * _.isObjectLike(null);
  4494. * // => false
  4495. */
  4496. return function(e){return!!e&&"object"==typeof e}
  4497. /**
  4498. * Creates an array of the own enumerable property names of `object`.
  4499. *
  4500. * **Note:** Non-object values are coerced to objects. See the
  4501. * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
  4502. * for more details.
  4503. *
  4504. * @static
  4505. * @since 0.1.0
  4506. * @memberOf _
  4507. * @category Object
  4508. * @param {Object} object The object to query.
  4509. * @returns {Array} Returns the array of property names.
  4510. * @example
  4511. *
  4512. * function Foo() {
  4513. * this.a = 1;
  4514. * this.b = 2;
  4515. * }
  4516. *
  4517. * Foo.prototype.c = 3;
  4518. *
  4519. * _.keys(new Foo);
  4520. * // => ['a', 'b'] (iteration order is not guaranteed)
  4521. *
  4522. * _.keys('hi');
  4523. * // => ['0', '1']
  4524. */(e)&&ze(e)}
  4525. /**
  4526. * Checks if `value` is a buffer.
  4527. *
  4528. * @static
  4529. * @memberOf _
  4530. * @since 4.3.0
  4531. * @category Lang
  4532. * @param {*} value The value to check.
  4533. * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
  4534. * @example
  4535. *
  4536. * _.isBuffer(new Buffer(2));
  4537. * // => true
  4538. *
  4539. * _.isBuffer(new Uint8Array(2));
  4540. * // => false
  4541. */(e)&&$.call(e,"callee")&&(!se.call(e,"callee")||ee.call(e)==i)}
  4542. /**
  4543. * Checks if `value` is classified as an `Array` object.
  4544. *
  4545. * @static
  4546. * @memberOf _
  4547. * @since 0.1.0
  4548. * @category Lang
  4549. * @param {*} value The value to check.
  4550. * @returns {boolean} Returns `true` if `value` is an array, else `false`.
  4551. * @example
  4552. *
  4553. * _.isArray([1, 2, 3]);
  4554. * // => true
  4555. *
  4556. * _.isArray(document.body.children);
  4557. * // => false
  4558. *
  4559. * _.isArray('abc');
  4560. * // => false
  4561. *
  4562. * _.isArray(_.noop);
  4563. * // => false
  4564. */(e)?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}
  4565. /**
  4566. * Gets the value at `key` of `object`.
  4567. *
  4568. * @private
  4569. * @param {Object} [object] The object to query.
  4570. * @param {string} key The key of the property to get.
  4571. * @returns {*} Returns the property value.
  4572. */(e.length,String):[],n=r.length,a=!!n;for(var o in e)!t&&!$.call(e,o)||a&&("length"==o||Ae(o,n))||r.push(o);return r}
  4573. /**
  4574. * Assigns `value` to `key` of `object` if the existing value is not equivalent
  4575. * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
  4576. * for equality comparisons.
  4577. *
  4578. * @private
  4579. * @param {Object} object The object to modify.
  4580. * @param {string} key The key of the property to assign.
  4581. * @param {*} value The value to assign.
  4582. */function Ce(e,t,r){var n=e[t];$.call(e,t)&&Xe(n,r)&&(void 0!==r||t in e)||(e[t]=r)}
  4583. /**
  4584. * Gets the index at which the `key` is found in `array` of key-value pairs.
  4585. *
  4586. * @private
  4587. * @param {Array} array The array to inspect.
  4588. * @param {*} key The key to search for.
  4589. * @returns {number} Returns the index of the matched value, else `-1`.
  4590. */function Ne(e,t){for(var r=e.length;r--;)if(Xe(e[r][0],t))return r;return-1}
  4591. /**
  4592. * The base implementation of `_.assign` without support for multiple sources
  4593. * or `customizer` functions.
  4594. *
  4595. * @private
  4596. * @param {Object} object The destination object.
  4597. * @param {Object} source The source object.
  4598. * @returns {Object} Returns `object`.
  4599. */
  4600. /**
  4601. * The base implementation of `_.clone` and `_.cloneDeep` which tracks
  4602. * traversed objects.
  4603. *
  4604. * @private
  4605. * @param {*} value The value to clone.
  4606. * @param {boolean} [isDeep] Specify a deep clone.
  4607. * @param {boolean} [isFull] Specify a clone including symbols.
  4608. * @param {Function} [customizer] The function to customize cloning.
  4609. * @param {string} [key] The key of `value`.
  4610. * @param {Object} [object] The parent object of `value`.
  4611. * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
  4612. * @returns {*} Returns the cloned value.
  4613. */
  4614. function We(e,t,r,n,a,h,g){var N;if(n&&(N=h?n(e,a,h,g):n(e)),void 0!==N)return N;if(!Ge(e))return e;var W=Ze(e);if(W){if(N=
  4615. /**
  4616. * Initializes an array clone.
  4617. *
  4618. * @private
  4619. * @param {Array} array The array to clone.
  4620. * @returns {Array} Returns the initialized clone.
  4621. */
  4622. function(e){var t=e.length,r=e.constructor(t);
  4623. // Add properties assigned by `RegExp#exec`.
  4624. t&&"string"==typeof e[0]&&$.call(e,"index")&&(r.index=e.index,r.input=e.input);return r}
  4625. /**
  4626. * Initializes an object clone.
  4627. *
  4628. * @private
  4629. * @param {Object} object The object to clone.
  4630. * @returns {Object} Returns the initialized clone.
  4631. */(e),!t)
  4632. /**
  4633. * Copies the values of `source` to `array`.
  4634. *
  4635. * @private
  4636. * @param {Array} source The array to copy values from.
  4637. * @param {Array} [array=[]] The array to copy values to.
  4638. * @returns {Array} Returns `array`.
  4639. */
  4640. return function(e,t){var r=-1,n=e.length;t||(t=Array(n));for(;++r<n;)t[r]=e[r];return t}
  4641. /**
  4642. * Copies properties of `source` to `object`.
  4643. *
  4644. * @private
  4645. * @param {Object} source The object to copy properties from.
  4646. * @param {Array} props The property identifiers to copy.
  4647. * @param {Object} [object={}] The object to copy properties to.
  4648. * @param {Function} [customizer] The function to customize copied values.
  4649. * @returns {Object} Returns `object`.
  4650. */(e,N)}else{var I=Ue(e),O=I==u||I==l;if(Ye(e))
  4651. /**
  4652. * Creates a clone of `buffer`.
  4653. *
  4654. * @private
  4655. * @param {Buffer} buffer The buffer to clone.
  4656. * @param {boolean} [isDeep] Specify a deep clone.
  4657. * @returns {Buffer} Returns the cloned buffer.
  4658. */
  4659. return function(e,t){if(t)return e.slice();var r=new e.constructor(e.length);return e.copy(r),r}
  4660. /**
  4661. * Creates a clone of `arrayBuffer`.
  4662. *
  4663. * @private
  4664. * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
  4665. * @returns {ArrayBuffer} Returns the cloned array buffer.
  4666. */(e,t);if(I==f||I==i||O&&!h){if(X(e))return h?e:{};if(N=function(e){return"function"!=typeof e.constructor||qe(e)?{}:(t=ie(e),Ge(t)?oe(t):{});
  4667. /**
  4668. * The base implementation of `_.create` without support for assigning
  4669. * properties to the created object.
  4670. *
  4671. * @private
  4672. * @param {Object} prototype The object to inherit from.
  4673. * @returns {Object} Returns the new object.
  4674. */
  4675. var t;
  4676. /**
  4677. * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
  4678. * `keysFunc` and `symbolsFunc` to get the enumerable property names and
  4679. * symbols of `object`.
  4680. *
  4681. * @private
  4682. * @param {Object} object The object to query.
  4683. * @param {Function} keysFunc The function to get the keys of `object`.
  4684. * @param {Function} symbolsFunc The function to get the symbols of `object`.
  4685. * @returns {Array} Returns the array of property names and symbols.
  4686. */}
  4687. /**
  4688. * Initializes an object clone based on its `toStringTag`.
  4689. *
  4690. * **Note:** This function only supports cloning values with tags of
  4691. * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
  4692. *
  4693. * @private
  4694. * @param {Object} object The object to clone.
  4695. * @param {string} tag The `toStringTag` of the object to clone.
  4696. * @param {Function} cloneFunc The function to clone values.
  4697. * @param {boolean} [isDeep] Specify a deep clone.
  4698. * @returns {Object} Returns the initialized clone.
  4699. */(O?{}:e),!t)
  4700. /**
  4701. * Copies own symbol properties of `source` to `object`.
  4702. *
  4703. * @private
  4704. * @param {Object} source The object to copy symbols from.
  4705. * @param {Object} [object={}] The object to copy symbols to.
  4706. * @returns {Object} Returns `object`.
  4707. */
  4708. return function(e,t){return Oe(e,Ve(e),t)}
  4709. /**
  4710. * Creates an array of own enumerable property names and symbols of `object`.
  4711. *
  4712. * @private
  4713. * @param {Object} object The object to query.
  4714. * @returns {Array} Returns the array of property names and symbols.
  4715. */(e,function(e,t){return e&&Oe(t,Je(t),e)}(N,e))}else{if(!j[I])return h?e:{};N=function(e,t,r,n){var a=e.constructor;switch(t){case b:return Ie(e);case o:case s:return new a(+e);case w:
  4716. /**
  4717. * Creates a clone of `dataView`.
  4718. *
  4719. * @private
  4720. * @param {Object} dataView The data view to clone.
  4721. * @param {boolean} [isDeep] Specify a deep clone.
  4722. * @returns {Object} Returns the cloned data view.
  4723. */
  4724. return function(e,t){var r=t?Ie(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}
  4725. /**
  4726. * Creates a clone of `map`.
  4727. *
  4728. * @private
  4729. * @param {Object} map The map to clone.
  4730. * @param {Function} cloneFunc The function to clone values.
  4731. * @param {boolean} [isDeep] Specify a deep clone.
  4732. * @returns {Object} Returns the cloned map.
  4733. */(e,n);case S:case L:case E:case M:case k:case x:case T:case F:case P:
  4734. /**
  4735. * Creates a clone of `typedArray`.
  4736. *
  4737. * @private
  4738. * @param {Object} typedArray The typed array to clone.
  4739. * @param {boolean} [isDeep] Specify a deep clone.
  4740. * @returns {Object} Returns the cloned typed array.
  4741. */
  4742. return function(e,t){var r=t?Ie(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}(e,n);case c:return function(e,t,r){var n=t?r(Z(e),!0):Z(e);return K(n,A,new e.constructor)}
  4743. /**
  4744. * Creates a clone of `regexp`.
  4745. *
  4746. * @private
  4747. * @param {Object} regexp The regexp to clone.
  4748. * @returns {Object} Returns the cloned regexp.
  4749. */(e,n,r);case d:case m:return new a(e);case p:return function(e){var t=new e.constructor(e.source,C.exec(e));return t.lastIndex=e.lastIndex,t}
  4750. /**
  4751. * Creates a clone of `set`.
  4752. *
  4753. * @private
  4754. * @param {Object} set The set to clone.
  4755. * @param {Function} cloneFunc The function to clone values.
  4756. * @param {boolean} [isDeep] Specify a deep clone.
  4757. * @returns {Object} Returns the cloned set.
  4758. */(e);case y:return function(e,t,r){var n=t?r(Y(e),!0):Y(e);return K(n,q,new e.constructor)}
  4759. /**
  4760. * Creates a clone of the `symbol` object.
  4761. *
  4762. * @private
  4763. * @param {Object} symbol The symbol object to clone.
  4764. * @returns {Object} Returns the cloned symbol object.
  4765. */(e,n,r);case v:return i=e,Me?Object(Me.call(i)):{}}var i}
  4766. /**
  4767. * Checks if `value` is a valid array-like index.
  4768. *
  4769. * @private
  4770. * @param {*} value The value to check.
  4771. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
  4772. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
  4773. */(e,I,We,t)}}
  4774. // Check for circular references and return its corresponding clone.
  4775. g||(g=new Fe);var D=g.get(e);if(D)return D;if(g.set(e,N),!W)var R=r?function(e){return function(e,t,r){var n=t(e);return Ze(e)?n:
  4776. /**
  4777. * Appends the elements of `values` to `array`.
  4778. *
  4779. * @private
  4780. * @param {Array} array The array to modify.
  4781. * @param {Array} values The values to append.
  4782. * @returns {Array} Returns `array`.
  4783. */
  4784. function(e,t){for(var r=-1,n=t.length,a=e.length;++r<n;)e[a+r]=t[r];return e}(n,r(e))}
  4785. /**
  4786. * The base implementation of `getTag`.
  4787. *
  4788. * @private
  4789. * @param {*} value The value to query.
  4790. * @returns {string} Returns the `toStringTag`.
  4791. */(e,Je,Ve)}
  4792. /**
  4793. * Gets the data for `map`.
  4794. *
  4795. * @private
  4796. * @param {Object} map The map to query.
  4797. * @param {string} key The reference key.
  4798. * @returns {*} Returns the map data.
  4799. */(e):Je(e);return function(e,t){for(var r=-1,n=e?e.length:0;++r<n&&!1!==t(e[r],r,e););}(R||e,(function(a,i){R&&(a=e[i=a]),
  4800. // Recursively populate clone (susceptible to call stack limits).
  4801. Ce(N,i,We(a,t,r,n,i,e,g))})),N}
  4802. /**
  4803. * The base implementation of `_.isNative` without bad shim checks.
  4804. *
  4805. * @private
  4806. * @param {*} value The value to check.
  4807. * @returns {boolean} Returns `true` if `value` is a native function,
  4808. * else `false`.
  4809. */
  4810. function je(e){return!(!Ge(e)||(t=e,Q&&Q in t))&&(Be(e)||X(e)?te:N).test(Ke(e));
  4811. /**
  4812. * Checks if `func` has its source masked.
  4813. *
  4814. * @private
  4815. * @param {Function} func The function to check.
  4816. * @returns {boolean} Returns `true` if `func` is masked, else `false`.
  4817. */
  4818. var t;
  4819. /**
  4820. * Checks if `value` is likely a prototype object.
  4821. *
  4822. * @private
  4823. * @param {*} value The value to check.
  4824. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
  4825. */}
  4826. /**
  4827. * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
  4828. *
  4829. * @private
  4830. * @param {Object} object The object to query.
  4831. * @returns {Array} Returns the array of property names.
  4832. */function Ie(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Oe(e,t,r,n){r||(r={});for(var a=-1,i=t.length;++a<i;){var o=t[a],s=n?n(r[o],e[o],o,r,e):void 0;Ce(r,o,void 0===s?e[o]:s)}return r}function De(e,t){var r=e.__data__;
  4833. /**
  4834. * Checks if `value` is suitable for use as unique object key.
  4835. *
  4836. * @private
  4837. * @param {*} value The value to check.
  4838. * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
  4839. */
  4840. return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?r["string"==typeof t?"string":"hash"]:r.map}
  4841. /**
  4842. * Gets the native function at `key` of `object`.
  4843. *
  4844. * @private
  4845. * @param {Object} object The object to query.
  4846. * @param {string} key The key of the method to get.
  4847. * @returns {*} Returns the function if it's native, else `undefined`.
  4848. */function Re(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return je(r)?r:void 0}
  4849. /**
  4850. * Creates an array of the own enumerable symbol properties of `object`.
  4851. *
  4852. * @private
  4853. * @param {Object} object The object to query.
  4854. * @returns {Array} Returns the array of symbols.
  4855. */
  4856. // Add methods to `Hash`.
  4857. ke.prototype.clear=function(){this.__data__=ve?ve(null):{}}
  4858. /**
  4859. * Removes `key` and its value from the hash.
  4860. *
  4861. * @private
  4862. * @name delete
  4863. * @memberOf Hash
  4864. * @param {Object} hash The hash to modify.
  4865. * @param {string} key The key of the value to remove.
  4866. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  4867. */,ke.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]}
  4868. /**
  4869. * Gets the hash value for `key`.
  4870. *
  4871. * @private
  4872. * @name get
  4873. * @memberOf Hash
  4874. * @param {string} key The key of the value to get.
  4875. * @returns {*} Returns the entry value.
  4876. */,ke.prototype.get=function(e){var t=this.__data__;if(ve){var r=t[e];return r===n?void 0:r}return $.call(t,e)?t[e]:void 0}
  4877. /**
  4878. * Checks if a hash value for `key` exists.
  4879. *
  4880. * @private
  4881. * @name has
  4882. * @memberOf Hash
  4883. * @param {string} key The key of the entry to check.
  4884. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  4885. */,ke.prototype.has=function(e){var t=this.__data__;return ve?void 0!==t[e]:$.call(t,e)}
  4886. /**
  4887. * Sets the hash `key` to `value`.
  4888. *
  4889. * @private
  4890. * @name set
  4891. * @memberOf Hash
  4892. * @param {string} key The key of the value to set.
  4893. * @param {*} value The value to set.
  4894. * @returns {Object} Returns the hash instance.
  4895. */,ke.prototype.set=function(e,t){return this.__data__[e]=ve&&void 0===t?n:t,this},
  4896. // Add methods to `ListCache`.
  4897. xe.prototype.clear=function(){this.__data__=[]}
  4898. /**
  4899. * Removes `key` and its value from the list cache.
  4900. *
  4901. * @private
  4902. * @name delete
  4903. * @memberOf ListCache
  4904. * @param {string} key The key of the value to remove.
  4905. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  4906. */,xe.prototype.delete=function(e){var t=this.__data__,r=Ne(t,e);return!(r<0)&&(r==t.length-1?t.pop():ue.call(t,r,1),!0)}
  4907. /**
  4908. * Gets the list cache value for `key`.
  4909. *
  4910. * @private
  4911. * @name get
  4912. * @memberOf ListCache
  4913. * @param {string} key The key of the value to get.
  4914. * @returns {*} Returns the entry value.
  4915. */,xe.prototype.get=function(e){var t=this.__data__,r=Ne(t,e);return r<0?void 0:t[r][1]}
  4916. /**
  4917. * Checks if a list cache value for `key` exists.
  4918. *
  4919. * @private
  4920. * @name has
  4921. * @memberOf ListCache
  4922. * @param {string} key The key of the entry to check.
  4923. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  4924. */,xe.prototype.has=function(e){return Ne(this.__data__,e)>-1}
  4925. /**
  4926. * Sets the list cache `key` to `value`.
  4927. *
  4928. * @private
  4929. * @name set
  4930. * @memberOf ListCache
  4931. * @param {string} key The key of the value to set.
  4932. * @param {*} value The value to set.
  4933. * @returns {Object} Returns the list cache instance.
  4934. */,xe.prototype.set=function(e,t){var r=this.__data__,n=Ne(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},
  4935. // Add methods to `MapCache`.
  4936. Te.prototype.clear=function(){this.__data__={hash:new ke,map:new(he||xe),string:new ke}}
  4937. /**
  4938. * Removes `key` and its value from the map.
  4939. *
  4940. * @private
  4941. * @name delete
  4942. * @memberOf MapCache
  4943. * @param {string} key The key of the value to remove.
  4944. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  4945. */,Te.prototype.delete=function(e){return De(this,e).delete(e)}
  4946. /**
  4947. * Gets the map value for `key`.
  4948. *
  4949. * @private
  4950. * @name get
  4951. * @memberOf MapCache
  4952. * @param {string} key The key of the value to get.
  4953. * @returns {*} Returns the entry value.
  4954. */,Te.prototype.get=function(e){return De(this,e).get(e)}
  4955. /**
  4956. * Checks if a map value for `key` exists.
  4957. *
  4958. * @private
  4959. * @name has
  4960. * @memberOf MapCache
  4961. * @param {string} key The key of the entry to check.
  4962. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  4963. */,Te.prototype.has=function(e){return De(this,e).has(e)}
  4964. /**
  4965. * Sets the map `key` to `value`.
  4966. *
  4967. * @private
  4968. * @name set
  4969. * @memberOf MapCache
  4970. * @param {string} key The key of the value to set.
  4971. * @param {*} value The value to set.
  4972. * @returns {Object} Returns the map cache instance.
  4973. */,Te.prototype.set=function(e,t){return De(this,e).set(e,t),this},
  4974. // Add methods to `Stack`.
  4975. Fe.prototype.clear=function(){this.__data__=new xe}
  4976. /**
  4977. * Removes `key` and its value from the stack.
  4978. *
  4979. * @private
  4980. * @name delete
  4981. * @memberOf Stack
  4982. * @param {string} key The key of the value to remove.
  4983. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  4984. */,Fe.prototype.delete=function(e){return this.__data__.delete(e)}
  4985. /**
  4986. * Gets the stack value for `key`.
  4987. *
  4988. * @private
  4989. * @name get
  4990. * @memberOf Stack
  4991. * @param {string} key The key of the value to get.
  4992. * @returns {*} Returns the entry value.
  4993. */,Fe.prototype.get=function(e){return this.__data__.get(e)}
  4994. /**
  4995. * Checks if a stack value for `key` exists.
  4996. *
  4997. * @private
  4998. * @name has
  4999. * @memberOf Stack
  5000. * @param {string} key The key of the entry to check.
  5001. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  5002. */,Fe.prototype.has=function(e){return this.__data__.has(e)}
  5003. /**
  5004. * Sets the stack `key` to `value`.
  5005. *
  5006. * @private
  5007. * @name set
  5008. * @memberOf Stack
  5009. * @param {string} key The key of the value to set.
  5010. * @param {*} value The value to set.
  5011. * @returns {Object} Returns the stack cache instance.
  5012. */,Fe.prototype.set=function(e,t){var r=this.__data__;if(r instanceof xe){var n=r.__data__;if(!he||n.length<199)return n.push([e,t]),this;r=this.__data__=new Te(n)}return r.set(e,t),this};var Ve=le?z(le,Object):
  5013. /**
  5014. * This method returns a new empty array.
  5015. *
  5016. * @static
  5017. * @memberOf _
  5018. * @since 4.13.0
  5019. * @category Util
  5020. * @returns {Array} Returns the new empty array.
  5021. * @example
  5022. *
  5023. * var arrays = _.times(2, _.stubArray);
  5024. *
  5025. * console.log(arrays);
  5026. * // => [[], []]
  5027. *
  5028. * console.log(arrays[0] === arrays[1]);
  5029. * // => false
  5030. */
  5031. function(){return[]}
  5032. /**
  5033. * This method returns `false`.
  5034. *
  5035. * @static
  5036. * @memberOf _
  5037. * @since 4.13.0
  5038. * @category Util
  5039. * @returns {boolean} Returns `false`.
  5040. * @example
  5041. *
  5042. * _.times(2, _.stubFalse);
  5043. * // => [false, false]
  5044. */,Ue=function(e){return ee.call(e)};
  5045. /**
  5046. * Gets the `toStringTag` of `value`.
  5047. *
  5048. * @private
  5049. * @param {*} value The value to query.
  5050. * @returns {string} Returns the `toStringTag`.
  5051. */function Ae(e,t){return!!(t=null==t?a:t)&&("number"==typeof e||W.test(e))&&e>-1&&e%1==0&&e<t}function qe(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||J)}
  5052. /**
  5053. * Converts `func` to its source code.
  5054. *
  5055. * @private
  5056. * @param {Function} func The function to process.
  5057. * @returns {string} Returns the source code.
  5058. */function Ke(e){if(null!=e){try{return _.call(e)}catch(t){}try{return e+""}catch(t){}}return""}
  5059. /**
  5060. * This method is like `_.clone` except that it recursively clones `value`.
  5061. *
  5062. * @static
  5063. * @memberOf _
  5064. * @since 1.0.0
  5065. * @category Lang
  5066. * @param {*} value The value to recursively clone.
  5067. * @returns {*} Returns the deep cloned value.
  5068. * @see _.clone
  5069. * @example
  5070. *
  5071. * var objects = [{ 'a': 1 }, { 'b': 2 }];
  5072. *
  5073. * var deep = _.cloneDeep(objects);
  5074. * console.log(deep[0] === objects[0]);
  5075. * // => false
  5076. */
  5077. /**
  5078. * Performs a
  5079. * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
  5080. * comparison between two values to determine if they are equivalent.
  5081. *
  5082. * @static
  5083. * @memberOf _
  5084. * @since 4.0.0
  5085. * @category Lang
  5086. * @param {*} value The value to compare.
  5087. * @param {*} other The other value to compare.
  5088. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  5089. * @example
  5090. *
  5091. * var object = { 'a': 1 };
  5092. * var other = { 'a': 1 };
  5093. *
  5094. * _.eq(object, object);
  5095. * // => true
  5096. *
  5097. * _.eq(object, other);
  5098. * // => false
  5099. *
  5100. * _.eq('a', 'a');
  5101. * // => true
  5102. *
  5103. * _.eq('a', Object('a'));
  5104. * // => false
  5105. *
  5106. * _.eq(NaN, NaN);
  5107. * // => true
  5108. */
  5109. function Xe(e,t){return e===t||e!==e&&t!==t}
  5110. // Fallback for data views, maps, sets, and weak maps in IE 11,
  5111. // for data views in Edge < 14, and promises in Node.js.
  5112. (fe&&Ue(new fe(new ArrayBuffer(1)))!=w||he&&Ue(new he)!=c||pe&&Ue(pe.resolve())!=h||ye&&Ue(new ye)!=y||me&&Ue(new me)!=g)&&(Ue=function(e){var t=ee.call(e),r=t==f?e.constructor:void 0,n=r?Ke(r):void 0;if(n)switch(n){case ge:return w;case be:return c;case we:return h;case Se:return y;case Le:return g}return t});var Ze=Array.isArray;
  5113. /**
  5114. * Checks if `value` is array-like. A value is considered array-like if it's
  5115. * not a function and has a `value.length` that's an integer greater than or
  5116. * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
  5117. *
  5118. * @static
  5119. * @memberOf _
  5120. * @since 4.0.0
  5121. * @category Lang
  5122. * @param {*} value The value to check.
  5123. * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
  5124. * @example
  5125. *
  5126. * _.isArrayLike([1, 2, 3]);
  5127. * // => true
  5128. *
  5129. * _.isArrayLike(document.body.children);
  5130. * // => true
  5131. *
  5132. * _.isArrayLike('abc');
  5133. * // => true
  5134. *
  5135. * _.isArrayLike(_.noop);
  5136. * // => false
  5137. */function ze(e){return null!=e&&
  5138. /**
  5139. * Checks if `value` is a valid array-like length.
  5140. *
  5141. * **Note:** This method is loosely based on
  5142. * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
  5143. *
  5144. * @static
  5145. * @memberOf _
  5146. * @since 4.0.0
  5147. * @category Lang
  5148. * @param {*} value The value to check.
  5149. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
  5150. * @example
  5151. *
  5152. * _.isLength(3);
  5153. * // => true
  5154. *
  5155. * _.isLength(Number.MIN_VALUE);
  5156. * // => false
  5157. *
  5158. * _.isLength(Infinity);
  5159. * // => false
  5160. *
  5161. * _.isLength('3');
  5162. * // => false
  5163. */
  5164. function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=a}
  5165. /**
  5166. * Checks if `value` is the
  5167. * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
  5168. * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
  5169. *
  5170. * @static
  5171. * @memberOf _
  5172. * @since 0.1.0
  5173. * @category Lang
  5174. * @param {*} value The value to check.
  5175. * @returns {boolean} Returns `true` if `value` is an object, else `false`.
  5176. * @example
  5177. *
  5178. * _.isObject({});
  5179. * // => true
  5180. *
  5181. * _.isObject([1, 2, 3]);
  5182. * // => true
  5183. *
  5184. * _.isObject(_.noop);
  5185. * // => true
  5186. *
  5187. * _.isObject(null);
  5188. * // => false
  5189. */(e.length)&&!Be(e)}var Ye=ce||function(){return!1};
  5190. /**
  5191. * Checks if `value` is classified as a `Function` object.
  5192. *
  5193. * @static
  5194. * @memberOf _
  5195. * @since 0.1.0
  5196. * @category Lang
  5197. * @param {*} value The value to check.
  5198. * @returns {boolean} Returns `true` if `value` is a function, else `false`.
  5199. * @example
  5200. *
  5201. * _.isFunction(_);
  5202. * // => true
  5203. *
  5204. * _.isFunction(/abc/);
  5205. * // => false
  5206. */function Be(e){
  5207. // The use of `Object#toString` avoids issues with the `typeof` operator
  5208. // in Safari 8-9 which returns 'object' for typed array and other constructors.
  5209. var t=Ge(e)?ee.call(e):"";return t==u||t==l}function Ge(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Je(e){return ze(e)?Pe(e):function(e){if(!qe(e))return de(e);var t=[];for(var r in Object(e))$.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}e.exports=function(e){return We(e,!0,!0)}},
  5210. /***/1296:
  5211. /***/function(e,t,r){
  5212. /**
  5213. * lodash (Custom Build) <https://lodash.com/>
  5214. * Build: `lodash modularize exports="npm" -o ./`
  5215. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  5216. * Released under MIT license <https://lodash.com/license>
  5217. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  5218. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  5219. */
  5220. /** Used as the `TypeError` message for "Functions" methods. */
  5221. var n=NaN,a="[object Symbol]",i=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt,c="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,d="object"==typeof self&&self&&self.Object===Object&&self,f=c||d||Function("return this")(),h=Object.prototype.toString,p=Math.max,y=Math.min,m=function(){return f.Date.now()};
  5222. /** Used as references for various `Number` constants. */
  5223. /**
  5224. * Checks if `value` is the
  5225. * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
  5226. * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
  5227. *
  5228. * @static
  5229. * @memberOf _
  5230. * @since 0.1.0
  5231. * @category Lang
  5232. * @param {*} value The value to check.
  5233. * @returns {boolean} Returns `true` if `value` is an object, else `false`.
  5234. * @example
  5235. *
  5236. * _.isObject({});
  5237. * // => true
  5238. *
  5239. * _.isObject([1, 2, 3]);
  5240. * // => true
  5241. *
  5242. * _.isObject(_.noop);
  5243. * // => true
  5244. *
  5245. * _.isObject(null);
  5246. * // => false
  5247. */
  5248. function v(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}
  5249. /**
  5250. * Checks if `value` is object-like. A value is object-like if it's not `null`
  5251. * and has a `typeof` result of "object".
  5252. *
  5253. * @static
  5254. * @memberOf _
  5255. * @since 4.0.0
  5256. * @category Lang
  5257. * @param {*} value The value to check.
  5258. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  5259. * @example
  5260. *
  5261. * _.isObjectLike({});
  5262. * // => true
  5263. *
  5264. * _.isObjectLike([1, 2, 3]);
  5265. * // => true
  5266. *
  5267. * _.isObjectLike(_.noop);
  5268. * // => false
  5269. *
  5270. * _.isObjectLike(null);
  5271. * // => false
  5272. */
  5273. /**
  5274. * Converts `value` to a number.
  5275. *
  5276. * @static
  5277. * @memberOf _
  5278. * @since 4.0.0
  5279. * @category Lang
  5280. * @param {*} value The value to process.
  5281. * @returns {number} Returns the number.
  5282. * @example
  5283. *
  5284. * _.toNumber(3.2);
  5285. * // => 3.2
  5286. *
  5287. * _.toNumber(Number.MIN_VALUE);
  5288. * // => 5e-324
  5289. *
  5290. * _.toNumber(Infinity);
  5291. * // => Infinity
  5292. *
  5293. * _.toNumber('3.2');
  5294. * // => 3.2
  5295. */
  5296. function g(e){if("number"==typeof e)return e;if(
  5297. /**
  5298. * Checks if `value` is classified as a `Symbol` primitive or object.
  5299. *
  5300. * @static
  5301. * @memberOf _
  5302. * @since 4.0.0
  5303. * @category Lang
  5304. * @param {*} value The value to check.
  5305. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  5306. * @example
  5307. *
  5308. * _.isSymbol(Symbol.iterator);
  5309. * // => true
  5310. *
  5311. * _.isSymbol('abc');
  5312. * // => false
  5313. */
  5314. function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&h.call(e)==a}(e))return n;if(v(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=v(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var r=s.test(e);return r||u.test(e)?l(e.slice(2),r?2:8):o.test(e)?n:+e}e.exports=
  5315. /**
  5316. * Creates a debounced function that delays invoking `func` until after `wait`
  5317. * milliseconds have elapsed since the last time the debounced function was
  5318. * invoked. The debounced function comes with a `cancel` method to cancel
  5319. * delayed `func` invocations and a `flush` method to immediately invoke them.
  5320. * Provide `options` to indicate whether `func` should be invoked on the
  5321. * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
  5322. * with the last arguments provided to the debounced function. Subsequent
  5323. * calls to the debounced function return the result of the last `func`
  5324. * invocation.
  5325. *
  5326. * **Note:** If `leading` and `trailing` options are `true`, `func` is
  5327. * invoked on the trailing edge of the timeout only if the debounced function
  5328. * is invoked more than once during the `wait` timeout.
  5329. *
  5330. * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
  5331. * until to the next tick, similar to `setTimeout` with a timeout of `0`.
  5332. *
  5333. * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
  5334. * for details over the differences between `_.debounce` and `_.throttle`.
  5335. *
  5336. * @static
  5337. * @memberOf _
  5338. * @since 0.1.0
  5339. * @category Function
  5340. * @param {Function} func The function to debounce.
  5341. * @param {number} [wait=0] The number of milliseconds to delay.
  5342. * @param {Object} [options={}] The options object.
  5343. * @param {boolean} [options.leading=false]
  5344. * Specify invoking on the leading edge of the timeout.
  5345. * @param {number} [options.maxWait]
  5346. * The maximum time `func` is allowed to be delayed before it's invoked.
  5347. * @param {boolean} [options.trailing=true]
  5348. * Specify invoking on the trailing edge of the timeout.
  5349. * @returns {Function} Returns the new debounced function.
  5350. * @example
  5351. *
  5352. * // Avoid costly calculations while the window size is in flux.
  5353. * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
  5354. *
  5355. * // Invoke `sendMail` when clicked, debouncing subsequent calls.
  5356. * jQuery(element).on('click', _.debounce(sendMail, 300, {
  5357. * 'leading': true,
  5358. * 'trailing': false
  5359. * }));
  5360. *
  5361. * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
  5362. * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
  5363. * var source = new EventSource('/stream');
  5364. * jQuery(source).on('message', debounced);
  5365. *
  5366. * // Cancel the trailing debounced invocation.
  5367. * jQuery(window).on('popstate', debounced.cancel);
  5368. */
  5369. function(e,t,r){var n,a,i,o,s,u,l=0,c=!1,d=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var r=n,i=a;return n=a=void 0,l=t,o=e.apply(i,r)}function b(e){var r=e-u;
  5370. // Either this is the first call, activity has stopped and we're at the
  5371. // trailing edge, the system time has gone backwards and we're treating
  5372. // it as the trailing edge, or we've hit the `maxWait` limit.
  5373. return void 0===u||r>=t||r<0||d&&e-l>=i}function w(){var e=m();if(b(e))return S(e);
  5374. // Restart the timer.
  5375. s=setTimeout(w,function(e){var r=t-(e-u);return d?y(r,i-(e-l)):r}(e))}function S(e){
  5376. // Only invoke if we have `lastArgs` which means `func` has been
  5377. // debounced at least once.
  5378. return s=void 0,f&&n?h(e):(n=a=void 0,o)}function L(){var e=m(),r=b(e);if(n=arguments,a=this,u=e,r){if(void 0===s)return function(e){
  5379. // Invoke the leading edge.
  5380. // Reset any `maxWait` timer.
  5381. return l=e,
  5382. // Start the timer for the trailing edge.
  5383. s=setTimeout(w,t),c?h(e):o}(u);if(d)
  5384. // Handle invocations in a tight loop.
  5385. return s=setTimeout(w,t),h(u)}return void 0===s&&(s=setTimeout(w,t)),o}return t=g(t)||0,v(r)&&(c=!!r.leading,i=(d="maxWait"in r)?p(g(r.maxWait)||0,t):i,f="trailing"in r?!!r.trailing:f),L.cancel=function(){void 0!==s&&clearTimeout(s),l=0,n=u=a=s=void 0},L.flush=function(){return void 0===s?o:S(m())},L}},
  5386. /***/9208:
  5387. /***/function(e,t,r){
  5388. /**
  5389. * lodash (Custom Build) <https://lodash.com/>
  5390. * Build: `lodash modularize exports="npm" -o ./`
  5391. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  5392. * Released under MIT license <https://lodash.com/license>
  5393. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  5394. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  5395. */
  5396. /** Used as the `TypeError` message for "Functions" methods. */
  5397. var n="__lodash_hash_undefined__",a=1/0,i="[object Function]",o="[object GeneratorFunction]",s="[object Symbol]",u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,l=/^\w*$/,c=/^\./,d=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,f=/\\(\\)?/g,h=/^\[object .+?Constructor\]$/,p="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,y="object"==typeof self&&self&&self.Object===Object&&self,m=p||y||Function("return this")();
  5398. /** Used to stand-in for `undefined` hash values. */
  5399. /** Used for built-in method references. */
  5400. var v=Array.prototype,g=Function.prototype,b=Object.prototype,w=m["__core-js_shared__"],S=function(){var e=/[^.]+$/.exec(w&&w.keys&&w.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),L=g.toString,E=b.hasOwnProperty,M=b.toString,k=RegExp("^"+L.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),x=m.Symbol,T=v.splice,F=U(m,"Map"),P=U(Object,"create"),C=x?x.prototype:void 0,N=C?C.toString:void 0;
  5401. /** Used to detect overreaching core-js shims. */
  5402. /**
  5403. * Creates a hash object.
  5404. *
  5405. * @private
  5406. * @constructor
  5407. * @param {Array} [entries] The key-value pairs to cache.
  5408. */
  5409. function W(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5410. /**
  5411. * Removes all key-value entries from the hash.
  5412. *
  5413. * @private
  5414. * @name clear
  5415. * @memberOf Hash
  5416. */
  5417. /**
  5418. * Creates an list cache object.
  5419. *
  5420. * @private
  5421. * @constructor
  5422. * @param {Array} [entries] The key-value pairs to cache.
  5423. */
  5424. function j(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5425. /**
  5426. * Removes all key-value entries from the list cache.
  5427. *
  5428. * @private
  5429. * @name clear
  5430. * @memberOf ListCache
  5431. */
  5432. /**
  5433. * Creates a map cache object to store key-value pairs.
  5434. *
  5435. * @private
  5436. * @constructor
  5437. * @param {Array} [entries] The key-value pairs to cache.
  5438. */
  5439. function I(e){var t=-1,r=e?e.length:0;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5440. /**
  5441. * Removes all key-value entries from the map.
  5442. *
  5443. * @private
  5444. * @name clear
  5445. * @memberOf MapCache
  5446. */
  5447. /**
  5448. * Gets the index at which the `key` is found in `array` of key-value pairs.
  5449. *
  5450. * @private
  5451. * @param {Array} array The array to inspect.
  5452. * @param {*} key The key to search for.
  5453. * @returns {number} Returns the index of the matched value, else `-1`.
  5454. */
  5455. function O(e,t){for(var r,n,a=e.length;a--;)if((r=e[a][0])===(n=t)||r!==r&&n!==n)return a;return-1}
  5456. /**
  5457. * The base implementation of `_.get` without support for default values.
  5458. *
  5459. * @private
  5460. * @param {Object} object The object to query.
  5461. * @param {Array|string} path The path of the property to get.
  5462. * @returns {*} Returns the resolved value.
  5463. */function D(e,t){
  5464. /**
  5465. * Casts `value` to a path array if it's not one.
  5466. *
  5467. * @private
  5468. * @param {*} value The value to inspect.
  5469. * @returns {Array} Returns the cast property path array.
  5470. */
  5471. var r;
  5472. /**
  5473. * Gets the data for `map`.
  5474. *
  5475. * @private
  5476. * @param {Object} map The map to query.
  5477. * @param {string} key The reference key.
  5478. * @returns {*} Returns the map data.
  5479. */t=
  5480. /**
  5481. * Checks if `value` is a property name and not a property path.
  5482. *
  5483. * @private
  5484. * @param {*} value The value to check.
  5485. * @param {Object} [object] The object to query keys on.
  5486. * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
  5487. */
  5488. function(e,t){if(X(e))return!1;var r=typeof e;if("number"==r||"symbol"==r||"boolean"==r||null==e||z(e))return!0;return l.test(e)||!u.test(e)||null!=t&&e in Object(t)}
  5489. /**
  5490. * Checks if `value` is suitable for use as unique object key.
  5491. *
  5492. * @private
  5493. * @param {*} value The value to check.
  5494. * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
  5495. */(t,e)?[t]:X(r=t)?r:A(r);for(var n=0,a=t.length;null!=e&&n<a;)e=e[q(t[n++])];return n&&n==a?e:void 0}
  5496. /**
  5497. * The base implementation of `_.isNative` without bad shim checks.
  5498. *
  5499. * @private
  5500. * @param {*} value The value to check.
  5501. * @returns {boolean} Returns `true` if `value` is a native function,
  5502. * else `false`.
  5503. */function R(e){if(!Z(e)||(t=e,S&&S in t))return!1;
  5504. /**
  5505. * Checks if `func` has its source masked.
  5506. *
  5507. * @private
  5508. * @param {Function} func The function to check.
  5509. * @returns {boolean} Returns `true` if `func` is masked, else `false`.
  5510. */
  5511. var t,r=
  5512. /**
  5513. * Checks if `value` is classified as a `Function` object.
  5514. *
  5515. * @static
  5516. * @memberOf _
  5517. * @since 0.1.0
  5518. * @category Lang
  5519. * @param {*} value The value to check.
  5520. * @returns {boolean} Returns `true` if `value` is a function, else `false`.
  5521. * @example
  5522. *
  5523. * _.isFunction(_);
  5524. * // => true
  5525. *
  5526. * _.isFunction(/abc/);
  5527. * // => false
  5528. */
  5529. function(e){
  5530. // The use of `Object#toString` avoids issues with the `typeof` operator
  5531. // in Safari 8-9 which returns 'object' for typed array and other constructors.
  5532. var t=Z(e)?M.call(e):"";return t==i||t==o}
  5533. /**
  5534. * Checks if `value` is the
  5535. * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
  5536. * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
  5537. *
  5538. * @static
  5539. * @memberOf _
  5540. * @since 0.1.0
  5541. * @category Lang
  5542. * @param {*} value The value to check.
  5543. * @returns {boolean} Returns `true` if `value` is an object, else `false`.
  5544. * @example
  5545. *
  5546. * _.isObject({});
  5547. * // => true
  5548. *
  5549. * _.isObject([1, 2, 3]);
  5550. * // => true
  5551. *
  5552. * _.isObject(_.noop);
  5553. * // => true
  5554. *
  5555. * _.isObject(null);
  5556. * // => false
  5557. */(e)||
  5558. /**
  5559. * Checks if `value` is a host object in IE < 9.
  5560. *
  5561. * @private
  5562. * @param {*} value The value to check.
  5563. * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
  5564. */
  5565. function(e){
  5566. // Many host objects are `Object` objects that can coerce to strings
  5567. // despite having improperly defined `toString` methods.
  5568. var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(r){}return t}(e)?k:h;
  5569. /**
  5570. * Converts `string` to a property path array.
  5571. *
  5572. * @private
  5573. * @param {string} string The string to convert.
  5574. * @returns {Array} Returns the property path array.
  5575. */return r.test(
  5576. /**
  5577. * Converts `func` to its source code.
  5578. *
  5579. * @private
  5580. * @param {Function} func The function to process.
  5581. * @returns {string} Returns the source code.
  5582. */
  5583. function(e){if(null!=e){try{return L.call(e)}catch(t){}try{return e+""}catch(t){}}return""}
  5584. /**
  5585. * Creates a function that memoizes the result of `func`. If `resolver` is
  5586. * provided, it determines the cache key for storing the result based on the
  5587. * arguments provided to the memoized function. By default, the first argument
  5588. * provided to the memoized function is used as the map cache key. The `func`
  5589. * is invoked with the `this` binding of the memoized function.
  5590. *
  5591. * **Note:** The cache is exposed as the `cache` property on the memoized
  5592. * function. Its creation may be customized by replacing the `_.memoize.Cache`
  5593. * constructor with one whose instances implement the
  5594. * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
  5595. * method interface of `delete`, `get`, `has`, and `set`.
  5596. *
  5597. * @static
  5598. * @memberOf _
  5599. * @since 0.1.0
  5600. * @category Function
  5601. * @param {Function} func The function to have its output memoized.
  5602. * @param {Function} [resolver] The function to resolve the cache key.
  5603. * @returns {Function} Returns the new memoized function.
  5604. * @example
  5605. *
  5606. * var object = { 'a': 1, 'b': 2 };
  5607. * var other = { 'c': 3, 'd': 4 };
  5608. *
  5609. * var values = _.memoize(_.values);
  5610. * values(object);
  5611. * // => [1, 2]
  5612. *
  5613. * values(other);
  5614. * // => [3, 4]
  5615. *
  5616. * object.a = 2;
  5617. * values(object);
  5618. * // => [1, 2]
  5619. *
  5620. * // Modify the result cache.
  5621. * values.cache.set(object, ['a', 'b']);
  5622. * values(object);
  5623. * // => ['a', 'b']
  5624. *
  5625. * // Replace `_.memoize.Cache`.
  5626. * _.memoize.Cache = WeakMap;
  5627. */(e))}
  5628. /**
  5629. * The base implementation of `_.toString` which doesn't convert nullish
  5630. * values to empty strings.
  5631. *
  5632. * @private
  5633. * @param {*} value The value to process.
  5634. * @returns {string} Returns the string.
  5635. */function V(e,t){var r=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?r["string"==typeof t?"string":"hash"]:r.map}
  5636. /**
  5637. * Gets the native function at `key` of `object`.
  5638. *
  5639. * @private
  5640. * @param {Object} object The object to query.
  5641. * @param {string} key The key of the method to get.
  5642. * @returns {*} Returns the function if it's native, else `undefined`.
  5643. */function U(e,t){var r=
  5644. /**
  5645. * Gets the value at `key` of `object`.
  5646. *
  5647. * @private
  5648. * @param {Object} [object] The object to query.
  5649. * @param {string} key The key of the property to get.
  5650. * @returns {*} Returns the property value.
  5651. */
  5652. function(e,t){return null==e?void 0:e[t]}(e,t);return R(r)?r:void 0}
  5653. // Add methods to `Hash`.
  5654. W.prototype.clear=function(){this.__data__=P?P(null):{}}
  5655. /**
  5656. * Removes `key` and its value from the hash.
  5657. *
  5658. * @private
  5659. * @name delete
  5660. * @memberOf Hash
  5661. * @param {Object} hash The hash to modify.
  5662. * @param {string} key The key of the value to remove.
  5663. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  5664. */,W.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]}
  5665. /**
  5666. * Gets the hash value for `key`.
  5667. *
  5668. * @private
  5669. * @name get
  5670. * @memberOf Hash
  5671. * @param {string} key The key of the value to get.
  5672. * @returns {*} Returns the entry value.
  5673. */,W.prototype.get=function(e){var t=this.__data__;if(P){var r=t[e];return r===n?void 0:r}return E.call(t,e)?t[e]:void 0}
  5674. /**
  5675. * Checks if a hash value for `key` exists.
  5676. *
  5677. * @private
  5678. * @name has
  5679. * @memberOf Hash
  5680. * @param {string} key The key of the entry to check.
  5681. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  5682. */,W.prototype.has=function(e){var t=this.__data__;return P?void 0!==t[e]:E.call(t,e)}
  5683. /**
  5684. * Sets the hash `key` to `value`.
  5685. *
  5686. * @private
  5687. * @name set
  5688. * @memberOf Hash
  5689. * @param {string} key The key of the value to set.
  5690. * @param {*} value The value to set.
  5691. * @returns {Object} Returns the hash instance.
  5692. */,W.prototype.set=function(e,t){return this.__data__[e]=P&&void 0===t?n:t,this},
  5693. // Add methods to `ListCache`.
  5694. j.prototype.clear=function(){this.__data__=[]}
  5695. /**
  5696. * Removes `key` and its value from the list cache.
  5697. *
  5698. * @private
  5699. * @name delete
  5700. * @memberOf ListCache
  5701. * @param {string} key The key of the value to remove.
  5702. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  5703. */,j.prototype.delete=function(e){var t=this.__data__,r=O(t,e);return!(r<0)&&(r==t.length-1?t.pop():T.call(t,r,1),!0)}
  5704. /**
  5705. * Gets the list cache value for `key`.
  5706. *
  5707. * @private
  5708. * @name get
  5709. * @memberOf ListCache
  5710. * @param {string} key The key of the value to get.
  5711. * @returns {*} Returns the entry value.
  5712. */,j.prototype.get=function(e){var t=this.__data__,r=O(t,e);return r<0?void 0:t[r][1]}
  5713. /**
  5714. * Checks if a list cache value for `key` exists.
  5715. *
  5716. * @private
  5717. * @name has
  5718. * @memberOf ListCache
  5719. * @param {string} key The key of the entry to check.
  5720. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  5721. */,j.prototype.has=function(e){return O(this.__data__,e)>-1}
  5722. /**
  5723. * Sets the list cache `key` to `value`.
  5724. *
  5725. * @private
  5726. * @name set
  5727. * @memberOf ListCache
  5728. * @param {string} key The key of the value to set.
  5729. * @param {*} value The value to set.
  5730. * @returns {Object} Returns the list cache instance.
  5731. */,j.prototype.set=function(e,t){var r=this.__data__,n=O(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},
  5732. // Add methods to `MapCache`.
  5733. I.prototype.clear=function(){this.__data__={hash:new W,map:new(F||j),string:new W}}
  5734. /**
  5735. * Removes `key` and its value from the map.
  5736. *
  5737. * @private
  5738. * @name delete
  5739. * @memberOf MapCache
  5740. * @param {string} key The key of the value to remove.
  5741. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  5742. */,I.prototype.delete=function(e){return V(this,e).delete(e)}
  5743. /**
  5744. * Gets the map value for `key`.
  5745. *
  5746. * @private
  5747. * @name get
  5748. * @memberOf MapCache
  5749. * @param {string} key The key of the value to get.
  5750. * @returns {*} Returns the entry value.
  5751. */,I.prototype.get=function(e){return V(this,e).get(e)}
  5752. /**
  5753. * Checks if a map value for `key` exists.
  5754. *
  5755. * @private
  5756. * @name has
  5757. * @memberOf MapCache
  5758. * @param {string} key The key of the entry to check.
  5759. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  5760. */,I.prototype.has=function(e){return V(this,e).has(e)}
  5761. /**
  5762. * Sets the map `key` to `value`.
  5763. *
  5764. * @private
  5765. * @name set
  5766. * @memberOf MapCache
  5767. * @param {string} key The key of the value to set.
  5768. * @param {*} value The value to set.
  5769. * @returns {Object} Returns the map cache instance.
  5770. */,I.prototype.set=function(e,t){return V(this,e).set(e,t),this};var A=K((function(e){
  5771. /**
  5772. * Converts `value` to a string. An empty string is returned for `null`
  5773. * and `undefined` values. The sign of `-0` is preserved.
  5774. *
  5775. * @static
  5776. * @memberOf _
  5777. * @since 4.0.0
  5778. * @category Lang
  5779. * @param {*} value The value to process.
  5780. * @returns {string} Returns the string.
  5781. * @example
  5782. *
  5783. * _.toString(null);
  5784. * // => ''
  5785. *
  5786. * _.toString(-0);
  5787. * // => '-0'
  5788. *
  5789. * _.toString([1, 2, 3]);
  5790. * // => '1,2,3'
  5791. */
  5792. var t;
  5793. /**
  5794. * Gets the value at `path` of `object`. If the resolved value is
  5795. * `undefined`, the `defaultValue` is returned in its place.
  5796. *
  5797. * @static
  5798. * @memberOf _
  5799. * @since 3.7.0
  5800. * @category Object
  5801. * @param {Object} object The object to query.
  5802. * @param {Array|string} path The path of the property to get.
  5803. * @param {*} [defaultValue] The value returned for `undefined` resolved values.
  5804. * @returns {*} Returns the resolved value.
  5805. * @example
  5806. *
  5807. * var object = { 'a': [{ 'b': { 'c': 3 } }] };
  5808. *
  5809. * _.get(object, 'a[0].b.c');
  5810. * // => 3
  5811. *
  5812. * _.get(object, ['a', '0', 'b', 'c']);
  5813. * // => 3
  5814. *
  5815. * _.get(object, 'a.b.c', 'default');
  5816. * // => 'default'
  5817. */e=null==(t=e)?"":function(e){
  5818. // Exit early for strings to avoid a performance hit in some environments.
  5819. if("string"==typeof e)return e;if(z(e))return N?N.call(e):"";var t=e+"";return"0"==t&&1/e==-a?"-0":t}(t);var r=[];return c.test(e)&&r.push(""),e.replace(d,(function(e,t,n,a){r.push(n?a.replace(f,"$1"):t||e)})),r}));
  5820. /**
  5821. * Converts `value` to a string key if it's not a string or symbol.
  5822. *
  5823. * @private
  5824. * @param {*} value The value to inspect.
  5825. * @returns {string|symbol} Returns the key.
  5826. */function q(e){if("string"==typeof e||z(e))return e;var t=e+"";return"0"==t&&1/e==-a?"-0":t}function K(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,a=t?t.apply(this,n):n[0],i=r.cache;if(i.has(a))return i.get(a);var o=e.apply(this,n);return r.cache=i.set(a,o),o};return r.cache=new(K.Cache||I),r}
  5827. // Assign cache to `_.memoize`.
  5828. K.Cache=I;
  5829. /**
  5830. * Checks if `value` is classified as an `Array` object.
  5831. *
  5832. * @static
  5833. * @memberOf _
  5834. * @since 0.1.0
  5835. * @category Lang
  5836. * @param {*} value The value to check.
  5837. * @returns {boolean} Returns `true` if `value` is an array, else `false`.
  5838. * @example
  5839. *
  5840. * _.isArray([1, 2, 3]);
  5841. * // => true
  5842. *
  5843. * _.isArray(document.body.children);
  5844. * // => false
  5845. *
  5846. * _.isArray('abc');
  5847. * // => false
  5848. *
  5849. * _.isArray(_.noop);
  5850. * // => false
  5851. */
  5852. var X=Array.isArray;function Z(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}
  5853. /**
  5854. * Checks if `value` is object-like. A value is object-like if it's not `null`
  5855. * and has a `typeof` result of "object".
  5856. *
  5857. * @static
  5858. * @memberOf _
  5859. * @since 4.0.0
  5860. * @category Lang
  5861. * @param {*} value The value to check.
  5862. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  5863. * @example
  5864. *
  5865. * _.isObjectLike({});
  5866. * // => true
  5867. *
  5868. * _.isObjectLike([1, 2, 3]);
  5869. * // => true
  5870. *
  5871. * _.isObjectLike(_.noop);
  5872. * // => false
  5873. *
  5874. * _.isObjectLike(null);
  5875. * // => false
  5876. */
  5877. /**
  5878. * Checks if `value` is classified as a `Symbol` primitive or object.
  5879. *
  5880. * @static
  5881. * @memberOf _
  5882. * @since 4.0.0
  5883. * @category Lang
  5884. * @param {*} value The value to check.
  5885. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  5886. * @example
  5887. *
  5888. * _.isSymbol(Symbol.iterator);
  5889. * // => true
  5890. *
  5891. * _.isSymbol('abc');
  5892. * // => false
  5893. */
  5894. function z(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&M.call(e)==s}e.exports=function(e,t,r){var n=null==e?void 0:D(e,t);return void 0===n?r:n}},
  5895. /***/2307:
  5896. /***/function(e,t,r){
  5897. /* module decorator */e=r.nmd(e);
  5898. /**
  5899. * Lodash (Custom Build) <https://lodash.com/>
  5900. * Build: `lodash modularize exports="npm" -o ./`
  5901. * Copyright JS Foundation and other contributors <https://js.foundation/>
  5902. * Released under MIT license <https://lodash.com/license>
  5903. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  5904. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  5905. */
  5906. /** Used as the size to enable large array optimizations. */
  5907. var n="__lodash_hash_undefined__",a=1,i=2,o=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object AsyncFunction]",c="[object Boolean]",d="[object Date]",f="[object Error]",h="[object Function]",p="[object GeneratorFunction]",y="[object Map]",m="[object Number]",v="[object Null]",g="[object Object]",b="[object Promise]",w="[object Proxy]",S="[object RegExp]",L="[object Set]",E="[object String]",M="[object Symbol]",k="[object Undefined]",x="[object WeakMap]",T="[object ArrayBuffer]",F="[object DataView]",P=/^\[object .+?Constructor\]$/,C=/^(?:0|[1-9]\d*)$/,N={};
  5908. /** Used to stand-in for `undefined` hash values. */N["[object Float32Array]"]=N["[object Float64Array]"]=N["[object Int8Array]"]=N["[object Int16Array]"]=N["[object Int32Array]"]=N["[object Uint8Array]"]=N["[object Uint8ClampedArray]"]=N["[object Uint16Array]"]=N["[object Uint32Array]"]=!0,N[s]=N[u]=N[T]=N[c]=N[F]=N[d]=N[f]=N[h]=N[y]=N[m]=N[g]=N[S]=N[L]=N[E]=N[x]=!1;
  5909. /** Detect free variable `global` from Node.js. */
  5910. var W="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,j="object"==typeof self&&self&&self.Object===Object&&self,I=W||j||Function("return this")(),O=t&&!t.nodeType&&t,D=O&&e&&!e.nodeType&&e,R=D&&D.exports===O,V=R&&W.process,U=function(){try{return V&&V.binding&&V.binding("util")}catch(e){}}(),A=U&&U.isTypedArray;
  5911. /** Detect free variable `self`. */
  5912. /**
  5913. * A specialized version of `_.some` for arrays without support for iteratee
  5914. * shorthands.
  5915. *
  5916. * @private
  5917. * @param {Array} [array] The array to iterate over.
  5918. * @param {Function} predicate The function invoked per iteration.
  5919. * @returns {boolean} Returns `true` if any element passes the predicate check,
  5920. * else `false`.
  5921. */
  5922. function q(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}
  5923. /**
  5924. * The base implementation of `_.times` without support for iteratee shorthands
  5925. * or max array length checks.
  5926. *
  5927. * @private
  5928. * @param {number} n The number of times to invoke `iteratee`.
  5929. * @param {Function} iteratee The function invoked per iteration.
  5930. * @returns {Array} Returns the array of results.
  5931. */
  5932. /**
  5933. * Converts `map` to its key-value pairs.
  5934. *
  5935. * @private
  5936. * @param {Object} map The map to convert.
  5937. * @returns {Array} Returns the key-value pairs.
  5938. */
  5939. function K(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}
  5940. /**
  5941. * Creates a unary function that invokes `func` with its argument transformed.
  5942. *
  5943. * @private
  5944. * @param {Function} func The function to wrap.
  5945. * @param {Function} transform The argument transform.
  5946. * @returns {Function} Returns the new function.
  5947. */
  5948. /**
  5949. * Converts `set` to an array of its values.
  5950. *
  5951. * @private
  5952. * @param {Object} set The set to convert.
  5953. * @returns {Array} Returns the values.
  5954. */
  5955. function X(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}
  5956. /** Used for built-in method references. */var Z,z,Y=Array.prototype,B=Function.prototype,G=Object.prototype,J=I["__core-js_shared__"],H=B.toString,Q=G.hasOwnProperty,_=function(){var e=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),$=G.toString,ee=RegExp("^"+H.call(Q).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),te=R?I.Buffer:void 0,re=I.Symbol,ne=I.Uint8Array,ae=G.propertyIsEnumerable,ie=Y.splice,oe=re?re.toStringTag:void 0,se=Object.getOwnPropertySymbols,ue=te?te.isBuffer:void 0,le=(Z=Object.keys,z=Object,function(e){return Z(z(e))}),ce=Ve(I,"DataView"),de=Ve(I,"Map"),fe=Ve(I,"Promise"),he=Ve(I,"Set"),pe=Ve(I,"WeakMap"),ye=Ve(Object,"create"),me=Ke(ce),ve=Ke(de),ge=Ke(fe),be=Ke(he),we=Ke(pe),Se=re?re.prototype:void 0,Le=Se?Se.valueOf:void 0;
  5957. /** Used to detect overreaching core-js shims. */
  5958. /**
  5959. * Creates a hash object.
  5960. *
  5961. * @private
  5962. * @constructor
  5963. * @param {Array} [entries] The key-value pairs to cache.
  5964. */
  5965. function Ee(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5966. /**
  5967. * Removes all key-value entries from the hash.
  5968. *
  5969. * @private
  5970. * @name clear
  5971. * @memberOf Hash
  5972. */
  5973. /**
  5974. * Creates an list cache object.
  5975. *
  5976. * @private
  5977. * @constructor
  5978. * @param {Array} [entries] The key-value pairs to cache.
  5979. */
  5980. function Me(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5981. /**
  5982. * Removes all key-value entries from the list cache.
  5983. *
  5984. * @private
  5985. * @name clear
  5986. * @memberOf ListCache
  5987. */
  5988. /**
  5989. * Creates a map cache object to store key-value pairs.
  5990. *
  5991. * @private
  5992. * @constructor
  5993. * @param {Array} [entries] The key-value pairs to cache.
  5994. */
  5995. function ke(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}
  5996. /**
  5997. * Removes all key-value entries from the map.
  5998. *
  5999. * @private
  6000. * @name clear
  6001. * @memberOf MapCache
  6002. */
  6003. /**
  6004. *
  6005. * Creates an array cache object to store unique values.
  6006. *
  6007. * @private
  6008. * @constructor
  6009. * @param {Array} [values] The values to cache.
  6010. */
  6011. function xe(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new ke;++t<r;)this.add(e[t])}
  6012. /**
  6013. * Adds `value` to the array cache.
  6014. *
  6015. * @private
  6016. * @name add
  6017. * @memberOf SetCache
  6018. * @alias push
  6019. * @param {*} value The value to cache.
  6020. * @returns {Object} Returns the cache instance.
  6021. */
  6022. /**
  6023. * Creates a stack cache object to store key-value pairs.
  6024. *
  6025. * @private
  6026. * @constructor
  6027. * @param {Array} [entries] The key-value pairs to cache.
  6028. */
  6029. function Te(e){var t=this.__data__=new Me(e);this.size=t.size}
  6030. /**
  6031. * Removes all key-value entries from the stack.
  6032. *
  6033. * @private
  6034. * @name clear
  6035. * @memberOf Stack
  6036. */
  6037. /**
  6038. * Creates an array of the enumerable property names of the array-like `value`.
  6039. *
  6040. * @private
  6041. * @param {*} value The value to query.
  6042. * @param {boolean} inherited Specify returning inherited property names.
  6043. * @returns {Array} Returns the array of property names.
  6044. */
  6045. function Fe(e,t){var r=ze(e),n=!r&&Ze(e),a=!r&&!n&&Ye(e),i=!r&&!n&&!a&&Qe(e),o=r||n||a||i,s=o?function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}
  6046. /**
  6047. * The base implementation of `_.unary` without support for storing metadata.
  6048. *
  6049. * @private
  6050. * @param {Function} func The function to cap arguments for.
  6051. * @returns {Function} Returns the new capped function.
  6052. */(e.length,String):[],u=s.length;for(var l in e)!t&&!Q.call(e,l)||o&&(
  6053. // Safari 9 has enumerable `arguments.length` in strict mode.
  6054. "length"==l||
  6055. // Node.js 0.10 has enumerable non-index properties on buffers.
  6056. a&&("offset"==l||"parent"==l)||
  6057. // PhantomJS 2 has enumerable non-index properties on typed arrays.
  6058. i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||
  6059. // Skip index properties.
  6060. qe(l,u))||s.push(l);return s}
  6061. /**
  6062. * Gets the index at which the `key` is found in `array` of key-value pairs.
  6063. *
  6064. * @private
  6065. * @param {Array} array The array to inspect.
  6066. * @param {*} key The key to search for.
  6067. * @returns {number} Returns the index of the matched value, else `-1`.
  6068. */function Pe(e,t){for(var r=e.length;r--;)if(Xe(e[r][0],t))return r;return-1}
  6069. /**
  6070. * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
  6071. * `keysFunc` and `symbolsFunc` to get the enumerable property names and
  6072. * symbols of `object`.
  6073. *
  6074. * @private
  6075. * @param {Object} object The object to query.
  6076. * @param {Function} keysFunc The function to get the keys of `object`.
  6077. * @param {Function} symbolsFunc The function to get the symbols of `object`.
  6078. * @returns {Array} Returns the array of property names and symbols.
  6079. */
  6080. /**
  6081. * The base implementation of `getTag` without fallbacks for buggy environments.
  6082. *
  6083. * @private
  6084. * @param {*} value The value to query.
  6085. * @returns {string} Returns the `toStringTag`.
  6086. */
  6087. function Ce(e){return null==e?void 0===e?k:v:oe&&oe in Object(e)?
  6088. /**
  6089. * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
  6090. *
  6091. * @private
  6092. * @param {*} value The value to query.
  6093. * @returns {string} Returns the raw `toStringTag`.
  6094. */
  6095. function(e){var t=Q.call(e,oe),r=e[oe];try{e[oe]=void 0;var n=!0}catch(i){}var a=$.call(e);n&&(t?e[oe]=r:delete e[oe]);return a}
  6096. /**
  6097. * Creates an array of the own enumerable symbols of `object`.
  6098. *
  6099. * @private
  6100. * @param {Object} object The object to query.
  6101. * @returns {Array} Returns the array of symbols.
  6102. */(e):
  6103. /**
  6104. * Converts `value` to a string using `Object.prototype.toString`.
  6105. *
  6106. * @private
  6107. * @param {*} value The value to convert.
  6108. * @returns {string} Returns the converted string.
  6109. */
  6110. function(e){return $.call(e)}
  6111. /**
  6112. * Converts `func` to its source code.
  6113. *
  6114. * @private
  6115. * @param {Function} func The function to convert.
  6116. * @returns {string} Returns the source code.
  6117. */(e)}
  6118. /**
  6119. * The base implementation of `_.isArguments`.
  6120. *
  6121. * @private
  6122. * @param {*} value The value to check.
  6123. * @returns {boolean} Returns `true` if `value` is an `arguments` object,
  6124. */function Ne(e){return He(e)&&Ce(e)==s}
  6125. /**
  6126. * The base implementation of `_.isEqual` which supports partial comparisons
  6127. * and tracks traversed objects.
  6128. *
  6129. * @private
  6130. * @param {*} value The value to compare.
  6131. * @param {*} other The other value to compare.
  6132. * @param {boolean} bitmask The bitmask flags.
  6133. * 1 - Unordered comparison
  6134. * 2 - Partial comparison
  6135. * @param {Function} [customizer] The function to customize comparisons.
  6136. * @param {Object} [stack] Tracks traversed `value` and `other` objects.
  6137. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  6138. */function We(e,t,r,n,o){return e===t||(null==e||null==t||!He(e)&&!He(t)?e!==e&&t!==t:
  6139. /**
  6140. * A specialized version of `baseIsEqual` for arrays and objects which performs
  6141. * deep comparisons and tracks traversed objects enabling objects with circular
  6142. * references to be compared.
  6143. *
  6144. * @private
  6145. * @param {Object} object The object to compare.
  6146. * @param {Object} other The other object to compare.
  6147. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
  6148. * @param {Function} customizer The function to customize comparisons.
  6149. * @param {Function} equalFunc The function to determine equivalents of values.
  6150. * @param {Object} [stack] Tracks traversed `object` and `other` objects.
  6151. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
  6152. */
  6153. function(e,t,r,n,o,l){var h=ze(e),p=ze(t),v=h?u:Ae(e),b=p?u:Ae(t),w=(v=v==s?g:v)==g,k=(b=b==s?g:b)==g,x=v==b;if(x&&Ye(e)){if(!Ye(t))return!1;h=!0,w=!1}if(x&&!w)return l||(l=new Te),h||Qe(e)?Oe(e,t,r,n,o,l):
  6154. /**
  6155. * A specialized version of `baseIsEqualDeep` for comparing objects of
  6156. * the same `toStringTag`.
  6157. *
  6158. * **Note:** This function only supports comparing values with tags of
  6159. * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
  6160. *
  6161. * @private
  6162. * @param {Object} object The object to compare.
  6163. * @param {Object} other The other object to compare.
  6164. * @param {string} tag The `toStringTag` of the objects to compare.
  6165. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
  6166. * @param {Function} customizer The function to customize comparisons.
  6167. * @param {Function} equalFunc The function to determine equivalents of values.
  6168. * @param {Object} stack Tracks traversed `object` and `other` objects.
  6169. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
  6170. */
  6171. function(e,t,r,n,o,s,u){switch(r){case F:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case T:return!(e.byteLength!=t.byteLength||!s(new ne(e),new ne(t)));case c:case d:case m:
  6172. // Coerce booleans to `1` or `0` and dates to milliseconds.
  6173. // Invalid dates are coerced to `NaN`.
  6174. return Xe(+e,+t);case f:return e.name==t.name&&e.message==t.message;case S:case E:
  6175. // Coerce regexes to strings and treat strings, primitives and objects,
  6176. // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
  6177. // for more details.
  6178. return e==t+"";case y:var l=K;case L:var h=n&a;if(l||(l=X),e.size!=t.size&&!h)return!1;
  6179. // Assume cyclic values are equal.
  6180. var p=u.get(e);if(p)return p==t;n|=i,
  6181. // Recursively compare objects (susceptible to call stack limits).
  6182. u.set(e,t);var v=Oe(l(e),l(t),n,o,s,u);return u.delete(e),v;case M:if(Le)return Le.call(e)==Le.call(t)}return!1}
  6183. /**
  6184. * A specialized version of `baseIsEqualDeep` for objects with support for
  6185. * partial deep comparisons.
  6186. *
  6187. * @private
  6188. * @param {Object} object The object to compare.
  6189. * @param {Object} other The other object to compare.
  6190. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
  6191. * @param {Function} customizer The function to customize comparisons.
  6192. * @param {Function} equalFunc The function to determine equivalents of values.
  6193. * @param {Object} stack Tracks traversed `object` and `other` objects.
  6194. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
  6195. */(e,t,v,r,n,o,l);if(!(r&a)){var P=w&&Q.call(e,"__wrapped__"),C=k&&Q.call(t,"__wrapped__");if(P||C){var N=P?e.value():e,W=C?t.value():t;return l||(l=new Te),o(N,W,r,n,l)}}if(!x)return!1;return l||(l=new Te),function(e,t,r,n,i,o){var s=r&a,u=De(e),l=u.length,c=De(t),d=c.length;if(l!=d&&!s)return!1;var f=l;for(;f--;){var h=u[f];if(!(s?h in t:Q.call(t,h)))return!1}
  6196. // Assume cyclic values are equal.
  6197. var p=o.get(e);if(p&&o.get(t))return p==t;var y=!0;o.set(e,t),o.set(t,e);var m=s;for(;++f<l;){var v=e[h=u[f]],g=t[h];if(n)var b=s?n(g,v,h,t,e,o):n(v,g,h,e,t,o);
  6198. // Recursively compare objects (susceptible to call stack limits).
  6199. if(!(void 0===b?v===g||i(v,g,r,n,o):b)){y=!1;break}m||(m="constructor"==h)}if(y&&!m){var w=e.constructor,S=t.constructor;
  6200. // Non `Object` object instances with different constructors are not equal.
  6201. w==S||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof S&&S instanceof S||(y=!1)}return o.delete(e),o.delete(t),y}
  6202. /**
  6203. * Creates an array of own enumerable property names and symbols of `object`.
  6204. *
  6205. * @private
  6206. * @param {Object} object The object to query.
  6207. * @returns {Array} Returns the array of property names and symbols.
  6208. */(e,t,r,n,o,l)}
  6209. /**
  6210. * The base implementation of `_.isNative` without bad shim checks.
  6211. *
  6212. * @private
  6213. * @param {*} value The value to check.
  6214. * @returns {boolean} Returns `true` if `value` is a native function,
  6215. * else `false`.
  6216. */(e,t,r,n,We,o))}function je(e){return!(!Je(e)||
  6217. /**
  6218. * Checks if `func` has its source masked.
  6219. *
  6220. * @private
  6221. * @param {Function} func The function to check.
  6222. * @returns {boolean} Returns `true` if `func` is masked, else `false`.
  6223. */
  6224. function(e){return!!_&&_ in e}
  6225. /**
  6226. * Checks if `value` is likely a prototype object.
  6227. *
  6228. * @private
  6229. * @param {*} value The value to check.
  6230. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
  6231. */(e))&&(Be(e)?ee:P).test(Ke(e))}
  6232. /**
  6233. * The base implementation of `_.isTypedArray` without Node.js optimizations.
  6234. *
  6235. * @private
  6236. * @param {*} value The value to check.
  6237. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
  6238. */
  6239. /**
  6240. * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
  6241. *
  6242. * @private
  6243. * @param {Object} object The object to query.
  6244. * @returns {Array} Returns the array of property names.
  6245. */
  6246. function Ie(e){if(!function(e){var t=e&&e.constructor,r="function"==typeof t&&t.prototype||G;return e===r}(e))return le(e);var t=[];for(var r in Object(e))Q.call(e,r)&&"constructor"!=r&&t.push(r);return t}
  6247. /**
  6248. * A specialized version of `baseIsEqualDeep` for arrays with support for
  6249. * partial deep comparisons.
  6250. *
  6251. * @private
  6252. * @param {Array} array The array to compare.
  6253. * @param {Array} other The other array to compare.
  6254. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
  6255. * @param {Function} customizer The function to customize comparisons.
  6256. * @param {Function} equalFunc The function to determine equivalents of values.
  6257. * @param {Object} stack Tracks traversed `array` and `other` objects.
  6258. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
  6259. */function Oe(e,t,r,n,o,s){var u=r&a,l=e.length,c=t.length;if(l!=c&&!(u&&c>l))return!1;
  6260. // Assume cyclic values are equal.
  6261. var d=s.get(e);if(d&&s.get(t))return d==t;var f=-1,h=!0,p=r&i?new xe:void 0;
  6262. // Ignore non-index properties.
  6263. for(s.set(e,t),s.set(t,e);++f<l;){var y=e[f],m=t[f];if(n)var v=u?n(m,y,f,t,e,s):n(y,m,f,e,t,s);if(void 0!==v){if(v)continue;h=!1;break}
  6264. // Recursively compare arrays (susceptible to call stack limits).
  6265. if(p){if(!q(t,(function(e,t){if(a=t,!p.has(a)&&(y===e||o(y,e,r,n,s)))return p.push(t);
  6266. /**
  6267. * Checks if a `cache` value for `key` exists.
  6268. *
  6269. * @private
  6270. * @param {Object} cache The cache to query.
  6271. * @param {string} key The key of the entry to check.
  6272. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  6273. */
  6274. var a;
  6275. /**
  6276. * Gets the value at `key` of `object`.
  6277. *
  6278. * @private
  6279. * @param {Object} [object] The object to query.
  6280. * @param {string} key The key of the property to get.
  6281. * @returns {*} Returns the property value.
  6282. */}))){h=!1;break}}else if(y!==m&&!o(y,m,r,n,s)){h=!1;break}}return s.delete(e),s.delete(t),h}function De(e){return function(e,t,r){var n=t(e);return ze(e)?n:
  6283. /**
  6284. * Appends the elements of `values` to `array`.
  6285. *
  6286. * @private
  6287. * @param {Array} array The array to modify.
  6288. * @param {Array} values The values to append.
  6289. * @returns {Array} Returns `array`.
  6290. */
  6291. function(e,t){for(var r=-1,n=t.length,a=e.length;++r<n;)e[a+r]=t[r];return e}(n,r(e))}(e,_e,Ue)}
  6292. /**
  6293. * Gets the data for `map`.
  6294. *
  6295. * @private
  6296. * @param {Object} map The map to query.
  6297. * @param {string} key The reference key.
  6298. * @returns {*} Returns the map data.
  6299. */function Re(e,t){var r=e.__data__;
  6300. /**
  6301. * Checks if `value` is suitable for use as unique object key.
  6302. *
  6303. * @private
  6304. * @param {*} value The value to check.
  6305. * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
  6306. */
  6307. return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?r["string"==typeof t?"string":"hash"]:r.map}
  6308. /**
  6309. * Gets the native function at `key` of `object`.
  6310. *
  6311. * @private
  6312. * @param {Object} object The object to query.
  6313. * @param {string} key The key of the method to get.
  6314. * @returns {*} Returns the function if it's native, else `undefined`.
  6315. */function Ve(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return je(r)?r:void 0}
  6316. // Add methods to `Hash`.
  6317. Ee.prototype.clear=function(){this.__data__=ye?ye(null):{},this.size=0}
  6318. /**
  6319. * Removes `key` and its value from the hash.
  6320. *
  6321. * @private
  6322. * @name delete
  6323. * @memberOf Hash
  6324. * @param {Object} hash The hash to modify.
  6325. * @param {string} key The key of the value to remove.
  6326. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  6327. */,Ee.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}
  6328. /**
  6329. * Gets the hash value for `key`.
  6330. *
  6331. * @private
  6332. * @name get
  6333. * @memberOf Hash
  6334. * @param {string} key The key of the value to get.
  6335. * @returns {*} Returns the entry value.
  6336. */,Ee.prototype.get=function(e){var t=this.__data__;if(ye){var r=t[e];return r===n?void 0:r}return Q.call(t,e)?t[e]:void 0}
  6337. /**
  6338. * Checks if a hash value for `key` exists.
  6339. *
  6340. * @private
  6341. * @name has
  6342. * @memberOf Hash
  6343. * @param {string} key The key of the entry to check.
  6344. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  6345. */,Ee.prototype.has=function(e){var t=this.__data__;return ye?void 0!==t[e]:Q.call(t,e)}
  6346. /**
  6347. * Sets the hash `key` to `value`.
  6348. *
  6349. * @private
  6350. * @name set
  6351. * @memberOf Hash
  6352. * @param {string} key The key of the value to set.
  6353. * @param {*} value The value to set.
  6354. * @returns {Object} Returns the hash instance.
  6355. */,Ee.prototype.set=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ye&&void 0===t?n:t,this},
  6356. // Add methods to `ListCache`.
  6357. Me.prototype.clear=function(){this.__data__=[],this.size=0}
  6358. /**
  6359. * Removes `key` and its value from the list cache.
  6360. *
  6361. * @private
  6362. * @name delete
  6363. * @memberOf ListCache
  6364. * @param {string} key The key of the value to remove.
  6365. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  6366. */,Me.prototype.delete=function(e){var t=this.__data__,r=Pe(t,e);return!(r<0)&&(r==t.length-1?t.pop():ie.call(t,r,1),--this.size,!0)}
  6367. /**
  6368. * Gets the list cache value for `key`.
  6369. *
  6370. * @private
  6371. * @name get
  6372. * @memberOf ListCache
  6373. * @param {string} key The key of the value to get.
  6374. * @returns {*} Returns the entry value.
  6375. */,Me.prototype.get=function(e){var t=this.__data__,r=Pe(t,e);return r<0?void 0:t[r][1]}
  6376. /**
  6377. * Checks if a list cache value for `key` exists.
  6378. *
  6379. * @private
  6380. * @name has
  6381. * @memberOf ListCache
  6382. * @param {string} key The key of the entry to check.
  6383. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  6384. */,Me.prototype.has=function(e){return Pe(this.__data__,e)>-1}
  6385. /**
  6386. * Sets the list cache `key` to `value`.
  6387. *
  6388. * @private
  6389. * @name set
  6390. * @memberOf ListCache
  6391. * @param {string} key The key of the value to set.
  6392. * @param {*} value The value to set.
  6393. * @returns {Object} Returns the list cache instance.
  6394. */,Me.prototype.set=function(e,t){var r=this.__data__,n=Pe(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},
  6395. // Add methods to `MapCache`.
  6396. ke.prototype.clear=function(){this.size=0,this.__data__={hash:new Ee,map:new(de||Me),string:new Ee}}
  6397. /**
  6398. * Removes `key` and its value from the map.
  6399. *
  6400. * @private
  6401. * @name delete
  6402. * @memberOf MapCache
  6403. * @param {string} key The key of the value to remove.
  6404. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  6405. */,ke.prototype.delete=function(e){var t=Re(this,e).delete(e);return this.size-=t?1:0,t}
  6406. /**
  6407. * Gets the map value for `key`.
  6408. *
  6409. * @private
  6410. * @name get
  6411. * @memberOf MapCache
  6412. * @param {string} key The key of the value to get.
  6413. * @returns {*} Returns the entry value.
  6414. */,ke.prototype.get=function(e){return Re(this,e).get(e)}
  6415. /**
  6416. * Checks if a map value for `key` exists.
  6417. *
  6418. * @private
  6419. * @name has
  6420. * @memberOf MapCache
  6421. * @param {string} key The key of the entry to check.
  6422. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  6423. */,ke.prototype.has=function(e){return Re(this,e).has(e)}
  6424. /**
  6425. * Sets the map `key` to `value`.
  6426. *
  6427. * @private
  6428. * @name set
  6429. * @memberOf MapCache
  6430. * @param {string} key The key of the value to set.
  6431. * @param {*} value The value to set.
  6432. * @returns {Object} Returns the map cache instance.
  6433. */,ke.prototype.set=function(e,t){var r=Re(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this},
  6434. // Add methods to `SetCache`.
  6435. xe.prototype.add=xe.prototype.push=function(e){return this.__data__.set(e,n),this}
  6436. /**
  6437. * Checks if `value` is in the array cache.
  6438. *
  6439. * @private
  6440. * @name has
  6441. * @memberOf SetCache
  6442. * @param {*} value The value to search for.
  6443. * @returns {number} Returns `true` if `value` is found, else `false`.
  6444. */,xe.prototype.has=function(e){return this.__data__.has(e)},
  6445. // Add methods to `Stack`.
  6446. Te.prototype.clear=function(){this.__data__=new Me,this.size=0}
  6447. /**
  6448. * Removes `key` and its value from the stack.
  6449. *
  6450. * @private
  6451. * @name delete
  6452. * @memberOf Stack
  6453. * @param {string} key The key of the value to remove.
  6454. * @returns {boolean} Returns `true` if the entry was removed, else `false`.
  6455. */,Te.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}
  6456. /**
  6457. * Gets the stack value for `key`.
  6458. *
  6459. * @private
  6460. * @name get
  6461. * @memberOf Stack
  6462. * @param {string} key The key of the value to get.
  6463. * @returns {*} Returns the entry value.
  6464. */,Te.prototype.get=function(e){return this.__data__.get(e)}
  6465. /**
  6466. * Checks if a stack value for `key` exists.
  6467. *
  6468. * @private
  6469. * @name has
  6470. * @memberOf Stack
  6471. * @param {string} key The key of the entry to check.
  6472. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
  6473. */,Te.prototype.has=function(e){return this.__data__.has(e)}
  6474. /**
  6475. * Sets the stack `key` to `value`.
  6476. *
  6477. * @private
  6478. * @name set
  6479. * @memberOf Stack
  6480. * @param {string} key The key of the value to set.
  6481. * @param {*} value The value to set.
  6482. * @returns {Object} Returns the stack cache instance.
  6483. */,Te.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Me){var n=r.__data__;if(!de||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new ke(n)}return r.set(e,t),this.size=r.size,this};var Ue=se?function(e){return null==e?[]:(e=Object(e),
  6484. /**
  6485. * A specialized version of `_.filter` for arrays without support for
  6486. * iteratee shorthands.
  6487. *
  6488. * @private
  6489. * @param {Array} [array] The array to iterate over.
  6490. * @param {Function} predicate The function invoked per iteration.
  6491. * @returns {Array} Returns the new filtered array.
  6492. */
  6493. function(e,t){for(var r=-1,n=null==e?0:e.length,a=0,i=[];++r<n;){var o=e[r];t(o,r,e)&&(i[a++]=o)}return i}(se(e),(function(t){return ae.call(e,t)})))}:
  6494. /**
  6495. * This method returns a new empty array.
  6496. *
  6497. * @static
  6498. * @memberOf _
  6499. * @since 4.13.0
  6500. * @category Util
  6501. * @returns {Array} Returns the new empty array.
  6502. * @example
  6503. *
  6504. * var arrays = _.times(2, _.stubArray);
  6505. *
  6506. * console.log(arrays);
  6507. * // => [[], []]
  6508. *
  6509. * console.log(arrays[0] === arrays[1]);
  6510. * // => false
  6511. */
  6512. function(){return[]}
  6513. /**
  6514. * This method returns `false`.
  6515. *
  6516. * @static
  6517. * @memberOf _
  6518. * @since 4.13.0
  6519. * @category Util
  6520. * @returns {boolean} Returns `false`.
  6521. * @example
  6522. *
  6523. * _.times(2, _.stubFalse);
  6524. * // => [false, false]
  6525. */,Ae=Ce;
  6526. /**
  6527. * Gets the `toStringTag` of `value`.
  6528. *
  6529. * @private
  6530. * @param {*} value The value to query.
  6531. * @returns {string} Returns the `toStringTag`.
  6532. */
  6533. /**
  6534. * Checks if `value` is a valid array-like index.
  6535. *
  6536. * @private
  6537. * @param {*} value The value to check.
  6538. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
  6539. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
  6540. */
  6541. function qe(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||C.test(e))&&e>-1&&e%1==0&&e<t}function Ke(e){if(null!=e){try{return H.call(e)}catch(t){}try{return e+""}catch(t){}}return""}
  6542. /**
  6543. * Performs a
  6544. * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
  6545. * comparison between two values to determine if they are equivalent.
  6546. *
  6547. * @static
  6548. * @memberOf _
  6549. * @since 4.0.0
  6550. * @category Lang
  6551. * @param {*} value The value to compare.
  6552. * @param {*} other The other value to compare.
  6553. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  6554. * @example
  6555. *
  6556. * var object = { 'a': 1 };
  6557. * var other = { 'a': 1 };
  6558. *
  6559. * _.eq(object, object);
  6560. * // => true
  6561. *
  6562. * _.eq(object, other);
  6563. * // => false
  6564. *
  6565. * _.eq('a', 'a');
  6566. * // => true
  6567. *
  6568. * _.eq('a', Object('a'));
  6569. * // => false
  6570. *
  6571. * _.eq(NaN, NaN);
  6572. * // => true
  6573. */function Xe(e,t){return e===t||e!==e&&t!==t}
  6574. /**
  6575. * Checks if `value` is likely an `arguments` object.
  6576. *
  6577. * @static
  6578. * @memberOf _
  6579. * @since 0.1.0
  6580. * @category Lang
  6581. * @param {*} value The value to check.
  6582. * @returns {boolean} Returns `true` if `value` is an `arguments` object,
  6583. * else `false`.
  6584. * @example
  6585. *
  6586. * _.isArguments(function() { return arguments; }());
  6587. * // => true
  6588. *
  6589. * _.isArguments([1, 2, 3]);
  6590. * // => false
  6591. */
  6592. // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
  6593. (ce&&Ae(new ce(new ArrayBuffer(1)))!=F||de&&Ae(new de)!=y||fe&&Ae(fe.resolve())!=b||he&&Ae(new he)!=L||pe&&Ae(new pe)!=x)&&(Ae=function(e){var t=Ce(e),r=t==g?e.constructor:void 0,n=r?Ke(r):"";if(n)switch(n){case me:return F;case ve:return y;case ge:return b;case be:return L;case we:return x}return t});var Ze=Ne(function(){return arguments}())?Ne:function(e){return He(e)&&Q.call(e,"callee")&&!ae.call(e,"callee")},ze=Array.isArray;
  6594. /**
  6595. * Checks if `value` is classified as an `Array` object.
  6596. *
  6597. * @static
  6598. * @memberOf _
  6599. * @since 0.1.0
  6600. * @category Lang
  6601. * @param {*} value The value to check.
  6602. * @returns {boolean} Returns `true` if `value` is an array, else `false`.
  6603. * @example
  6604. *
  6605. * _.isArray([1, 2, 3]);
  6606. * // => true
  6607. *
  6608. * _.isArray(document.body.children);
  6609. * // => false
  6610. *
  6611. * _.isArray('abc');
  6612. * // => false
  6613. *
  6614. * _.isArray(_.noop);
  6615. * // => false
  6616. */
  6617. /**
  6618. * Checks if `value` is a buffer.
  6619. *
  6620. * @static
  6621. * @memberOf _
  6622. * @since 4.3.0
  6623. * @category Lang
  6624. * @param {*} value The value to check.
  6625. * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
  6626. * @example
  6627. *
  6628. * _.isBuffer(new Buffer(2));
  6629. * // => true
  6630. *
  6631. * _.isBuffer(new Uint8Array(2));
  6632. * // => false
  6633. */
  6634. var Ye=ue||function(){return!1};
  6635. /**
  6636. * Performs a deep comparison between two values to determine if they are
  6637. * equivalent.
  6638. *
  6639. * **Note:** This method supports comparing arrays, array buffers, booleans,
  6640. * date objects, error objects, maps, numbers, `Object` objects, regexes,
  6641. * sets, strings, symbols, and typed arrays. `Object` objects are compared
  6642. * by their own, not inherited, enumerable properties. Functions and DOM
  6643. * nodes are compared by strict equality, i.e. `===`.
  6644. *
  6645. * @static
  6646. * @memberOf _
  6647. * @since 0.1.0
  6648. * @category Lang
  6649. * @param {*} value The value to compare.
  6650. * @param {*} other The other value to compare.
  6651. * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  6652. * @example
  6653. *
  6654. * var object = { 'a': 1 };
  6655. * var other = { 'a': 1 };
  6656. *
  6657. * _.isEqual(object, other);
  6658. * // => true
  6659. *
  6660. * object === other;
  6661. * // => false
  6662. */
  6663. /**
  6664. * Checks if `value` is classified as a `Function` object.
  6665. *
  6666. * @static
  6667. * @memberOf _
  6668. * @since 0.1.0
  6669. * @category Lang
  6670. * @param {*} value The value to check.
  6671. * @returns {boolean} Returns `true` if `value` is a function, else `false`.
  6672. * @example
  6673. *
  6674. * _.isFunction(_);
  6675. * // => true
  6676. *
  6677. * _.isFunction(/abc/);
  6678. * // => false
  6679. */
  6680. function Be(e){if(!Je(e))return!1;
  6681. // The use of `Object#toString` avoids issues with the `typeof` operator
  6682. // in Safari 9 which returns 'object' for typed arrays and other constructors.
  6683. var t=Ce(e);return t==h||t==p||t==l||t==w}
  6684. /**
  6685. * Checks if `value` is a valid array-like length.
  6686. *
  6687. * **Note:** This method is loosely based on
  6688. * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
  6689. *
  6690. * @static
  6691. * @memberOf _
  6692. * @since 4.0.0
  6693. * @category Lang
  6694. * @param {*} value The value to check.
  6695. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
  6696. * @example
  6697. *
  6698. * _.isLength(3);
  6699. * // => true
  6700. *
  6701. * _.isLength(Number.MIN_VALUE);
  6702. * // => false
  6703. *
  6704. * _.isLength(Infinity);
  6705. * // => false
  6706. *
  6707. * _.isLength('3');
  6708. * // => false
  6709. */function Ge(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}
  6710. /**
  6711. * Checks if `value` is the
  6712. * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
  6713. * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
  6714. *
  6715. * @static
  6716. * @memberOf _
  6717. * @since 0.1.0
  6718. * @category Lang
  6719. * @param {*} value The value to check.
  6720. * @returns {boolean} Returns `true` if `value` is an object, else `false`.
  6721. * @example
  6722. *
  6723. * _.isObject({});
  6724. * // => true
  6725. *
  6726. * _.isObject([1, 2, 3]);
  6727. * // => true
  6728. *
  6729. * _.isObject(_.noop);
  6730. * // => true
  6731. *
  6732. * _.isObject(null);
  6733. * // => false
  6734. */function Je(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}
  6735. /**
  6736. * Checks if `value` is object-like. A value is object-like if it's not `null`
  6737. * and has a `typeof` result of "object".
  6738. *
  6739. * @static
  6740. * @memberOf _
  6741. * @since 4.0.0
  6742. * @category Lang
  6743. * @param {*} value The value to check.
  6744. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  6745. * @example
  6746. *
  6747. * _.isObjectLike({});
  6748. * // => true
  6749. *
  6750. * _.isObjectLike([1, 2, 3]);
  6751. * // => true
  6752. *
  6753. * _.isObjectLike(_.noop);
  6754. * // => false
  6755. *
  6756. * _.isObjectLike(null);
  6757. * // => false
  6758. */function He(e){return null!=e&&"object"==typeof e}
  6759. /**
  6760. * Checks if `value` is classified as a typed array.
  6761. *
  6762. * @static
  6763. * @memberOf _
  6764. * @since 3.0.0
  6765. * @category Lang
  6766. * @param {*} value The value to check.
  6767. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
  6768. * @example
  6769. *
  6770. * _.isTypedArray(new Uint8Array);
  6771. * // => true
  6772. *
  6773. * _.isTypedArray([]);
  6774. * // => false
  6775. */var Qe=A?function(e){return function(t){return e(t)}}(A):function(e){return He(e)&&Ge(e.length)&&!!N[Ce(e)]};
  6776. /**
  6777. * Creates an array of the own enumerable property names of `object`.
  6778. *
  6779. * **Note:** Non-object values are coerced to objects. See the
  6780. * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
  6781. * for more details.
  6782. *
  6783. * @static
  6784. * @since 0.1.0
  6785. * @memberOf _
  6786. * @category Object
  6787. * @param {Object} object The object to query.
  6788. * @returns {Array} Returns the array of property names.
  6789. * @example
  6790. *
  6791. * function Foo() {
  6792. * this.a = 1;
  6793. * this.b = 2;
  6794. * }
  6795. *
  6796. * Foo.prototype.c = 3;
  6797. *
  6798. * _.keys(new Foo);
  6799. * // => ['a', 'b'] (iteration order is not guaranteed)
  6800. *
  6801. * _.keys('hi');
  6802. * // => ['0', '1']
  6803. */function _e(e){return null!=(t=e)&&Ge(t.length)&&!Be(t)?Fe(e):Ie(e);
  6804. /**
  6805. * Checks if `value` is array-like. A value is considered array-like if it's
  6806. * not a function and has a `value.length` that's an integer greater than or
  6807. * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
  6808. *
  6809. * @static
  6810. * @memberOf _
  6811. * @since 4.0.0
  6812. * @category Lang
  6813. * @param {*} value The value to check.
  6814. * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
  6815. * @example
  6816. *
  6817. * _.isArrayLike([1, 2, 3]);
  6818. * // => true
  6819. *
  6820. * _.isArrayLike(document.body.children);
  6821. * // => true
  6822. *
  6823. * _.isArrayLike('abc');
  6824. * // => true
  6825. *
  6826. * _.isArrayLike(_.noop);
  6827. * // => false
  6828. */
  6829. var t}e.exports=function(e,t){return We(e,t)}},
  6830. /***/4461:
  6831. /***/function(e,t,r){
  6832. /**
  6833. * lodash (Custom Build) <https://lodash.com/>
  6834. * Build: `lodash modularize exports="npm" -o ./`
  6835. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  6836. * Released under MIT license <https://lodash.com/license>
  6837. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  6838. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  6839. */
  6840. /** Used as references for various `Number` constants. */
  6841. var n=1/0,a="[object Symbol]",i="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,o="object"==typeof self&&self&&self.Object===Object&&self,s=i||o||Function("return this")(),u=Object.prototype,l=0,c=u.toString,d=s.Symbol,f=d?d.prototype:void 0,h=f?f.toString:void 0;
  6842. /** `Object#toString` result references. */
  6843. /**
  6844. * The base implementation of `_.toString` which doesn't convert nullish
  6845. * values to empty strings.
  6846. *
  6847. * @private
  6848. * @param {*} value The value to process.
  6849. * @returns {string} Returns the string.
  6850. */
  6851. function p(e){
  6852. // Exit early for strings to avoid a performance hit in some environments.
  6853. if("string"==typeof e)return e;if(
  6854. /**
  6855. * Checks if `value` is classified as a `Symbol` primitive or object.
  6856. *
  6857. * @static
  6858. * @memberOf _
  6859. * @since 4.0.0
  6860. * @category Lang
  6861. * @param {*} value The value to check.
  6862. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  6863. * @example
  6864. *
  6865. * _.isSymbol(Symbol.iterator);
  6866. * // => true
  6867. *
  6868. * _.isSymbol('abc');
  6869. * // => false
  6870. */
  6871. function(e){return"symbol"==typeof e||
  6872. /**
  6873. * Checks if `value` is object-like. A value is object-like if it's not `null`
  6874. * and has a `typeof` result of "object".
  6875. *
  6876. * @static
  6877. * @memberOf _
  6878. * @since 4.0.0
  6879. * @category Lang
  6880. * @param {*} value The value to check.
  6881. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  6882. * @example
  6883. *
  6884. * _.isObjectLike({});
  6885. * // => true
  6886. *
  6887. * _.isObjectLike([1, 2, 3]);
  6888. * // => true
  6889. *
  6890. * _.isObjectLike(_.noop);
  6891. * // => false
  6892. *
  6893. * _.isObjectLike(null);
  6894. * // => false
  6895. */
  6896. function(e){return!!e&&"object"==typeof e}(e)&&c.call(e)==a}
  6897. /**
  6898. * Converts `value` to a string. An empty string is returned for `null`
  6899. * and `undefined` values. The sign of `-0` is preserved.
  6900. *
  6901. * @static
  6902. * @memberOf _
  6903. * @since 4.0.0
  6904. * @category Lang
  6905. * @param {*} value The value to process.
  6906. * @returns {string} Returns the string.
  6907. * @example
  6908. *
  6909. * _.toString(null);
  6910. * // => ''
  6911. *
  6912. * _.toString(-0);
  6913. * // => '-0'
  6914. *
  6915. * _.toString([1, 2, 3]);
  6916. * // => '1,2,3'
  6917. */(e))return h?h.call(e):"";var t=e+"";return"0"==t&&1/e==-n?"-0":t}e.exports=
  6918. /**
  6919. * Generates a unique ID. If `prefix` is given, the ID is appended to it.
  6920. *
  6921. * @static
  6922. * @since 0.1.0
  6923. * @memberOf _
  6924. * @category Util
  6925. * @param {string} [prefix=''] The value to prefix the ID with.
  6926. * @returns {string} Returns the unique ID.
  6927. * @example
  6928. *
  6929. * _.uniqueId('contact_');
  6930. * // => 'contact_104'
  6931. *
  6932. * _.uniqueId();
  6933. * // => '105'
  6934. */
  6935. function(e){var t,r=++l;return(null==(t=e)?"":p(t))+r}},
  6936. /***/39:
  6937. /***/function(e,t,r){
  6938. /**
  6939. * lodash (Custom Build) <https://lodash.com/>
  6940. * Build: `lodash modularize exports="npm" -o ./`
  6941. * Copyright jQuery Foundation and other contributors <https://jquery.org/>
  6942. * Released under MIT license <https://lodash.com/license>
  6943. * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  6944. * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
  6945. */
  6946. /** Used as references for various `Number` constants. */
  6947. var n=1/0,a="[object Symbol]",i="\\ud800-\\udfff",o="\\u0300-\\u036f\\ufe20-\\ufe23",s="\\u20d0-\\u20f0",u="\\ufe0e\\ufe0f",l="["+i+"]",c="["+o+s+"]",d="\\ud83c[\\udffb-\\udfff]",f="[^"+i+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",p="[\\ud800-\\udbff][\\udc00-\\udfff]",y="\\u200d",m="(?:"+c+"|"+d+")"+"?",v="["+u+"]?",g=v+m+("(?:"+y+"(?:"+[f,h,p].join("|")+")"+v+m+")*"),b="(?:"+[f+c+"?",c,h,p,l].join("|")+")",w=RegExp(d+"(?="+d+")|"+b+g,"g"),S=RegExp("["+y+i+o+s+u+"]"),L="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,E="object"==typeof self&&self&&self.Object===Object&&self,M=L||E||Function("return this")();
  6948. /** `Object#toString` result references. */
  6949. /**
  6950. * Checks if `string` contains Unicode symbols.
  6951. *
  6952. * @private
  6953. * @param {string} string The string to inspect.
  6954. * @returns {boolean} Returns `true` if a symbol is found, else `false`.
  6955. */
  6956. function k(e){return S.test(e)}
  6957. /**
  6958. * Converts `string` to an array.
  6959. *
  6960. * @private
  6961. * @param {string} string The string to convert.
  6962. * @returns {Array} Returns the converted array.
  6963. */function x(e){return k(e)?
  6964. /**
  6965. * Converts a Unicode `string` to an array.
  6966. *
  6967. * @private
  6968. * @param {string} string The string to convert.
  6969. * @returns {Array} Returns the converted array.
  6970. */
  6971. function(e){return e.match(w)||[]}
  6972. /** Used for built-in method references. */(e):
  6973. /**
  6974. * Converts an ASCII `string` to an array.
  6975. *
  6976. * @private
  6977. * @param {string} string The string to convert.
  6978. * @returns {Array} Returns the converted array.
  6979. */
  6980. function(e){return e.split("")}(e)}var T=Object.prototype.toString,F=M.Symbol,P=F?F.prototype:void 0,C=P?P.toString:void 0;
  6981. /**
  6982. * Used to resolve the
  6983. * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
  6984. * of values.
  6985. */
  6986. /**
  6987. * The base implementation of `_.toString` which doesn't convert nullish
  6988. * values to empty strings.
  6989. *
  6990. * @private
  6991. * @param {*} value The value to process.
  6992. * @returns {string} Returns the string.
  6993. */
  6994. function N(e){
  6995. // Exit early for strings to avoid a performance hit in some environments.
  6996. if("string"==typeof e)return e;if(
  6997. /**
  6998. * Checks if `value` is classified as a `Symbol` primitive or object.
  6999. *
  7000. * @static
  7001. * @memberOf _
  7002. * @since 4.0.0
  7003. * @category Lang
  7004. * @param {*} value The value to check.
  7005. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  7006. * @example
  7007. *
  7008. * _.isSymbol(Symbol.iterator);
  7009. * // => true
  7010. *
  7011. * _.isSymbol('abc');
  7012. * // => false
  7013. */
  7014. function(e){return"symbol"==typeof e||
  7015. /**
  7016. * Checks if `value` is object-like. A value is object-like if it's not `null`
  7017. * and has a `typeof` result of "object".
  7018. *
  7019. * @static
  7020. * @memberOf _
  7021. * @since 4.0.0
  7022. * @category Lang
  7023. * @param {*} value The value to check.
  7024. * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
  7025. * @example
  7026. *
  7027. * _.isObjectLike({});
  7028. * // => true
  7029. *
  7030. * _.isObjectLike([1, 2, 3]);
  7031. * // => true
  7032. *
  7033. * _.isObjectLike(_.noop);
  7034. * // => false
  7035. *
  7036. * _.isObjectLike(null);
  7037. * // => false
  7038. */
  7039. function(e){return!!e&&"object"==typeof e}(e)&&T.call(e)==a}
  7040. /**
  7041. * Converts `value` to a string. An empty string is returned for `null`
  7042. * and `undefined` values. The sign of `-0` is preserved.
  7043. *
  7044. * @static
  7045. * @memberOf _
  7046. * @since 4.0.0
  7047. * @category Lang
  7048. * @param {*} value The value to process.
  7049. * @returns {string} Returns the string.
  7050. * @example
  7051. *
  7052. * _.toString(null);
  7053. * // => ''
  7054. *
  7055. * _.toString(-0);
  7056. * // => '-0'
  7057. *
  7058. * _.toString([1, 2, 3]);
  7059. * // => '1,2,3'
  7060. */(e))return C?C.call(e):"";var t=e+"";return"0"==t&&1/e==-n?"-0":t}
  7061. /**
  7062. * Casts `array` to a slice if it's needed.
  7063. *
  7064. * @private
  7065. * @param {Array} array The array to inspect.
  7066. * @param {number} start The start position.
  7067. * @param {number} [end=array.length] The end position.
  7068. * @returns {Array} Returns the cast slice.
  7069. */function W(e,t,r){var n=e.length;return r=void 0===r?n:r,!t&&r>=n?e:
  7070. /**
  7071. * The base implementation of `_.slice` without an iteratee call guard.
  7072. *
  7073. * @private
  7074. * @param {Array} array The array to slice.
  7075. * @param {number} [start=0] The start position.
  7076. * @param {number} [end=array.length] The end position.
  7077. * @returns {Array} Returns the slice of `array`.
  7078. */
  7079. function(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(r=r>a?a:r)<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(a);++n<a;)i[n]=e[n+t];return i}(e,t,r)}
  7080. /**
  7081. * Creates a function like `_.lowerFirst`.
  7082. *
  7083. * @private
  7084. * @param {string} methodName The name of the `String` case method to use.
  7085. * @returns {Function} Returns the new case function.
  7086. */
  7087. /**
  7088. * Converts the first character of `string` to upper case.
  7089. *
  7090. * @static
  7091. * @memberOf _
  7092. * @since 4.0.0
  7093. * @category String
  7094. * @param {string} [string=''] The string to convert.
  7095. * @returns {string} Returns the converted string.
  7096. * @example
  7097. *
  7098. * _.upperFirst('fred');
  7099. * // => 'Fred'
  7100. *
  7101. * _.upperFirst('FRED');
  7102. * // => 'FRED'
  7103. */
  7104. var j,I=(j="toUpperCase",function(e){var t,r=k(e=null==(t=e)?"":N(t))?x(e):void 0,n=r?r[0]:e.charAt(0),a=r?W(r,1).join(""):e.slice(1);return n[j]()+a});e.exports=I},
  7105. /***/9626:
  7106. /***/function(e,t,r){"use strict";r.r(t),
  7107. // extracted by mini-css-extract-plugin
  7108. /* harmony default export */t.default={}},
  7109. /***/2547:
  7110. /***/function(e,t,r){"use strict";r.r(t),
  7111. // extracted by mini-css-extract-plugin
  7112. /* harmony default export */t.default={}},
  7113. /***/5251:
  7114. /***/function(e,t,r){"use strict";
  7115. /** @license React v16.14.0
  7116. * react-jsx-runtime.production.min.js
  7117. *
  7118. * Copyright (c) Facebook, Inc. and its affiliates.
  7119. *
  7120. * This source code is licensed under the MIT license found in the
  7121. * LICENSE file in the root directory of this source tree.
  7122. */var n=r(3899),a=60103;if(t.Fragment=60107,"function"===typeof Symbol&&Symbol.for){var i=Symbol.for;a=i("react.element"),t.Fragment=i("react.fragment")}var o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,u={key:!0,ref:!0,__self:!0,__source:!0};function l(e,t,r){var n,i={},l=null,c=null;for(n in void 0!==r&&(l=""+r),void 0!==t.key&&(l=""+t.key),void 0!==t.ref&&(c=t.ref),t)s.call(t,n)&&!u.hasOwnProperty(n)&&(i[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===i[n]&&(i[n]=t[n]);return{$$typeof:a,type:e,key:l,ref:c,props:i,_owner:o.current}}t.jsx=l,t.jsxs=l},
  7123. /***/5893:
  7124. /***/function(e,t,r){"use strict";e.exports=r(5251)},
  7125. /***/8808:
  7126. /***/function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var r=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}),(function(e){return e}))};t.default=r},
  7127. /***/1566:
  7128. /***/function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e){return"string"===typeof e?e:e?e.displayName||e.name||"Component":void 0};t.default=r},
  7129. /***/6626:
  7130. /***/function(e,t,r){"use strict";var n=r(4836);t.__esModule=!0,t.default=void 0;var a=n(r(1566)),i=function(e,t){return t+"("+(0,a.default)(e)+")"};t.default=i},
  7131. /***/6099:
  7132. /***/function(e,t,r){!function(e){// wrapper for non-node envs
  7133. e.parser=function(e,t){return new a(e,t)},e.SAXParser=a,e.SAXStream=o,e.createStream=function(e,t){return new o(e,t)},
  7134. // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
  7135. // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
  7136. // since that's the earliest that a buffer overrun could occur. This way, checks are
  7137. // as rare as required, but as often as necessary to ensure never crossing this bound.
  7138. // Furthermore, buffers are only tested at most once per write(), so passing a very
  7139. // large string into write() might have undesirable effects, but this is manageable by
  7140. // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
  7141. // edge case, result in creating at most one complete copy of the string passed in.
  7142. // Set to Infinity to have unlimited buffers.
  7143. e.MAX_BUFFER_LENGTH=65536;var t,n=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function a(t,r){if(!(this instanceof a))return new a(t,r);var i=this;!function(e){for(var t=0,r=n.length;t<r;t++)e[n[t]]=""}(i),i.q=i.c="",i.bufferCheckPosition=e.MAX_BUFFER_LENGTH,i.opt=r||{},i.opt.lowercase=i.opt.lowercase||i.opt.lowercasetags,i.looseCase=i.opt.lowercase?"toLowerCase":"toUpperCase",i.tags=[],i.closed=i.closedRoot=i.sawRoot=!1,i.tag=i.error=null,i.strict=!!t,i.noscript=!(!t&&!i.opt.noscript),i.state=S.BEGIN,i.strictEntities=i.opt.strictEntities,i.ENTITIES=i.strictEntities?Object.create(e.XML_ENTITIES):Object.create(e.ENTITIES),i.attribList=[],
  7144. // namespaces form a prototype chain.
  7145. // it always points at the current tag,
  7146. // which protos to its parent tag.
  7147. i.opt.xmlns&&(i.ns=Object.create(d)),
  7148. // mostly just for error reporting
  7149. i.trackPosition=!1!==i.opt.position,i.trackPosition&&(i.position=i.line=i.column=0),E(i,"onready")}e.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"],Object.create||(Object.create=function(e){function t(){}return t.prototype=e,new t}),Object.keys||(Object.keys=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r);return t}),a.prototype={end:function(){F(this)},write:function(t){var r=this;if(this.error)throw this.error;if(r.closed)return T(r,"Cannot write after close. Assign an onready handler.");if(null===t)return F(r);"object"===typeof t&&(t=t.toString());var a=0,i="";for(;i=R(t,a++),r.c=i,i;)switch(r.trackPosition&&(r.position++,"\n"===i?(r.line++,r.column=0):r.column++),r.state){case S.BEGIN:if(r.state=S.BEGIN_WHITESPACE,"\ufeff"===i)continue;D(r,i);continue;case S.BEGIN_WHITESPACE:D(r,i);continue;case S.TEXT:if(r.sawRoot&&!r.closedRoot){for(var o=a-1;i&&"<"!==i&&"&"!==i;)(i=R(t,a++))&&r.trackPosition&&(r.position++,"\n"===i?(r.line++,r.column=0):r.column++);r.textNode+=t.substring(o,a-1)}"<"!==i||r.sawRoot&&r.closedRoot&&!r.strict?(m(i)||r.sawRoot&&!r.closedRoot||P(r,"Text data outside of root node."),"&"===i?r.state=S.TEXT_ENTITY:r.textNode+=i):(r.state=S.OPEN_WAKA,r.startTagPosition=r.position);continue;case S.SCRIPT:
  7150. // only non-strict
  7151. "<"===i?r.state=S.SCRIPT_ENDING:r.script+=i;continue;case S.SCRIPT_ENDING:"/"===i?r.state=S.CLOSE_TAG:(r.script+="<"+i,r.state=S.SCRIPT);continue;case S.OPEN_WAKA:
  7152. // either a /, ?, !, or text is coming next.
  7153. if("!"===i)r.state=S.SGML_DECL,r.sgmlDecl="";else if(m(i));else if(b(f,i))r.state=S.OPEN_TAG,r.tagName=i;else if("/"===i)r.state=S.CLOSE_TAG,r.tagName="";else if("?"===i)r.state=S.PROC_INST,r.procInstName=r.procInstBody="";else{
  7154. // if there was some whitespace, then add that in.
  7155. if(P(r,"Unencoded <"),r.startTagPosition+1<r.position){var l=r.position-r.startTagPosition;i=new Array(l).join(" ")+i}r.textNode+="<"+i,r.state=S.TEXT}continue;case S.SGML_DECL:(r.sgmlDecl+i).toUpperCase()===s?(M(r,"onopencdata"),r.state=S.CDATA,r.sgmlDecl="",r.cdata=""):r.sgmlDecl+i==="--"?(r.state=S.COMMENT,r.comment="",r.sgmlDecl=""):(r.sgmlDecl+i).toUpperCase()===u?(r.state=S.DOCTYPE,(r.doctype||r.sawRoot)&&P(r,"Inappropriately located doctype declaration"),r.doctype="",r.sgmlDecl=""):">"===i?(M(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=S.TEXT):v(i)?(r.state=S.SGML_DECL_QUOTED,r.sgmlDecl+=i):r.sgmlDecl+=i;continue;case S.SGML_DECL_QUOTED:i===r.q&&(r.state=S.SGML_DECL,r.q=""),r.sgmlDecl+=i;continue;case S.DOCTYPE:">"===i?(r.state=S.TEXT,M(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=i,"["===i?r.state=S.DOCTYPE_DTD:v(i)&&(r.state=S.DOCTYPE_QUOTED,r.q=i));continue;case S.DOCTYPE_QUOTED:r.doctype+=i,i===r.q&&(r.q="",r.state=S.DOCTYPE);continue;case S.DOCTYPE_DTD:r.doctype+=i,"]"===i?r.state=S.DOCTYPE:v(i)&&(r.state=S.DOCTYPE_DTD_QUOTED,r.q=i);continue;case S.DOCTYPE_DTD_QUOTED:r.doctype+=i,i===r.q&&(r.state=S.DOCTYPE_DTD,r.q="");continue;case S.COMMENT:"-"===i?r.state=S.COMMENT_ENDING:r.comment+=i;continue;case S.COMMENT_ENDING:"-"===i?(r.state=S.COMMENT_ENDED,r.comment=x(r.opt,r.comment),r.comment&&M(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+i,r.state=S.COMMENT);continue;case S.COMMENT_ENDED:">"!==i?(P(r,"Malformed comment"),
  7156. // allow <!-- blah -- bloo --> in non-strict mode,
  7157. // which is a comment of " blah -- bloo "
  7158. r.comment+="--"+i,r.state=S.COMMENT):r.state=S.TEXT;continue;case S.CDATA:"]"===i?r.state=S.CDATA_ENDING:r.cdata+=i;continue;case S.CDATA_ENDING:"]"===i?r.state=S.CDATA_ENDING_2:(r.cdata+="]"+i,r.state=S.CDATA);continue;case S.CDATA_ENDING_2:">"===i?(r.cdata&&M(r,"oncdata",r.cdata),M(r,"onclosecdata"),r.cdata="",r.state=S.TEXT):"]"===i?r.cdata+="]":(r.cdata+="]]"+i,r.state=S.CDATA);continue;case S.PROC_INST:"?"===i?r.state=S.PROC_INST_ENDING:m(i)?r.state=S.PROC_INST_BODY:r.procInstName+=i;continue;case S.PROC_INST_BODY:if(!r.procInstBody&&m(i))continue;"?"===i?r.state=S.PROC_INST_ENDING:r.procInstBody+=i;continue;case S.PROC_INST_ENDING:">"===i?(M(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=S.TEXT):(r.procInstBody+="?"+i,r.state=S.PROC_INST_BODY);continue;case S.OPEN_TAG:b(h,i)?r.tagName+=i:(C(r),">"===i?j(r):"/"===i?r.state=S.OPEN_TAG_SLASH:(m(i)||P(r,"Invalid character in tag name"),r.state=S.ATTRIB));continue;case S.OPEN_TAG_SLASH:">"===i?(j(r,!0),I(r)):(P(r,"Forward-slash in opening tag not followed by >"),r.state=S.ATTRIB);continue;case S.ATTRIB:
  7159. // haven't read the attribute name yet.
  7160. if(m(i))continue;">"===i?j(r):"/"===i?r.state=S.OPEN_TAG_SLASH:b(f,i)?(r.attribName=i,r.attribValue="",r.state=S.ATTRIB_NAME):P(r,"Invalid attribute name");continue;case S.ATTRIB_NAME:"="===i?r.state=S.ATTRIB_VALUE:">"===i?(P(r,"Attribute without value"),r.attribValue=r.attribName,W(r),j(r)):m(i)?r.state=S.ATTRIB_NAME_SAW_WHITE:b(h,i)?r.attribName+=i:P(r,"Invalid attribute name");continue;case S.ATTRIB_NAME_SAW_WHITE:if("="===i)r.state=S.ATTRIB_VALUE;else{if(m(i))continue;P(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",M(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",">"===i?j(r):b(f,i)?(r.attribName=i,r.state=S.ATTRIB_NAME):(P(r,"Invalid attribute name"),r.state=S.ATTRIB)}continue;case S.ATTRIB_VALUE:if(m(i))continue;v(i)?(r.q=i,r.state=S.ATTRIB_VALUE_QUOTED):(P(r,"Unquoted attribute value"),r.state=S.ATTRIB_VALUE_UNQUOTED,r.attribValue=i);continue;case S.ATTRIB_VALUE_QUOTED:if(i!==r.q){"&"===i?r.state=S.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=i;continue}W(r),r.q="",r.state=S.ATTRIB_VALUE_CLOSED;continue;case S.ATTRIB_VALUE_CLOSED:m(i)?r.state=S.ATTRIB:">"===i?j(r):"/"===i?r.state=S.OPEN_TAG_SLASH:b(f,i)?(P(r,"No whitespace between attributes"),r.attribName=i,r.attribValue="",r.state=S.ATTRIB_NAME):P(r,"Invalid attribute name");continue;case S.ATTRIB_VALUE_UNQUOTED:if(!g(i)){"&"===i?r.state=S.ATTRIB_VALUE_ENTITY_U:r.attribValue+=i;continue}W(r),">"===i?j(r):r.state=S.ATTRIB;continue;case S.CLOSE_TAG:if(r.tagName)">"===i?I(r):b(h,i)?r.tagName+=i:r.script?(r.script+="</"+r.tagName,r.tagName="",r.state=S.SCRIPT):(m(i)||P(r,"Invalid tagname in closing tag"),r.state=S.CLOSE_TAG_SAW_WHITE);else{if(m(i))continue;w(f,i)?r.script?(r.script+="</"+i,r.state=S.SCRIPT):P(r,"Invalid tagname in closing tag."):r.tagName=i}continue;case S.CLOSE_TAG_SAW_WHITE:if(m(i))continue;">"===i?I(r):P(r,"Invalid characters in closing tag");continue;case S.TEXT_ENTITY:case S.ATTRIB_VALUE_ENTITY_Q:case S.ATTRIB_VALUE_ENTITY_U:var c,d;switch(r.state){case S.TEXT_ENTITY:c=S.TEXT,d="textNode";break;case S.ATTRIB_VALUE_ENTITY_Q:c=S.ATTRIB_VALUE_QUOTED,d="attribValue";break;case S.ATTRIB_VALUE_ENTITY_U:c=S.ATTRIB_VALUE_UNQUOTED,d="attribValue"}";"===i?(r[d]+=O(r),r.entity="",r.state=c):b(r.entity.length?y:p,i)?r.entity+=i:(P(r,"Invalid character in entity name"),r[d]+="&"+r.entity+i,r.entity="",r.state=c);continue;default:throw new Error(r,"Unknown state: "+r.state)}// while
  7161. r.position>=r.bufferCheckPosition&&function(t){for(var r=Math.max(e.MAX_BUFFER_LENGTH,10),a=0,i=0,o=n.length;i<o;i++){var s=t[n[i]].length;if(s>r)
  7162. // Text/cdata nodes can get big, and since they're buffered,
  7163. // we can get here under normal conditions.
  7164. // Avoid issues by emitting the text node now,
  7165. // so at least it won't get any bigger.
  7166. switch(n[i]){case"textNode":k(t);break;case"cdata":M(t,"oncdata",t.cdata),t.cdata="";break;case"script":M(t,"onscript",t.script),t.script="";break;default:T(t,"Max buffer length exceeded: "+n[i])}a=Math.max(a,s)}
  7167. // schedule the next check for the earliest possible buffer overrun.
  7168. var u=e.MAX_BUFFER_LENGTH-a;t.bufferCheckPosition=u+t.position}(r);return r}
  7169. /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
  7170. /* istanbul ignore next */,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){var e;k(e=this),""!==e.cdata&&(M(e,"oncdata",e.cdata),e.cdata=""),""!==e.script&&(M(e,"onscript",e.script),e.script="")}};try{t=r(2830).Stream}catch(V){t=function(){}}var i=e.EVENTS.filter((function(e){return"error"!==e&&"end"!==e}));function o(e,r){if(!(this instanceof o))return new o(e,r);t.apply(this),this._parser=new a(e,r),this.writable=!0,this.readable=!0;var n=this;this._parser.onend=function(){n.emit("end")},this._parser.onerror=function(e){n.emit("error",e),
  7171. // if didn't throw, then means error was handled.
  7172. // go ahead and clear error, so we can write again.
  7173. n._parser.error=null},this._decoder=null,i.forEach((function(e){Object.defineProperty(n,"on"+e,{get:function(){return n._parser["on"+e]},set:function(t){if(!t)return n.removeAllListeners(e),n._parser["on"+e]=t,t;n.on(e,t)},enumerable:!0,configurable:!1})}))}o.prototype=Object.create(t.prototype,{constructor:{value:o}}),o.prototype.write=function(e){if("function"===typeof Buffer&&"function"===typeof Buffer.isBuffer&&Buffer.isBuffer(e)){if(!this._decoder){var t=r(2553)/* .StringDecoder */.s;this._decoder=new t("utf8")}e=this._decoder.write(e)}return this._parser.write(e.toString()),this.emit("data",e),!0},o.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},o.prototype.on=function(e,r){var n=this;return n._parser["on"+e]||-1===i.indexOf(e)||(n._parser["on"+e]=function(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),t.prototype.on.call(n,e,r)}
  7174. // this really needs to be replaced with character classes.
  7175. // XML allows all manner of ridiculous numbers and digits.;
  7176. var s="[CDATA[",u="DOCTYPE",l="http://www.w3.org/XML/1998/namespace",c="http://www.w3.org/2000/xmlns/",d={xml:l,xmlns:c},f=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,h=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,p=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,y=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function m(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}function v(e){return'"'===e||"'"===e}function g(e){return">"===e||m(e)}function b(e,t){return e.test(t)}function w(e,t){return!b(e,t)}var S=0;for(var L in e.STATE={BEGIN:S++,// leading byte order mark or whitespace
  7177. BEGIN_WHITESPACE:S++,// leading whitespace
  7178. TEXT:S++,// general stuff
  7179. TEXT_ENTITY:S++,// &amp and such.
  7180. OPEN_WAKA:S++,// <
  7181. SGML_DECL:S++,// <!BLARG
  7182. SGML_DECL_QUOTED:S++,// <!BLARG foo "bar
  7183. DOCTYPE:S++,// <!DOCTYPE
  7184. DOCTYPE_QUOTED:S++,// <!DOCTYPE "//blah
  7185. DOCTYPE_DTD:S++,// <!DOCTYPE "//blah" [ ...
  7186. DOCTYPE_DTD_QUOTED:S++,// <!DOCTYPE "//blah" [ "foo
  7187. COMMENT_STARTING:S++,// <!-
  7188. COMMENT:S++,// <!--
  7189. COMMENT_ENDING:S++,// <!-- blah -
  7190. COMMENT_ENDED:S++,// <!-- blah --
  7191. CDATA:S++,// <![CDATA[ something
  7192. CDATA_ENDING:S++,// ]
  7193. CDATA_ENDING_2:S++,// ]]
  7194. PROC_INST:S++,// <?hi
  7195. PROC_INST_BODY:S++,// <?hi there
  7196. PROC_INST_ENDING:S++,// <?hi "there" ?
  7197. OPEN_TAG:S++,// <strong
  7198. OPEN_TAG_SLASH:S++,// <strong /
  7199. ATTRIB:S++,// <a
  7200. ATTRIB_NAME:S++,// <a foo
  7201. ATTRIB_NAME_SAW_WHITE:S++,// <a foo _
  7202. ATTRIB_VALUE:S++,// <a foo=
  7203. ATTRIB_VALUE_QUOTED:S++,// <a foo="bar
  7204. ATTRIB_VALUE_CLOSED:S++,// <a foo="bar"
  7205. ATTRIB_VALUE_UNQUOTED:S++,// <a foo=bar
  7206. ATTRIB_VALUE_ENTITY_Q:S++,// <foo bar="&quot;"
  7207. ATTRIB_VALUE_ENTITY_U:S++,// <foo bar=&quot
  7208. CLOSE_TAG:S++,// </a
  7209. CLOSE_TAG_SAW_WHITE:S++,// </a >
  7210. SCRIPT:S++,// <script> ...
  7211. SCRIPT_ENDING:S++},e.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},e.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach((function(t){var r=e.ENTITIES[t],n="number"===typeof r?String.fromCharCode(r):r;e.ENTITIES[t]=n})),e.STATE)e.STATE[e.STATE[L]]=L;
  7212. // shorthand
  7213. function E(e,t,r){e[t]&&e[t](r)}function M(e,t,r){e.textNode&&k(e),E(e,t,r)}function k(e){e.textNode=x(e.opt,e.textNode),e.textNode&&E(e,"ontext",e.textNode),e.textNode=""}function x(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function T(e,t){return k(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,E(e,"onerror",t),e}function F(e){return e.sawRoot&&!e.closedRoot&&P(e,"Unclosed root tag"),e.state!==S.BEGIN&&e.state!==S.BEGIN_WHITESPACE&&e.state!==S.TEXT&&T(e,"Unexpected end"),k(e),e.c="",e.closed=!0,E(e,"onend"),a.call(e,e.strict,e.opt),e}function P(e,t){if("object"!==typeof e||!(e instanceof a))throw new Error("bad call to strictFail");e.strict&&T(e,t)}function C(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,r=e.tag={name:e.tagName,attributes:{}};
  7214. // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar"
  7215. e.opt.xmlns&&(r.ns=t.ns),e.attribList.length=0,M(e,"onopentagstart",r)}function N(e,t){var r=e.indexOf(":")<0?["",e]:e.split(":"),n=r[0],a=r[1];
  7216. // <x "xmlns"="http://foo">
  7217. return t&&"xmlns"===e&&(n="xmlns",a=""),{prefix:n,local:a}}function W(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=N(e.attribName,!0),r=t.prefix,n=t.local;if("xmlns"===r)
  7218. // namespace binding attribute. push the binding into scope
  7219. if("xml"===n&&e.attribValue!==l)P(e,"xml: prefix must be bound to "+l+"\nActual: "+e.attribValue);else if("xmlns"===n&&e.attribValue!==c)P(e,"xmlns: prefix must be bound to "+c+"\nActual: "+e.attribValue);else{var a=e.tag,i=e.tags[e.tags.length-1]||e;a.ns===i.ns&&(a.ns=Object.create(i.ns)),a.ns[n]=e.attribValue}
  7220. // defer onattribute events until all attributes have been seen
  7221. // so any new bindings can take effect. preserve attribute order
  7222. // so deferred events can be emitted in document order
  7223. e.attribList.push([e.attribName,e.attribValue])}else
  7224. // in non-xmlns mode, we can emit the event right away
  7225. e.tag.attributes[e.attribName]=e.attribValue,M(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function j(e,t){if(e.opt.xmlns){
  7226. // emit namespace binding events
  7227. var r=e.tag,n=N(e.tagName);
  7228. // add namespace info to tag
  7229. r.prefix=n.prefix,r.local=n.local,r.uri=r.ns[n.prefix]||"",r.prefix&&!r.uri&&(P(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),r.uri=n.prefix);var a=e.tags[e.tags.length-1]||e;r.ns&&a.ns!==r.ns&&Object.keys(r.ns).forEach((function(t){M(e,"onopennamespace",{prefix:t,uri:r.ns[t]})}));
  7230. // handle deferred onattribute events
  7231. // Note: do not apply default ns to attributes:
  7232. // http://www.w3.org/TR/REC-xml-names/#defaulting
  7233. for(var i=0,o=e.attribList.length;i<o;i++){var s=e.attribList[i],u=s[0],l=s[1],c=N(u,!0),d=c.prefix,f=c.local,h=""===d?"":r.ns[d]||"",p={name:u,value:l,prefix:d,local:f,uri:h};
  7234. // if there's any attributes with an undefined namespace,
  7235. // then fail on them now.
  7236. d&&"xmlns"!==d&&!h&&(P(e,"Unbound namespace prefix: "+JSON.stringify(d)),p.uri=d),e.tag.attributes[u]=p,M(e,"onattribute",p)}e.attribList.length=0}e.tag.isSelfClosing=!!t,
  7237. // process the tag
  7238. e.sawRoot=!0,e.tags.push(e.tag),M(e,"onopentag",e.tag),t||(
  7239. // special case for <script> in non-strict mode.
  7240. e.noscript||"script"!==e.tagName.toLowerCase()?e.state=S.TEXT:e.state=S.SCRIPT,e.tag=null,e.tagName=""),e.attribName=e.attribValue="",e.attribList.length=0}function I(e){if(!e.tagName)return P(e,"Weird empty close tag."),e.textNode+="</>",void(e.state=S.TEXT);if(e.script){if("script"!==e.tagName)return e.script+="</"+e.tagName+">",e.tagName="",void(e.state=S.SCRIPT);M(e,"onscript",e.script),e.script=""}
  7241. // first make sure that the closing tag actually exists.
  7242. // <a><b></c></b></a> will close everything, otherwise.
  7243. var t=e.tags.length,r=e.tagName;e.strict||(r=r[e.looseCase]());for(var n=r;t--;){if(e.tags[t].name===n)break;
  7244. // fail the first time in strict mode
  7245. P(e,"Unexpected close tag")}
  7246. // didn't find it. we already failed for strict, so just abort.
  7247. if(t<0)return P(e,"Unmatched closing tag: "+e.tagName),e.textNode+="</"+e.tagName+">",void(e.state=S.TEXT);e.tagName=r;for(var a=e.tags.length;a-- >t;){var i=e.tag=e.tags.pop();e.tagName=e.tag.name,M(e,"onclosetag",e.tagName);var o={};for(var s in i.ns)o[s]=i.ns[s];var u=e.tags[e.tags.length-1]||e;e.opt.xmlns&&i.ns!==u.ns&&
  7248. // remove namespace bindings introduced by tag
  7249. Object.keys(i.ns).forEach((function(t){var r=i.ns[t];M(e,"onclosenamespace",{prefix:t,uri:r})}))}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=S.TEXT}function O(e){var t,r=e.entity,n=r.toLowerCase(),a="";return e.ENTITIES[r]?e.ENTITIES[r]:e.ENTITIES[n]?e.ENTITIES[n]:("#"===(r=n).charAt(0)&&("x"===r.charAt(1)?(r=r.slice(2),a=(t=parseInt(r,16)).toString(16)):(r=r.slice(1),a=(t=parseInt(r,10)).toString(10))),r=r.replace(/^0+/,""),isNaN(t)||a.toLowerCase()!==r?(P(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function D(e,t){"<"===t?(e.state=S.OPEN_WAKA,e.startTagPosition=e.position):m(t)||(
  7250. // have to process this as a text node.
  7251. // weird, but happens.
  7252. P(e,"Non-whitespace before first tag."),e.textNode=t,e.state=S.TEXT)}function R(e,t){var r="";return t<e.length&&(r=e.charAt(t)),r}S=e.STATE,String.fromCodePoint||function(){var e=String.fromCharCode,t=Math.floor,r=function(){var r,n,a=[],i=-1,o=arguments.length;if(!o)return"";for(var s="";++i<o;){var u=Number(arguments[i]);if(!isFinite(u)||// `NaN`, `+Infinity`, or `-Infinity`
  7253. u<0||// not a valid Unicode code point
  7254. u>1114111||// not a valid Unicode code point
  7255. t(u)!==u)throw RangeError("Invalid code point: "+u);u<=65535?// BMP code point
  7256. a.push(u):(// Astral code point; split in surrogate halves
  7257. // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
  7258. r=55296+((u-=65536)>>10),n=u%1024+56320,a.push(r,n)),(i+1===o||a.length>16384)&&(s+=e.apply(null,a),a.length=0)}return s}
  7259. /* istanbul ignore next */;Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:r,configurable:!0,writable:!0}):String.fromCodePoint=r}()}(t)
  7260. /***/},
  7261. /***/2830:
  7262. /***/function(e,t,r){
  7263. // Copyright Joyent, Inc. and other Node contributors.
  7264. // Permission is hereby granted, free of charge, to any person obtaining a
  7265. // copy of this software and associated documentation files (the
  7266. // "Software"), to deal in the Software without restriction, including
  7267. // without limitation the rights to use, copy, modify, merge, publish,
  7268. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7269. // persons to whom the Software is furnished to do so, subject to the
  7270. // following conditions:
  7271. // The above copyright notice and this permission notice shall be included
  7272. // in all copies or substantial portions of the Software.
  7273. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7274. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7275. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7276. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7277. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7278. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7279. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7280. e.exports=a;var n=r(7187).EventEmitter;
  7281. // old-style streams. Note that the pipe method (the only relevant
  7282. // part of this class) is overridden in the Readable class.
  7283. function a(){n.call(this)}r(5717)(a,n),a.Readable=r(6577),a.Writable=r(323),a.Duplex=r(8656),a.Transform=r(4473),a.PassThrough=r(2366),a.finished=r(1086),a.pipeline=r(6472),
  7284. // Backwards-compat with node 0.4.x
  7285. a.Stream=a,a.prototype.pipe=function(e,t){var r=this;function a(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function i(){r.readable&&r.resume&&r.resume()}r.on("data",a),e.on("drain",i),
  7286. // If the 'end' option is not supplied, dest.end() will be called when
  7287. // source gets the 'end' or 'close' events. Only dest.end() once.
  7288. e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",u));var o=!1;function s(){o||(o=!0,e.end())}function u(){o||(o=!0,"function"===typeof e.destroy&&e.destroy())}
  7289. // don't leave dangling pipes when there are errors.
  7290. function l(e){if(c(),0===n.listenerCount(this,"error"))throw e;// Unhandled stream error in pipe.
  7291. }
  7292. // remove all the event listeners that were added.
  7293. function c(){r.removeListener("data",a),e.removeListener("drain",i),r.removeListener("end",s),r.removeListener("close",u),r.removeListener("error",l),e.removeListener("error",l),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}
  7294. // Allow for unix-like usage: A.pipe(B).pipe(C)
  7295. return r.on("error",l),e.on("error",l),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e}},
  7296. /***/8106:
  7297. /***/function(e){"use strict";var t={};function r(e,r,n){n||(n=Error);var a=
  7298. function(e){var t,n;function a(t,n,a){return e.call(this,function(e,t,n){return"string"===typeof r?r:r(e,t,n)}(t,n,a))||this}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a}(n);a.prototype.name=n.name,a.prototype.code=e,t[e]=a}// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
  7299. function n(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
  7300. r("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),r("ERR_INVALID_ARG_TYPE",(function(e,t,r){
  7301. // determiner: 'must be' or 'must not be'
  7302. var a,i,o,s;if("string"===typeof t&&(i="not ",t.substr(!o||o<0?0:+o,i.length)===i)?(a="must not be",t=t.replace(/^not /,"")):a="must be",// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
  7303. function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
  7304. (e," argument"))
  7305. // For cases like 'first argument'
  7306. s="The ".concat(e," ").concat(a," ").concat(n(t,"type"));else{var u=function(e,t,r){return"number"!==typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";s='The "'.concat(e,'" ').concat(u," ").concat(a," ").concat(n(t,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},
  7307. /***/8656:
  7308. /***/function(e,t,r){"use strict";
  7309. // Copyright Joyent, Inc. and other Node contributors.
  7310. // Permission is hereby granted, free of charge, to any person obtaining a
  7311. // copy of this software and associated documentation files (the
  7312. // "Software"), to deal in the Software without restriction, including
  7313. // without limitation the rights to use, copy, modify, merge, publish,
  7314. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7315. // persons to whom the Software is furnished to do so, subject to the
  7316. // following conditions:
  7317. // The above copyright notice and this permission notice shall be included
  7318. // in all copies or substantial portions of the Software.
  7319. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7320. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7321. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7322. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7323. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7324. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7325. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7326. // a duplex stream is just a stream that is both readable and writable.
  7327. // Since JS doesn't have multiple prototypal inheritance, this class
  7328. // prototypally inherits from Readable, and then parasitically from
  7329. // Writable.
  7330. /*<replacement>*/var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};
  7331. /*</replacement>*/e.exports=l;var a=r(6577),i=r(323);r(5717)(l,a);for(
  7332. // Allow the keys array to be GC'ed.
  7333. var o=n(i.prototype),s=0;s<o.length;s++){var u=o[s];l.prototype[u]||(l.prototype[u]=i.prototype[u])}function l(e){if(!(this instanceof l))return new l(e);a.call(this,e),i.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",c)))}
  7334. // the no-half-open enforcer
  7335. function c(){
  7336. // If the writable side ended, then we're ok.
  7337. this._writableState.ended||
  7338. // no more data can be written.
  7339. // But allow more writes to happen in this tick.
  7340. process.nextTick(d,this)}function d(e){e.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{
  7341. // making it explicit this property is not enumerable
  7342. // because otherwise some prototype manipulation in
  7343. // userland will fail
  7344. enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"writableBuffer",{
  7345. // making it explicit this property is not enumerable
  7346. // because otherwise some prototype manipulation in
  7347. // userland will fail
  7348. enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(l.prototype,"writableLength",{
  7349. // making it explicit this property is not enumerable
  7350. // because otherwise some prototype manipulation in
  7351. // userland will fail
  7352. enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(l.prototype,"destroyed",{
  7353. // making it explicit this property is not enumerable
  7354. // because otherwise some prototype manipulation in
  7355. // userland will fail
  7356. enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){
  7357. // we ignore the value if the stream
  7358. // has not been initialized yet
  7359. void 0!==this._readableState&&void 0!==this._writableState&&(
  7360. // backward compatibility, the user is explicitly
  7361. // managing destroyed
  7362. this._readableState.destroyed=e,this._writableState.destroyed=e)}})},
  7363. /***/2366:
  7364. /***/function(e,t,r){"use strict";
  7365. // Copyright Joyent, Inc. and other Node contributors.
  7366. // Permission is hereby granted, free of charge, to any person obtaining a
  7367. // copy of this software and associated documentation files (the
  7368. // "Software"), to deal in the Software without restriction, including
  7369. // without limitation the rights to use, copy, modify, merge, publish,
  7370. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7371. // persons to whom the Software is furnished to do so, subject to the
  7372. // following conditions:
  7373. // The above copyright notice and this permission notice shall be included
  7374. // in all copies or substantial portions of the Software.
  7375. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7376. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7377. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7378. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7379. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7380. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7381. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7382. // a passthrough stream.
  7383. // basically just the most minimal sort of Transform stream.
  7384. // Every written chunk gets output as-is.
  7385. e.exports=a;var n=r(4473);function a(e){if(!(this instanceof a))return new a(e);n.call(this,e)}r(5717)(a,n),a.prototype._transform=function(e,t,r){r(null,e)}},
  7386. /***/6577:
  7387. /***/function(e,t,r){"use strict";
  7388. // Copyright Joyent, Inc. and other Node contributors.
  7389. // Permission is hereby granted, free of charge, to any person obtaining a
  7390. // copy of this software and associated documentation files (the
  7391. // "Software"), to deal in the Software without restriction, including
  7392. // without limitation the rights to use, copy, modify, merge, publish,
  7393. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7394. // persons to whom the Software is furnished to do so, subject to the
  7395. // following conditions:
  7396. // The above copyright notice and this permission notice shall be included
  7397. // in all copies or substantial portions of the Software.
  7398. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7399. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7400. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7401. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7402. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7403. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7404. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7405. /*<replacement>*/
  7406. var n;
  7407. /*</replacement>*/e.exports=M,M.ReadableState=E;
  7408. /*<replacement>*/
  7409. r(7187).EventEmitter;var a=function(e,t){return e.listeners(t).length},i=r(3194),o=r(2860).Buffer,s=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};
  7410. /*<replacement>*/
  7411. var u,l=r(964);u=l&&l.debuglog?l.debuglog("stream"):function(){}
  7412. /*</replacement>*/;var c,d,f,h=r(9686),p=r(1029),y=r(94).getHighWaterMark,m=r(8106)/* .codes */.q,v=m.ERR_INVALID_ARG_TYPE,g=m.ERR_STREAM_PUSH_AFTER_EOF,b=m.ERR_METHOD_NOT_IMPLEMENTED,w=m.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(5717)(M,i);var S=p.errorOrDestroy,L=["error","close","destroy","pause","resume"];function E(e,t,a){n=n||r(8656),e=e||{},
  7413. // Duplex streams are both readable and writable, but share
  7414. // the same options object.
  7415. // However, some cases require setting options to different
  7416. // values for the readable and the writable sides of the duplex stream.
  7417. // These options can be provided separately as readableXXX and writableXXX.
  7418. "boolean"!==typeof a&&(a=t instanceof n),
  7419. // object stream flag. Used to make read(n) ignore n and to
  7420. // make all the buffer merging and length checks go away
  7421. this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.readableObjectMode),
  7422. // the point at which it stops calling _read() to fill the buffer
  7423. // Note: 0 is a valid value, means "don't call _read preemptively ever"
  7424. this.highWaterMark=y(this,e,"readableHighWaterMark",a),
  7425. // A linked list is used to store data chunks instead of an array because the
  7426. // linked list can remove elements from the beginning faster than
  7427. // array.shift()
  7428. this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,
  7429. // a flag to be able to tell if the event 'readable'/'data' is emitted
  7430. // immediately, or on a later tick. We set this to true at first, because
  7431. // any actions that shouldn't happen until "later" should generally also
  7432. // not happen before the first read call.
  7433. this.sync=!0,
  7434. // whenever we return null, then we set a flag to say
  7435. // that we're awaiting a 'readable' event emission.
  7436. this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,
  7437. // Should close be emitted on destroy. Defaults to true.
  7438. this.emitClose=!1!==e.emitClose,
  7439. // Should .destroy() be called after 'end' (and potentially 'finish')
  7440. this.autoDestroy=!!e.autoDestroy,
  7441. // has it been destroyed
  7442. this.destroyed=!1,
  7443. // Crypto is kind of old and crusty. Historically, its default string
  7444. // encoding is 'binary' so we have to make this configurable.
  7445. // Everything else in the universe uses 'utf8', though.
  7446. this.defaultEncoding=e.defaultEncoding||"utf8",
  7447. // the number of writers that are awaiting a drain event in .pipe()s
  7448. this.awaitDrain=0,
  7449. // if true, a maybeReadMore has been scheduled
  7450. this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(c||(c=r(2553)/* .StringDecoder */.s),this.decoder=new c(e.encoding),this.encoding=e.encoding)}function M(e){if(n=n||r(8656),!(this instanceof M))return new M(e);
  7451. // Checking for a Stream.Duplex instance is faster here instead of inside
  7452. // the ReadableState constructor, at least with V8 6.5
  7453. var t=this instanceof n;this._readableState=new E(e,this,t),
  7454. // legacy
  7455. this.readable=!0,e&&("function"===typeof e.read&&(this._read=e.read),"function"===typeof e.destroy&&(this._destroy=e.destroy)),i.call(this)}function k(e,t,r,n,a){u("readableAddChunk",t);var i,l=e._readableState;if(null===t)l.reading=!1,function(e,t){if(u("onEofChunk"),t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?
  7456. // if we are sync, wait until next tick to emit the data.
  7457. // Otherwise we risk emitting data in the flow()
  7458. // the readable code triggers during a read() call
  7459. P(e):(
  7460. // emit 'readable' now to make sure it gets picked up.
  7461. t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,C(e)))}
  7462. // Don't emit readable right away in sync mode, because this can trigger
  7463. // another read() call => stack overflow. This way, it might trigger
  7464. // a nextTick recursion warning, but that's not so bad.
  7465. (e,l);else if(a||(i=function(e,t){var r;n=t,o.isBuffer(n)||n instanceof s||"string"===typeof t||void 0===t||e.objectMode||(r=new v("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(l,t)),i)S(e,i);else if(l.objectMode||t&&t.length>0)if("string"===typeof t||l.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=function(e){return o.from(e)}(t)),n)l.endEmitted?S(e,new w):x(e,l,t,!0);else if(l.ended)S(e,new g);else{if(l.destroyed)return!1;l.reading=!1,l.decoder&&!r?(t=l.decoder.write(t),l.objectMode||0!==t.length?x(e,l,t,!1):N(e,l)):x(e,l,t,!1)}else n||(l.reading=!1,N(e,l));
  7466. // We can push more data if we are below the highWaterMark.
  7467. // Also, if we have no data yet, we can stand some more bytes.
  7468. // This is to work around cases where hwm=0, such as the repl.
  7469. return!l.ended&&(l.length<l.highWaterMark||0===l.length)}function x(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",r)):(
  7470. // update the buffer info.
  7471. t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&P(e)),N(e,t)}Object.defineProperty(M.prototype,"destroyed",{
  7472. // making it explicit this property is not enumerable
  7473. // because otherwise some prototype manipulation in
  7474. // userland will fail
  7475. enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){
  7476. // we ignore the value if the stream
  7477. // has not been initialized yet
  7478. this._readableState&&(
  7479. // backward compatibility, the user is explicitly
  7480. // managing destroyed
  7481. this._readableState.destroyed=e)}}),M.prototype.destroy=p.destroy,M.prototype._undestroy=p.undestroy,M.prototype._destroy=function(e,t){t(e)},
  7482. // Manually shove something into the read() buffer.
  7483. // This returns true if the highWaterMark has not been hit yet,
  7484. // similar to how Writable.write() returns true if you should
  7485. // write() some more.
  7486. M.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"===typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=o.from(e,t),t=""),r=!0),k(this,e,t,!1,r)},
  7487. // Unshift should *always* be something directly out of read()
  7488. M.prototype.unshift=function(e){return k(this,e,null,!0,!1)},M.prototype.isPaused=function(){return!1===this._readableState.flowing},
  7489. // backwards compatibility.
  7490. M.prototype.setEncoding=function(e){c||(c=r(2553)/* .StringDecoder */.s);var t=new c(e);this._readableState.decoder=t,
  7491. // If setEncoding(null), decoder.encoding equals utf8
  7492. this._readableState.encoding=this._readableState.decoder.encoding;for(
  7493. // Iterate over current buffer to convert already stored Buffers:
  7494. var n=this._readableState.buffer.head,a="";null!==n;)a+=t.write(n.data),n=n.next;return this._readableState.buffer.clear(),""!==a&&this._readableState.buffer.push(a),this._readableState.length=a.length,this};
  7495. // Don't raise the hwm > 1GB
  7496. var T=1073741824;
  7497. // This function is designed to be inlinable, so please take care when making
  7498. // changes to the function body.
  7499. function F(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?
  7500. // Only flow one buffer at a time
  7501. t.flowing&&t.length?t.buffer.head.data.length:t.length:(
  7502. // If we're asking for more than the current hwm, then raise the hwm.
  7503. e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=T?
  7504. // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.
  7505. e=T:(
  7506. // Get the next highest power of 2 to prevent increasing hwm excessively in
  7507. // tiny amounts
  7508. e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:
  7509. // Don't have enough
  7510. t.ended?t.length:(t.needReadable=!0,0))}
  7511. // you can override either this method, or the async _read(n) below.
  7512. function P(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(u("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(C,e))}function C(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),
  7513. // The stream needs another readable event if
  7514. // 1. It is not flowing, as the flow mechanism will take
  7515. // care of it.
  7516. // 2. It is not ended.
  7517. // 3. It is below the highWaterMark, so we can schedule
  7518. // another readable later.
  7519. t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,D(e)}
  7520. // at this point, the user has presumably seen the 'readable' event,
  7521. // and called read() to consume some data. that may have triggered
  7522. // in turn another _read(n) call, in which case reading = true if
  7523. // it's in progress.
  7524. // However, if we're not ended, or reading, and the length < hwm,
  7525. // then go ahead and try to read some more preemptively.
  7526. function N(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(W,e,t))}function W(e,t){
  7527. // Attempt to read more data if we should.
  7528. // The conditions for reading more data are (one of):
  7529. // - Not enough data buffered (state.length < state.highWaterMark). The loop
  7530. // is responsible for filling the buffer with enough data if such data
  7531. // is available. If highWaterMark is 0 and we are not in the flowing mode
  7532. // we should _not_ attempt to buffer any extra data. We'll get more data
  7533. // when the stream consumer calls read() instead.
  7534. // - No data in the buffer, and the stream is in flowing mode. In this mode
  7535. // the loop below is responsible for ensuring read() is called. Failing to
  7536. // call read here would abort the flow and there's no other mechanism for
  7537. // continuing the flow if the stream consumer has just subscribed to the
  7538. // 'data' event.
  7539. // In addition to the above conditions to keep reading data, the following
  7540. // conditions prevent the data from being read:
  7541. // - The stream has ended (state.ended).
  7542. // - There is already a pending 'read' operation (state.reading). This is a
  7543. // case where the the stream has called the implementation defined _read()
  7544. // method, but they are processing the call asynchronously and have _not_
  7545. // called push() with new data. In this case we skip performing more
  7546. // read()s. The execution ends in this method again after the _read() ends
  7547. // up calling push() with more data.
  7548. for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var r=t.length;if(u("maybeReadMore read 0"),e.read(0),r===t.length)
  7549. // didn't get any data, stop spinning.
  7550. break}t.readingMore=!1}
  7551. // abstract method. to be overridden in specific implementation classes.
  7552. // call cb(er, data) where data is <= n in length.
  7553. // for virtual (non-string, non-buffer) streams, "length" is somewhat
  7554. // arbitrary, and perhaps not very meaningful.
  7555. function j(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?
  7556. // flowing needs to be set to true now, otherwise
  7557. // the upcoming resume will not flow.
  7558. t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function I(e){u("readable nexttick read 0"),e.read(0)}
  7559. // pause() and resume() are remnants of the legacy readable stream API
  7560. // If the user uses them, then switch into old mode.
  7561. function O(e,t){u("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),D(e),t.flowing&&!t.reading&&e.read(0)}function D(e){var t=e._readableState;for(u("flow",t.flowing);t.flowing&&null!==e.read(););}
  7562. // wrap an old-style stream as the async data source.
  7563. // This is *not* part of the readable stream interface.
  7564. // It is an ugly unfortunate mess of history.
  7565. // Pluck off n bytes from an array of buffers.
  7566. // Length is the combined lengths of all the buffers in the list.
  7567. // This function is designed to be inlinable, so please take care when making
  7568. // changes to the function body.
  7569. function R(e,t){
  7570. // nothing buffered
  7571. return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(
  7572. // read it all, truncate the list
  7573. r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):
  7574. // read part of list
  7575. r=t.buffer.consume(e,t.decoder),r);var r}function V(e){var t=e._readableState;u("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(U,t,e))}function U(e,t){
  7576. // Check that we didn't get one last unshift.
  7577. if(u("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){
  7578. // In case of duplex streams we need a way to detect
  7579. // if the writable side is ready for autoDestroy as well
  7580. var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function A(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}
  7581. /***/M.prototype.read=function(e){u("read",e),e=parseInt(e,10);var t=this._readableState,r=e;
  7582. // if we're doing read(0) to trigger a readable event, but we
  7583. // already have a bunch of data in the buffer, then just trigger
  7584. // the 'readable' event and move on.
  7585. if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?V(this):P(this),null;
  7586. // if we've ended, and we're now clear, then finish it up.
  7587. if(0===(e=F(e,t))&&t.ended)return 0===t.length&&V(this),null;
  7588. // All the actual chunk generation logic needs to be
  7589. // *below* the call to _read. The reason is that in certain
  7590. // synthetic stream cases, such as passthrough streams, _read
  7591. // may be a completely synchronous operation which may change
  7592. // the state of the read buffer, providing enough data when
  7593. // before there was *not* enough.
  7594. // So, the steps are:
  7595. // 1. Figure out what the state of things will be after we do
  7596. // a read from the buffer.
  7597. // 2. If that resulting state will trigger a _read, then call _read.
  7598. // Note that this may be asynchronous, or synchronous. Yes, it is
  7599. // deeply ugly to write APIs this way, but that still doesn't mean
  7600. // that the Readable class should behave improperly, as streams are
  7601. // designed to be sync/async agnostic.
  7602. // Take note if the _read call is sync or async (ie, if the read call
  7603. // has returned yet), so that we know whether or not it's safe to emit
  7604. // 'readable' etc.
  7605. // 3. Actually pull the requested chunks out of the buffer and return.
  7606. // if we need a readable event, then we need to do some reading.
  7607. var n,a=t.needReadable;return u("need readable",a),
  7608. // if we currently have less than the highWaterMark, then also read some
  7609. (0===t.length||t.length-e<t.highWaterMark)&&u("length less than watermark",a=!0),
  7610. // however, if we've ended, then there's no point, and if we're already
  7611. // reading, then it's unnecessary.
  7612. t.ended||t.reading?u("reading or ended",a=!1):a&&(u("do read"),t.reading=!0,t.sync=!0,
  7613. // if the length is currently zero, then we *need* a readable event.
  7614. 0===t.length&&(t.needReadable=!0),
  7615. // call internal read method
  7616. this._read(t.highWaterMark),t.sync=!1,
  7617. // If _read pushed data synchronously, then `reading` will be false,
  7618. // and we need to re-evaluate how much data we can return to the user.
  7619. t.reading||(e=F(r,t))),null===(n=e>0?R(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(
  7620. // If we have nothing in the buffer, then we want to know
  7621. // as soon as we *do* get something into the buffer.
  7622. t.ended||(t.needReadable=!0),
  7623. // If we tried to read() past the EOF, then emit end on the next tick.
  7624. r!==e&&t.ended&&V(this)),null!==n&&this.emit("data",n),n},M.prototype._read=function(e){S(this,new b("_read()"))},M.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e)}n.pipesCount+=1,u("pipe count=%d opts=%j",n.pipesCount,t);var i=(!t||!1!==t.end)&&e!==process.stdout&&e!==process.stderr?s:y;function o(t,a){u("onunpipe"),t===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,u("cleanup"),
  7625. // cleanup event handlers once the pipe is broken
  7626. e.removeListener("close",h),e.removeListener("finish",p),e.removeListener("drain",l),e.removeListener("error",f),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",y),r.removeListener("data",d),c=!0,
  7627. // if the reader is waiting for a drain event from this
  7628. // specific writer, then it would cause it to never start
  7629. // flowing again.
  7630. // So, if this is awaiting a drain, then we just call it now.
  7631. // If we don't know, then assume that we are waiting for one.
  7632. !n.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}function s(){u("onend"),e.end()}
  7633. // when the dest drains, it reduces the awaitDrain counter
  7634. // on the source. This would be more elegant with a .once()
  7635. // handler in flow(), but adding and removing repeatedly is
  7636. // too slow.
  7637. n.endEmitted?process.nextTick(i):r.once("end",i),e.on("unpipe",o);var l=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,D(e))}}(r);e.on("drain",l);var c=!1;function d(t){u("ondata");var a=e.write(t);u("dest.write",a),!1===a&&(
  7638. // If the user unpiped during `dest.write()`, it is possible
  7639. // to get stuck in a permanently paused state if that write
  7640. // also returned false.
  7641. // => Check whether `dest` is still a piping destination.
  7642. (1===n.pipesCount&&n.pipes===e||n.pipesCount>1&&-1!==A(n.pipes,e))&&!c&&(u("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}
  7643. // if the dest has an error, then stop piping into it.
  7644. // however, don't suppress the throwing behavior for this.
  7645. function f(t){u("onerror",t),y(),e.removeListener("error",f),0===a(e,"error")&&S(e,t)}
  7646. // Make sure our error handler is attached before userland ones.
  7647. // Both close and finish should trigger unpipe, but only once.
  7648. function h(){e.removeListener("finish",p),y()}function p(){u("onfinish"),e.removeListener("close",h),y()}function y(){u("unpipe"),r.unpipe(e)}
  7649. // tell the dest that it's being piped to
  7650. return r.on("data",d),function(e,t,r){
  7651. // Sadly this is not cacheable as some libraries bundle their own
  7652. // event emitter implementation with them.
  7653. if("function"===typeof e.prependListener)return e.prependListener(t,r);
  7654. // This is a hack to make sure that our error handler is attached before any
  7655. // userland ones. NEVER DO THIS. This is here only because this code needs
  7656. // to continue to work with older versions of Node.js that do not include
  7657. // the prependListener() method. The goal is to eventually remove this hack.
  7658. e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",f),e.once("close",h),e.once("finish",p),e.emit("pipe",r),
  7659. // start the flow if it hasn't been started already.
  7660. n.flowing||(u("pipe resume"),r.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};
  7661. // if we're not piping anywhere, then do nothing.
  7662. if(0===t.pipesCount)return this;
  7663. // just one destination. most common case.
  7664. if(1===t.pipesCount)
  7665. // passed in one, but it's not the right one.
  7666. return e&&e!==t.pipes||(e||(e=t.pipes),
  7667. // got a match.
  7668. t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;
  7669. // slow case. multiple pipe destinations.
  7670. if(!e){
  7671. // remove all.
  7672. var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<a;i++)n[i].emit("unpipe",this,{hasUnpiped:!1});return this}
  7673. // try to find the right one.
  7674. var o=A(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r)),this},
  7675. // set up data events if they are asked for
  7676. // Ensure readable listeners eventually get something
  7677. M.prototype.on=function(e,t){var r=i.prototype.on.call(this,e,t),n=this._readableState;return"data"===e?(
  7678. // update readableListening so that resume() may be a no-op
  7679. // a few lines down. This is needed to support once('readable').
  7680. n.readableListening=this.listenerCount("readable")>0,
  7681. // Try start flowing on next tick if stream isn't explicitly paused
  7682. !1!==n.flowing&&this.resume()):"readable"===e&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,u("on readable",n.length,n.reading),n.length?P(this):n.reading||process.nextTick(I,this))),r},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var r=i.prototype.removeListener.call(this,e,t);return"readable"===e&&
  7683. // We need to check if there is someone still listening to
  7684. // readable and reset the state. However this needs to happen
  7685. // after readable has been emitted but before I/O (nextTick) to
  7686. // support once('readable', fn) cycles. This means that calling
  7687. // resume within the same tick will have no
  7688. // effect.
  7689. process.nextTick(j,this),r},M.prototype.removeAllListeners=function(e){var t=i.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||
  7690. // We need to check if there is someone still listening to
  7691. // readable and reset the state. However this needs to happen
  7692. // after readable has been emitted but before I/O (nextTick) to
  7693. // support once('readable', fn) cycles. This means that calling
  7694. // resume within the same tick will have no
  7695. // effect.
  7696. process.nextTick(j,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(u("resume"),
  7697. // we flow only if there is no one listening
  7698. // for readable, but we still have to call
  7699. // resume()
  7700. e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(O,e,t))}(this,e)),e.paused=!1,this},M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;
  7701. // proxy all the other methods.
  7702. // important when wrapping filters and duplexes.
  7703. for(var a in e.on("end",(function(){if(u("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(a){
  7704. // don't skip over falsy values in objectMode
  7705. (u("wrapped data"),r.decoder&&(a=r.decoder.write(a)),!r.objectMode||null!==a&&void 0!==a)&&((r.objectMode||a&&a.length)&&(t.push(a)||(n=!0,e.pause())))})),e)void 0===this[a]&&"function"===typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));
  7706. // proxy certain important events.
  7707. for(var i=0;i<L.length;i++)e.on(L[i],this.emit.bind(this,L[i]));
  7708. // when we try to consume some more bytes, simply unpause the
  7709. // underlying stream.
  7710. return this._read=function(t){u("wrapped _read",t),n&&(n=!1,e.resume())},this},"function"===typeof Symbol&&(M.prototype[Symbol.asyncIterator]=function(){return void 0===d&&(d=r(828)),d(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{
  7711. // making it explicit this property is not enumerable
  7712. // because otherwise some prototype manipulation in
  7713. // userland will fail
  7714. enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{
  7715. // making it explicit this property is not enumerable
  7716. // because otherwise some prototype manipulation in
  7717. // userland will fail
  7718. enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{
  7719. // making it explicit this property is not enumerable
  7720. // because otherwise some prototype manipulation in
  7721. // userland will fail
  7722. enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),
  7723. // exposed for testing purposes only.
  7724. M._fromList=R,Object.defineProperty(M.prototype,"readableLength",{
  7725. // making it explicit this property is not enumerable
  7726. // because otherwise some prototype manipulation in
  7727. // userland will fail
  7728. enumerable:!1,get:function(){return this._readableState.length}}),"function"===typeof Symbol&&(M.from=function(e,t){return void 0===f&&(f=r(1265)),f(M,e,t)})},
  7729. /***/4473:
  7730. /***/function(e,t,r){"use strict";
  7731. // Copyright Joyent, Inc. and other Node contributors.
  7732. // Permission is hereby granted, free of charge, to any person obtaining a
  7733. // copy of this software and associated documentation files (the
  7734. // "Software"), to deal in the Software without restriction, including
  7735. // without limitation the rights to use, copy, modify, merge, publish,
  7736. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7737. // persons to whom the Software is furnished to do so, subject to the
  7738. // following conditions:
  7739. // The above copyright notice and this permission notice shall be included
  7740. // in all copies or substantial portions of the Software.
  7741. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7742. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7743. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7744. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7745. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7746. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7747. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7748. // a transform stream is a readable/writable stream where you do
  7749. // something with the data. Sometimes it's called a "filter",
  7750. // but that's not a great name for it, since that implies a thing where
  7751. // some bits pass through, and others are simply ignored. (That would
  7752. // be a valid example of a transform, of course.)
  7753. // While the output is causally related to the input, it's not a
  7754. // necessarily symmetric or synchronous transformation. For example,
  7755. // a zlib stream might take multiple plain-text writes(), and then
  7756. // emit a single compressed chunk some time in the future.
  7757. // Here's how this works:
  7758. // The Transform stream has all the aspects of the readable and writable
  7759. // stream classes. When you write(chunk), that calls _write(chunk,cb)
  7760. // internally, and returns false if there's a lot of pending writes
  7761. // buffered up. When you call read(), that calls _read(n) until
  7762. // there's enough pending readable data buffered up.
  7763. // In a transform stream, the written data is placed in a buffer. When
  7764. // _read(n) is called, it transforms the queued up data, calling the
  7765. // buffered _write cb's as it consumes chunks. If consuming a single
  7766. // written chunk would result in multiple output chunks, then the first
  7767. // outputted bit calls the readcb, and subsequent chunks just go into
  7768. // the read buffer, and will cause it to emit 'readable' if necessary.
  7769. // This way, back-pressure is actually determined by the reading side,
  7770. // since _read has to be called to start processing a new chunk. However,
  7771. // a pathological inflate type of transform can cause excessive buffering
  7772. // here. For example, imagine a stream where every byte of input is
  7773. // interpreted as an integer from 0-255, and then results in that many
  7774. // bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
  7775. // 1kb of data being output. In this case, you could write a very small
  7776. // amount of input, and end up with a very large amount of output. In
  7777. // such a pathological inflating mechanism, there'd be no way to tell
  7778. // the system to stop doing the transform. A single 4MB write could
  7779. // cause the system to run out of memory.
  7780. // However, even in such a pathological case, only a single written chunk
  7781. // would be consumed, and then the rest would wait (un-transformed) until
  7782. // the results of the previous transformed chunk were consumed.
  7783. e.exports=c;var n=r(8106)/* .codes */.q,a=n.ERR_METHOD_NOT_IMPLEMENTED,i=n.ERR_MULTIPLE_CALLBACK,o=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(8656);function l(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new i);r.writechunk=null,r.writecb=null,null!=t&&
  7784. // single equals check for both `null` and `undefined`
  7785. this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}function c(e){if(!(this instanceof c))return new c(e);u.call(this,e),this._transformState={afterTransform:l.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},
  7786. // start out asking for a readable event once data is transformed.
  7787. this._readableState.needReadable=!0,
  7788. // we have implemented the _read method, and done the other things
  7789. // that Readable wants before the first _read call, so unset the
  7790. // sync guard flag.
  7791. this._readableState.sync=!1,e&&("function"===typeof e.transform&&(this._transform=e.transform),"function"===typeof e.flush&&(this._flush=e.flush)),
  7792. // When the writable side finishes, then flush out anything remaining.
  7793. this.on("prefinish",d)}function d(){var e=this;"function"!==typeof this._flush||this._readableState.destroyed?f(this,null,null):this._flush((function(t,r){f(e,t,r)}))}function f(e,t,r){if(t)return e.emit("error",t);
  7794. // TODO(BridgeAR): Write a test for these two error cases
  7795. // if there's nothing in the write buffer, then that means
  7796. // that nothing more will ever be provided
  7797. if(null!=r&&
  7798. // single equals check for both `null` and `undefined`
  7799. e.push(r),e._writableState.length)throw new s;if(e._transformState.transforming)throw new o;return e.push(null)}
  7800. /***/r(5717)(c,u),c.prototype.push=function(e,t){return this._transformState.needTransform=!1,u.prototype.push.call(this,e,t)},
  7801. // This is the part where you do stuff!
  7802. // override this function in implementation classes.
  7803. // 'chunk' is an input chunk.
  7804. // Call `push(newChunk)` to pass along transformed output
  7805. // to the readable side. You may call 'push' zero or more times.
  7806. // Call `cb(err)` when you are done with this chunk. If you pass
  7807. // an error, then that'll put the hurt on the whole operation. If you
  7808. // never call cb(), then you'll never get another chunk.
  7809. c.prototype._transform=function(e,t,r){r(new a("_transform()"))},c.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var a=this._readableState;(n.needTransform||a.needReadable||a.length<a.highWaterMark)&&this._read(a.highWaterMark)}},
  7810. // Doesn't matter what the args are here.
  7811. // _transform does all the work.
  7812. // That we got here means that the readable side wants more data.
  7813. c.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?
  7814. // mark that we need a transform, so that any data that comes in
  7815. // will get processed, now that we've asked for it.
  7816. t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},c.prototype._destroy=function(e,t){u.prototype._destroy.call(this,e,(function(e){t(e)}))}},
  7817. /***/323:
  7818. /***/function(e,t,r){"use strict";
  7819. // Copyright Joyent, Inc. and other Node contributors.
  7820. // Permission is hereby granted, free of charge, to any person obtaining a
  7821. // copy of this software and associated documentation files (the
  7822. // "Software"), to deal in the Software without restriction, including
  7823. // without limitation the rights to use, copy, modify, merge, publish,
  7824. // distribute, sublicense, and/or sell copies of the Software, and to permit
  7825. // persons to whom the Software is furnished to do so, subject to the
  7826. // following conditions:
  7827. // The above copyright notice and this permission notice shall be included
  7828. // in all copies or substantial portions of the Software.
  7829. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  7830. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  7831. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  7832. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  7833. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  7834. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  7835. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  7836. // A bit simpler than readable streams.
  7837. // Implement an async ._write(chunk, encoding, cb), and it'll handle all
  7838. // the drain event emission and buffering.
  7839. // It seems a linked list but it is not
  7840. // there will be only 2 of these for each stream
  7841. function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var a=n.callback;t.pendingcb--,a(r),n=n.next}
  7842. // reuse the free corkReq.
  7843. t.corkedRequestsFree.next=e}(t,e)}}
  7844. /* </replacement> */
  7845. /*<replacement>*/var a;
  7846. /*</replacement>*/e.exports=M,M.WritableState=E;
  7847. /*<replacement>*/
  7848. var i={deprecate:r(4927)},o=r(3194),s=r(2860).Buffer,u=("undefined"!==typeof r.g?r.g:"undefined"!==typeof window?window:"undefined"!==typeof self?self:{}).Uint8Array||function(){};
  7849. /*</replacement>*/
  7850. /*<replacement>*/var l,c=r(1029),d=r(94).getHighWaterMark,f=r(8106)/* .codes */.q,h=f.ERR_INVALID_ARG_TYPE,p=f.ERR_METHOD_NOT_IMPLEMENTED,y=f.ERR_MULTIPLE_CALLBACK,m=f.ERR_STREAM_CANNOT_PIPE,v=f.ERR_STREAM_DESTROYED,g=f.ERR_STREAM_NULL_VALUES,b=f.ERR_STREAM_WRITE_AFTER_END,w=f.ERR_UNKNOWN_ENCODING,S=c.errorOrDestroy;function L(){}function E(e,t,i){a=a||r(8656),e=e||{},
  7851. // Duplex streams are both readable and writable, but share
  7852. // the same options object.
  7853. // However, some cases require setting options to different
  7854. // values for the readable and the writable sides of the duplex stream,
  7855. // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.
  7856. "boolean"!==typeof i&&(i=t instanceof a),
  7857. // object stream flag to indicate whether or not this stream
  7858. // contains buffers or objects.
  7859. this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode),
  7860. // the point at which write() starts returning false
  7861. // Note: 0 is a valid value, means that we always return false if
  7862. // the entire buffer is not flushed immediately on write()
  7863. this.highWaterMark=d(this,e,"writableHighWaterMark",i),
  7864. // if _final has been called
  7865. this.finalCalled=!1,
  7866. // drain event flag.
  7867. this.needDrain=!1,
  7868. // at the start of calling end()
  7869. this.ending=!1,
  7870. // when end() has been called, and returned
  7871. this.ended=!1,
  7872. // when 'finish' is emitted
  7873. this.finished=!1,
  7874. // has it been destroyed
  7875. this.destroyed=!1;
  7876. // should we decode strings into buffers before passing to _write?
  7877. // this is here so that some node-core streams can optimize string
  7878. // handling at a lower level.
  7879. var o=!1===e.decodeStrings;this.decodeStrings=!o,
  7880. // Crypto is kind of old and crusty. Historically, its default string
  7881. // encoding is 'binary' so we have to make this configurable.
  7882. // Everything else in the universe uses 'utf8', though.
  7883. this.defaultEncoding=e.defaultEncoding||"utf8",
  7884. // not an actual buffer we keep track of, but a measurement
  7885. // of how much we're waiting to get pushed to some underlying
  7886. // socket or file.
  7887. this.length=0,
  7888. // a flag to see when we're in the middle of a write.
  7889. this.writing=!1,
  7890. // when true all writes will be buffered until .uncork() call
  7891. this.corked=0,
  7892. // a flag to be able to tell if the onwrite cb is called immediately,
  7893. // or on a later tick. We set this to true at first, because any
  7894. // actions that shouldn't happen until "later" should generally also
  7895. // not happen before the first write call.
  7896. this.sync=!0,
  7897. // a flag to know if we're processing previously buffered items, which
  7898. // may call the _write() callback in the same tick, so that we don't
  7899. // end up in an overlapped onwrite situation.
  7900. this.bufferProcessing=!1,
  7901. // the callback that's passed to _write(chunk,cb)
  7902. this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,a=r.writecb;if("function"!==typeof a)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,a){--t.pendingcb,r?(
  7903. // defer the callback if we are being called synchronously
  7904. // to avoid piling up things on the stack
  7905. process.nextTick(a,n),
  7906. // this can emit finish, and it will always happen
  7907. // after error
  7908. process.nextTick(C,e,t),e._writableState.errorEmitted=!0,S(e,n)):(
  7909. // the caller expect this to happen before if
  7910. // it is async
  7911. a(n),e._writableState.errorEmitted=!0,S(e,n),
  7912. // this can emit finish, but finish must
  7913. // always follow error
  7914. C(e,t))}(e,r,n,t,a);else{
  7915. // Check if we're actually ready to finish, but don't emit yet
  7916. var i=F(r)||e.destroyed;i||r.corked||r.bufferProcessing||!r.bufferedRequest||T(e,r),n?process.nextTick(x,e,r,i,a):x(e,r,i,a)}}(t,e)},
  7917. // the callback that the user supplies to write(chunk,encoding,cb)
  7918. this.writecb=null,
  7919. // the amount that is being written when _write is called.
  7920. this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,
  7921. // number of pending user-supplied write callbacks
  7922. // this must be 0 before 'finish' can be emitted
  7923. this.pendingcb=0,
  7924. // emit prefinish if the only thing we're waiting for is _write cbs
  7925. // This is relevant for synchronous Transform streams
  7926. this.prefinished=!1,
  7927. // True if the error was already emitted and should not be thrown again
  7928. this.errorEmitted=!1,
  7929. // Should close be emitted on destroy. Defaults to true.
  7930. this.emitClose=!1!==e.emitClose,
  7931. // Should .destroy() be called after 'finish' (and potentially 'end')
  7932. this.autoDestroy=!!e.autoDestroy,
  7933. // count buffered requests
  7934. this.bufferedRequestCount=0,
  7935. // allocate the first CorkedRequest, there is always
  7936. // one allocated and free to use, and we maintain at most two
  7937. this.corkedRequestsFree=new n(this)}function M(e){
  7938. // Writable ctor is applied to Duplexes, too.
  7939. // `realHasInstance` is necessary because using plain `instanceof`
  7940. // would return false, as no `_writableState` property is attached.
  7941. // Trying to use the custom `instanceof` for Writable here will also break the
  7942. // Node.js LazyTransform implementation, which has a non-trivial getter for
  7943. // `_writableState` that would lead to infinite recursion.
  7944. // Checking for a Stream.Duplex instance is faster here instead of inside
  7945. // the WritableState constructor, at least with V8 6.5
  7946. var t=this instanceof(a=a||r(8656));if(!t&&!l.call(M,this))return new M(e);this._writableState=new E(e,this,t),
  7947. // legacy.
  7948. this.writable=!0,e&&("function"===typeof e.write&&(this._write=e.write),"function"===typeof e.writev&&(this._writev=e.writev),"function"===typeof e.destroy&&(this._destroy=e.destroy),"function"===typeof e.final&&(this._final=e.final)),o.call(this)}
  7949. // Otherwise people can pipe Writable streams, which is just wrong.
  7950. function k(e,t,r,n,a,i,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new v("write")):r?e._writev(a,t.onwrite):e._write(a,i,t.onwrite),t.sync=!1}function x(e,t,r,n){r||
  7951. // Must force callback to be called on nextTick, so that we don't
  7952. // emit 'drain' before the write() consumer gets the 'false' return
  7953. // value, and has a chance to attach a 'drain' listener.
  7954. function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}
  7955. // if there's something in the buffer waiting, then process it
  7956. (e,t),t.pendingcb--,n(),C(e,t)}function T(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){
  7957. // Fast case, write everything using _writev()
  7958. var a=t.bufferedRequestCount,i=new Array(a),o=t.corkedRequestsFree;o.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,k(e,t,!0,t.length,i,"",o.finish),
  7959. // doWrite is almost always async, defer these to save a bit of time
  7960. // as the hot path ends with doWrite
  7961. t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new n(t),t.bufferedRequestCount=0}else{
  7962. // Slow case, write chunks one-by-one
  7963. for(;r;){var l=r.chunk,c=r.encoding,d=r.callback;
  7964. // if we didn't call the onwrite immediately, then
  7965. // it means that we need to wait until it does.
  7966. // also, that means that the chunk and cb are currently
  7967. // being processed, so move the buffer counter past them.
  7968. if(k(e,t,!1,t.objectMode?1:l.length,l,c,d),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function F(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function P(e,t){e._final((function(r){t.pendingcb--,r&&S(e,r),t.prefinished=!0,e.emit("prefinish"),C(e,t)}))}function C(e,t){var r=F(t);if(r&&(function(e,t){t.prefinished||t.finalCalled||("function"!==typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(P,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){
  7969. // In case of duplex streams we need a way to detect
  7970. // if the readable side is ready for autoDestroy as well
  7971. var n=e._readableState;(!n||n.autoDestroy&&n.endEmitted)&&e.destroy()}return r}r(5717)(M,o),E.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(E.prototype,"buffer",{get:i.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"===typeof Symbol&&Symbol.hasInstance&&"function"===typeof Function.prototype[Symbol.hasInstance]?(l=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(e){return!!l.call(this,e)||this===M&&(e&&e._writableState instanceof E)}})):l=function(e){return e instanceof this},M.prototype.pipe=function(){S(this,new m)},M.prototype.write=function(e,t,r){var n,a=this._writableState,i=!1,o=!a.objectMode&&(n=e,s.isBuffer(n)||n instanceof u);return o&&!s.isBuffer(e)&&(e=function(e){return s.from(e)}(e)),"function"===typeof t&&(r=t,t=null),o?t="buffer":t||(t=a.defaultEncoding),"function"!==typeof r&&(r=L),a.ending?function(e,t){var r=new b;
  7972. // TODO: defer error events consistently everywhere, not just the cb
  7973. S(e,r),process.nextTick(t,r)}
  7974. // Checks that a user-supplied chunk is valid, especially for the particular
  7975. // mode the stream is in. Currently this means that `null` is never accepted
  7976. // and undefined/non-string values are only allowed in object mode.
  7977. (this,r):(o||function(e,t,r,n){var a;return null===r?a=new g:"string"===typeof r||t.objectMode||(a=new h("chunk",["string","Buffer"],r)),!a||(S(e,a),process.nextTick(n,a),!1)}(this,a,e,r))&&(a.pendingcb++,i=
  7978. // if we're already writing something, then just put this
  7979. // in the queue, and wait our turn. Otherwise, call _write
  7980. // If we return false, then we need a drain event, so set that flag.
  7981. function(e,t,r,n,a,i){if(!r){var o=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!==typeof t||(t=s.from(t,r));return t}(t,n,a);n!==o&&(r=!0,a="buffer",n=o)}var u=t.objectMode?1:n.length;t.length+=u;var l=t.length<t.highWaterMark;
  7982. // we must ensure that previous needDrain will not be reset to false.
  7983. l||(t.needDrain=!0);if(t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:a,isBuf:r,callback:i,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else k(e,t,!1,u,n,a,i);return l}(this,a,o,e,t,r)),i},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||T(this,e))},M.prototype.setDefaultEncoding=function(e){if(
  7984. // node::ParseEncoding() requires lower case.
  7985. "string"===typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(M.prototype,"writableBuffer",{
  7986. // making it explicit this property is not enumerable
  7987. // because otherwise some prototype manipulation in
  7988. // userland will fail
  7989. enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,"writableHighWaterMark",{
  7990. // making it explicit this property is not enumerable
  7991. // because otherwise some prototype manipulation in
  7992. // userland will fail
  7993. enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(e,t,r){r(new p("_write()"))},M.prototype._writev=null,M.prototype.end=function(e,t,r){var n=this._writableState;return"function"===typeof e?(r=e,e=null,t=null):"function"===typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),
  7994. // .end() fully uncorks
  7995. n.corked&&(n.corked=1,this.uncork()),
  7996. // ignore unnecessary end() calls.
  7997. n.ending||function(e,t,r){t.ending=!0,C(e,t),r&&(t.finished?process.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r),this},Object.defineProperty(M.prototype,"writableLength",{
  7998. // making it explicit this property is not enumerable
  7999. // because otherwise some prototype manipulation in
  8000. // userland will fail
  8001. enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,"destroyed",{
  8002. // making it explicit this property is not enumerable
  8003. // because otherwise some prototype manipulation in
  8004. // userland will fail
  8005. enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){
  8006. // we ignore the value if the stream
  8007. // has not been initialized yet
  8008. this._writableState&&(
  8009. // backward compatibility, the user is explicitly
  8010. // managing destroyed
  8011. this._writableState.destroyed=e)}}),M.prototype.destroy=c.destroy,M.prototype._undestroy=c.undestroy,M.prototype._destroy=function(e,t){t(e)}},
  8012. /***/828:
  8013. /***/function(e,t,r){"use strict";var n;function a(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var i=r(1086),o=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),l=Symbol("ended"),c=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function h(e,t){return{value:e,done:t}}function p(e){var t=e[o];if(null!==t){var r=e[f].read();
  8014. // we defer if data is null
  8015. // we can be expecting either 'end' or
  8016. // 'error'
  8017. null!==r&&(e[c]=null,e[o]=null,e[s]=null,t(h(r,!1)))}}function y(e){
  8018. // we wait for the next tick, because it might
  8019. // emit an error with process.nextTick
  8020. process.nextTick(p,e)}var m=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((a(n={get stream(){return this[f]},next:function(){var e=this,t=this[u];
  8021. // if we have detected an error in the meanwhile
  8022. // reject straight away
  8023. if(null!==t)return Promise.reject(t);if(this[l])return Promise.resolve(h(void 0,!0));if(this[f].destroyed)
  8024. // We need to defer via nextTick because if .destroy(err) is
  8025. // called, the error will be emitted via nextTick, and
  8026. // we cannot guarantee that there is no error lingering around
  8027. // waiting to be emitted.
  8028. return new Promise((function(t,r){process.nextTick((function(){e[u]?r(e[u]):t(h(void 0,!0))}))}));
  8029. // if we have multiple next() calls
  8030. // we will wait for the previous Promise to finish
  8031. // this logic is optimized to support for await loops,
  8032. // where next() is only called once at a time
  8033. var r,n=this[c];if(n)r=new Promise(function(e,t){return function(r,n){e.then((function(){t[l]?r(h(void 0,!0)):t[d](r,n)}),n)}}(n,this));else{
  8034. // fast path needed to support multiple this.push()
  8035. // without triggering the next() queue
  8036. var a=this[f].read();if(null!==a)return Promise.resolve(h(a,!1));r=new Promise(this[d])}return this[c]=r,r}},Symbol.asyncIterator,(function(){return this})),a(n,"return",(function(){var e=this;
  8037. // destroy(err, cb) is a private API
  8038. // we can guarantee we have that here, because we control the
  8039. // Readable class this is attached to
  8040. return new Promise((function(t,r){e[f].destroy(null,(function(e){e?r(e):t(h(void 0,!0))}))}))})),n),m);e.exports=function(e){var t,r=Object.create(v,(a(t={},f,{value:e,writable:!0}),a(t,o,{value:null,writable:!0}),a(t,s,{value:null,writable:!0}),a(t,u,{value:null,writable:!0}),a(t,l,{value:e._readableState.endEmitted,writable:!0}),a(t,d,{value:function(e,t){var n=r[f].read();n?(r[c]=null,r[o]=null,r[s]=null,e(h(n,!1))):(r[o]=e,r[s]=t)},writable:!0}),t));return r[c]=null,i(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=r[s];
  8041. // reject if we are waiting for data in the Promise
  8042. // returned by next() and store the error
  8043. return null!==t&&(r[c]=null,r[o]=null,r[s]=null,t(e)),void(r[u]=e)}var n=r[o];null!==n&&(r[c]=null,r[o]=null,r[s]=null,n(h(void 0,!0))),r[l]=!0})),e.on("readable",y.bind(null,r)),r}},
  8044. /***/9686:
  8045. /***/function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,r){return(t=s(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,s(n.key),n)}}function s(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}var u=r(2961).Buffer,l=r(9862).inspect,c=l&&l.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,r,n;return t=e,(r=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return u.alloc(0);for(var t,r,n,a=u.allocUnsafe(e>>>0),i=this.head,o=0;i;)t=i.data,r=a,n=o,u.prototype.copy.call(t,r,n),o+=i.data.length,i=i.next;return a}
  8046. // Consumes a specified amount of bytes or characters from the buffered data.
  8047. },{key:"consume",value:function(e,t){var r;return e<this.head.data.length?(
  8048. // `slice` is the same for buffers and strings.
  8049. r=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):
  8050. // First chunk is a perfect match.
  8051. r=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),r}},{key:"first",value:function(){return this.head.data}
  8052. // Consumes a specified amount of characters from the buffered data.
  8053. },{key:"_getString",value:function(e){var t=this.head,r=1,n=t.data;for(e-=n.length;t=t.next;){var a=t.data,i=e>a.length?a.length:e;if(i===a.length?n+=a:n+=a.slice(0,e),0===(e-=i)){i===a.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=a.slice(i));break}++r}return this.length-=r,n}
  8054. // Consumes a specified amount of bytes from the buffered data.
  8055. },{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var a=r.data,i=e>a.length?a.length:e;if(a.copy(t,t.length-e,0,i),0===(e-=i)){i===a.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=a.slice(i));break}++n}return this.length-=n,t}
  8056. // Make sure the linked list only shows the minimal necessary information.
  8057. },{key:c,value:function(e,t){return l(this,a(a({},t),{},{
  8058. // Only inspect one level.
  8059. depth:0,
  8060. // It should not recurse.
  8061. customInspect:!1}))}}])&&o(t.prototype,r),n&&o(t,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},
  8062. /***/1029:
  8063. /***/function(e){"use strict";
  8064. // undocumented cb() API, needed for core, not for public API
  8065. function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var i=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(a?a(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(
  8066. // we set destroyed to true before firing error callbacks in order
  8067. // to make it re-entrance safe in case destroy() is called within callbacks
  8068. this._readableState&&(this._readableState.destroyed=!0),
  8069. // if this is a duplex stream mark the writable part as destroyed as well
  8070. this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!a&&e?i._writableState?i._writableState.errorEmitted?process.nextTick(r,i):(i._writableState.errorEmitted=!0,process.nextTick(t,i,e)):process.nextTick(t,i,e):a?(process.nextTick(r,i),a(e)):process.nextTick(r,i)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){
  8071. // We have tests that rely on errors being emitted
  8072. // in the same tick, so changing this is semver major.
  8073. // For now when you opt-in to autoDestroy we allow
  8074. // the error to be emitted nextTick. In a future
  8075. // semver major update we should change the default to this.
  8076. var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},
  8077. /***/1086:
  8078. /***/function(e,t,r){"use strict";
  8079. // Ported from https://github.com/mafintosh/end-of-stream with
  8080. // permission from the author, Mathias Buus (@mafintosh).
  8081. var n=r(8106)/* .codes.ERR_STREAM_PREMATURE_CLOSE */.q.ERR_STREAM_PREMATURE_CLOSE;function a(){}e.exports=function e(t,r,i){if("function"===typeof r)return e(t,null,r);r||(r={}),i=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];e.apply(this,n)}}}(i||a);var o=r.readable||!1!==r.readable&&t.readable,s=r.writable||!1!==r.writable&&t.writable,u=function(){t.writable||c()},l=t._writableState&&t._writableState.finished,c=function(){s=!1,l=!0,o||i.call(t)},d=t._readableState&&t._readableState.endEmitted,f=function(){o=!1,d=!0,s||i.call(t)},h=function(e){i.call(t,e)},p=function(){var e;return o&&!d?(t._readableState&&t._readableState.ended||(e=new n),i.call(t,e)):s&&!l?(t._writableState&&t._writableState.ended||(e=new n),i.call(t,e)):void 0},y=function(){t.req.on("finish",c)};return!function(e){return e.setHeader&&"function"===typeof e.abort}(t)?s&&!t._writableState&&(
  8082. // legacy streams
  8083. t.on("end",u),t.on("close",u)):(t.on("complete",c),t.on("abort",p),t.req?y():t.on("request",y)),t.on("end",f),t.on("finish",c),!1!==r.error&&t.on("error",h),t.on("close",p),function(){t.removeListener("complete",c),t.removeListener("abort",p),t.removeListener("request",y),t.req&&t.req.removeListener("finish",c),t.removeListener("end",u),t.removeListener("close",u),t.removeListener("finish",c),t.removeListener("end",f),t.removeListener("error",h),t.removeListener("close",p)}}},
  8084. /***/1265:
  8085. /***/function(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")};
  8086. /***/},
  8087. /***/6472:
  8088. /***/function(e,t,r){"use strict";
  8089. // Ported from https://github.com/mafintosh/pump with
  8090. // permission from the author, Mathias Buus (@mafintosh).
  8091. var n;var a=r(8106)/* .codes */.q,i=a.ERR_MISSING_ARGS,o=a.ERR_STREAM_DESTROYED;function s(e){
  8092. // Rethrow the error if it exists to avoid swallowing it
  8093. if(e)throw e}function u(e){e()}function l(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var c,d=function(e){return e.length?"function"!==typeof e[e.length-1]?s:e.pop():s}(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new i("streams");var f=t.map((function(e,a){var i=a<t.length-1;return function(e,t,a,i){i=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(i);var s=!1;e.on("close",(function(){s=!0})),void 0===n&&(n=r(1086)),n(e,{readable:t,writable:a},(function(e){if(e)return i(e);s=!0,i()}));var u=!1;return function(t){if(!s&&!u)
  8094. // request.destroy just do .end - .abort is what we want
  8095. return u=!0,function(e){return e.setHeader&&"function"===typeof e.abort}(e)?e.abort():"function"===typeof e.destroy?e.destroy():void i(t||new o("pipe"))}}(e,i,a>0,(function(e){c||(c=e),e&&f.forEach(u),i||(f.forEach(u),d(c))}))}));return t.reduce(l)}},
  8096. /***/94:
  8097. /***/function(e,t,r){"use strict";var n=r(8106)/* .codes.ERR_INVALID_OPT_VALUE */.q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,a){var i=function(e,t,r){return null!=e.highWaterMark?e.highWaterMark:t?e[r]:null}(t,a,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(a?r:"highWaterMark",i);return Math.floor(i)}
  8098. // Default value
  8099. return e.objectMode?16:16384}}},
  8100. /***/3194:
  8101. /***/function(e,t,r){e.exports=r(7187).EventEmitter;
  8102. /***/},
  8103. /***/2553:
  8104. /***/function(e,t,r){"use strict";
  8105. // Copyright Joyent, Inc. and other Node contributors.
  8106. // Permission is hereby granted, free of charge, to any person obtaining a
  8107. // copy of this software and associated documentation files (the
  8108. // "Software"), to deal in the Software without restriction, including
  8109. // without limitation the rights to use, copy, modify, merge, publish,
  8110. // distribute, sublicense, and/or sell copies of the Software, and to permit
  8111. // persons to whom the Software is furnished to do so, subject to the
  8112. // following conditions:
  8113. // The above copyright notice and this permission notice shall be included
  8114. // in all copies or substantial portions of the Software.
  8115. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  8116. // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  8117. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  8118. // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  8119. // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  8120. // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  8121. // USE OR OTHER DEALINGS IN THE SOFTWARE.
  8122. /*<replacement>*/var n=r(396).Buffer,a=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};
  8123. /*</replacement>*/function i(e){var t;switch(this.encoding=
  8124. // Do not cache `Buffer.isEncoding` when checking encoding names as some
  8125. // modules monkey-patch it to support additional encodings
  8126. function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;// undefined
  8127. e=(""+e).toLowerCase(),t=!0}}(e);if("string"!==typeof t&&(n.isEncoding===a||!a(e)))throw new Error("Unknown encoding: "+e);return t||e}
  8128. // StringDecoder provides an interface for efficiently splitting a series of
  8129. // buffers into a series of JS strings without breaking apart multi-byte
  8130. // characters.
  8131. (e),this.encoding){case"utf16le":this.text=u,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=c,this.end=d,t=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}
  8132. // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
  8133. // continuation byte. If an invalid byte is detected, -2 is returned.
  8134. function o(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}
  8135. // Checks at most 3 bytes at the end of a Buffer in order to detect an
  8136. // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
  8137. // needed to complete the UTF-8 character (if applicable) are returned.
  8138. // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
  8139. function s(e){var t=this.lastTotal-this.lastNeed,r=
  8140. // Validates as many continuation bytes for a multi-byte UTF-8 character as
  8141. // needed or are available. If we see a non-continuation byte where we expect
  8142. // one, we "replace" the validated continuation bytes we've seen so far with
  8143. // a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
  8144. // behavior. The continuation byte check is included three times in the case
  8145. // where all of the continuation bytes for a character exist in the same buffer.
  8146. // It is also done this way as a slight performance increase instead of using a
  8147. // loop.
  8148. function(e,t,r){if(128!==(192&t[0]))return e.lastNeed=0,"\ufffd";if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"\ufffd";if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"\ufffd"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}
  8149. // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
  8150. // partial character, the character's bytes are buffered until the required
  8151. // number of bytes are available.
  8152. // UTF-16LE typically needs two bytes per character, but even if we have an even
  8153. // number of bytes available, we need to check if we end on a leading/high
  8154. // surrogate. In that case, we need to wait for the next two bytes in order to
  8155. // decode the last character properly.
  8156. function u(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}
  8157. // For UTF-16LE we do not explicitly append special replacement characters if we
  8158. // end on a partial character, we simply let v8 handle that.
  8159. function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function c(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}
  8160. // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
  8161. function f(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}
  8162. /***/t.s=i,i.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},i.prototype.end=
  8163. // For UTF-8, a replacement character is added when ending on a partial
  8164. // character.
  8165. function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\ufffd":t},
  8166. // Returns only complete characters in a Buffer
  8167. i.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var a=o(t[n]);if(a>=0)return a>0&&(e.lastNeed=a-1),a;if(--n<r||-2===a)return 0;if(a=o(t[n]),a>=0)return a>0&&(e.lastNeed=a-2),a;if(--n<r||-2===a)return 0;if(a=o(t[n]),a>=0)return a>0&&(2===a?a=0:e.lastNeed=a-3),a;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},
  8168. // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
  8169. i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},
  8170. /***/396:
  8171. /***/function(e,t,r){
  8172. /* eslint-disable node/no-deprecated-api */
  8173. var n=r(2783),a=n.Buffer;
  8174. // alternative to using Object.keys for old browsers
  8175. function i(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return a(e,t,r)}
  8176. // Copy static methods from Buffer
  8177. a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=n:(
  8178. // Copy properties from require('buffer')
  8179. i(n,t),t.Buffer=o),i(a,o),o.from=function(e,t,r){if("number"===typeof e)throw new TypeError("Argument must not be a number");return a(e,t,r)},o.alloc=function(e,t,r){if("number"!==typeof e)throw new TypeError("Argument must be a number");var n=a(e);return void 0!==t?"string"===typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return a(e)},o.allocUnsafeSlow=function(e){if("number"!==typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}
  8180. /***/},
  8181. /***/4927:
  8182. /***/function(e,t,r){
  8183. /**
  8184. * Checks `localStorage` for boolean values for the given `name`.
  8185. *
  8186. * @param {String} name
  8187. * @returns {Boolean}
  8188. * @api private
  8189. */
  8190. function n(e){
  8191. // accessing global.localStorage can trigger a DOMException in sandboxed iframes
  8192. try{if(!r.g.localStorage)return!1}catch(n){return!1}var t=r.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}
  8193. /***/
  8194. /**
  8195. * Module exports.
  8196. */
  8197. e.exports=
  8198. /**
  8199. * Mark that a method should not be used.
  8200. * Returns a modified function which warns once by default.
  8201. *
  8202. * If `localStorage.noDeprecation = true` is set, then it is a no-op.
  8203. *
  8204. * If `localStorage.throwDeprecation = true` is set, then deprecated functions
  8205. * will throw an Error when invoked.
  8206. *
  8207. * If `localStorage.traceDeprecation = true` is set, then deprecated functions
  8208. * will invoke `console.trace()` instead of `console.error()`.
  8209. *
  8210. * @param {Function} fn - the function to deprecate
  8211. * @param {String} msg - the string to print to the console when `fn` is invoked
  8212. * @returns {Function} a new "deprecated" version of `fn`
  8213. * @api public
  8214. */
  8215. function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}},
  8216. /***/9881:
  8217. /***/function(e){e.exports={isArray:function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e);
  8218. // fallback for older browsers like IE 8
  8219. }};
  8220. /***/},
  8221. /***/7888:
  8222. /***/function(e,t,r){
  8223. /*jslint node:true */
  8224. var n=r(1229),a=r(1388),i=r(6501),o=r(4673);e.exports={xml2js:n,xml2json:a,js2xml:i,json2xml:o}},
  8225. /***/6501:
  8226. /***/function(e,t,r){var n,a,i=r(4740),o=r(9881).isArray;function s(e,t,r){return(!r&&e.spaces?"\n":"")+Array(t+1).join(e.spaces)}function u(e,t,r){if(t.ignoreAttributes)return"";"attributesFn"in t&&(e=t.attributesFn(e,a,n));var i,o,u,l,c=[];for(i in e)e.hasOwnProperty(i)&&null!==e[i]&&void 0!==e[i]&&(l=t.noQuotesForNativeAttributes&&"string"!==typeof e[i]?"":'"',// ensure number and boolean are converted to String
  8227. o=(o=""+e[i]).replace(/"/g,"&quot;"),u="attributeNameFn"in t?t.attributeNameFn(i,o,a,n):i,c.push(t.spaces&&t.indentAttributes?s(t,r+1,!1):" "),c.push(u+"="+l+("attributeValueFn"in t?t.attributeValueFn(o,i,a,n):o)+l));return e&&Object.keys(e).length&&t.spaces&&t.indentAttributes&&c.push(s(t,r,!1)),c.join("")}function l(e,t,r){return n=e,a="xml",t.ignoreDeclaration?"":"<?xml"+u(e[t.attributesKey],t,r)+"?>"}function c(e,t,r){if(t.ignoreInstruction)return"";var i;for(i in e)if(e.hasOwnProperty(i))break;var o="instructionNameFn"in t?t.instructionNameFn(i,e[i],a,n):i;if("object"===typeof e[i])return n=e,a=o,"<?"+o+u(e[i][t.attributesKey],t,r)+"?>";var s=e[i]?e[i]:"";return"instructionFn"in t&&(s=t.instructionFn(s,i,a,n)),"<?"+o+(s?" "+s:"")+"?>"}function d(e,t){return t.ignoreComment?"":"\x3c!--"+("commentFn"in t?t.commentFn(e,a,n):e)+"--\x3e"}function f(e,t){return t.ignoreCdata?"":"<![CDATA["+("cdataFn"in t?t.cdataFn(e,a,n):e.replace("]]>","]]]]><![CDATA[>"))+"]]>"}function h(e,t){return t.ignoreDoctype?"":"<!DOCTYPE "+("doctypeFn"in t?t.doctypeFn(e,a,n):e)+">"}function p(e,t){return t.ignoreText?"":(// desanitize to avoid double sanitization
  8228. e=(// ensure Number and Boolean are converted to String
  8229. e=(e=""+e).replace(/&amp;/g,"&")).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"textFn"in t?t.textFn(e,a,n):e)}function y(e,t,r,i){return e.reduce((function(e,o){var l=s(t,r,i&&!e);switch(o.type){case"element":return e+l+function(e,t,r){n=e,a=e.name;var i=[],o="elementNameFn"in t?t.elementNameFn(e.name,e):e.name;i.push("<"+o),e[t.attributesKey]&&i.push(u(e[t.attributesKey],t,r));var s=e[t.elementsKey]&&e[t.elementsKey].length||e[t.attributesKey]&&"preserve"===e[t.attributesKey]["xml:space"];return s||(s="fullTagEmptyElementFn"in t?t.fullTagEmptyElementFn(e.name,e):t.fullTagEmptyElement),s?(i.push(">"),e[t.elementsKey]&&e[t.elementsKey].length&&(i.push(y(e[t.elementsKey],t,r+1)),n=e,a=e.name),i.push(t.spaces&&function(e,t){var r;if(e.elements&&e.elements.length)for(r=0;r<e.elements.length;++r)switch(e.elements[r][t.typeKey]){case"text":if(t.indentText)return!0;break;// skip to next key
  8230. case"cdata":if(t.indentCdata)return!0;break;// skip to next key
  8231. case"instruction":if(t.indentInstruction)return!0;break;// skip to next key
  8232. default:return!0}return!1}(e,t)?"\n"+Array(r+1).join(t.spaces):""),i.push("</"+o+">")):i.push("/>"),i.join("")}(o,t,r);case"comment":return e+l+d(o[t.commentKey],t);case"doctype":return e+l+h(o[t.doctypeKey],t);case"cdata":return e+(t.indentCdata?l:"")+f(o[t.cdataKey],t);case"text":return e+(t.indentText?l:"")+p(o[t.textKey],t);case"instruction":var m={};return m[o[t.nameKey]]=o[t.attributesKey]?o:o[t.instructionKey],e+(t.indentInstruction?l:"")+c(m,t,r)}}),"")}function m(e,t,r){var n;for(n in e)if(e.hasOwnProperty(n))switch(n){case t.parentKey:case t.attributesKey:break;// skip to next key
  8233. case t.textKey:if(t.indentText||r)return!0;break;// skip to next key
  8234. case t.cdataKey:if(t.indentCdata||r)return!0;break;// skip to next key
  8235. case t.instructionKey:if(t.indentInstruction||r)return!0;break;// skip to next key
  8236. case t.doctypeKey:case t.commentKey:default:return!0}return!1}function v(e,t,r,i,o){n=e,a=t;var l="elementNameFn"in r?r.elementNameFn(t,e):t;if("undefined"===typeof e||null===e||""===e)return"fullTagEmptyElementFn"in r&&r.fullTagEmptyElementFn(t,e)||r.fullTagEmptyElement?"<"+l+"></"+l+">":"<"+l+"/>";var c=[];if(t){if(c.push("<"+l),"object"!==typeof e)return c.push(">"+p(e,r)+"</"+l+">"),c.join("");e[r.attributesKey]&&c.push(u(e[r.attributesKey],r,i));var d=m(e,r,!0)||e[r.attributesKey]&&"preserve"===e[r.attributesKey]["xml:space"];if(d||(d="fullTagEmptyElementFn"in r?r.fullTagEmptyElementFn(t,e):r.fullTagEmptyElement),!d)return c.push("/>"),c.join("");c.push(">")}return c.push(g(e,r,i+1,!1)),n=e,a=t,t&&c.push((o?s(r,i,!1):"")+"</"+l+">"),c.join("")}function g(e,t,r,n){var a,i,u,y=[];for(i in e)if(e.hasOwnProperty(i))for(u=o(e[i])?e[i]:[e[i]],a=0;a<u.length;++a){switch(i){case t.declarationKey:y.push(l(u[a],t,r));break;case t.instructionKey:y.push((t.indentInstruction?s(t,r,n):"")+c(u[a],t,r));break;case t.attributesKey:case t.parentKey:break;// skip
  8237. case t.textKey:y.push((t.indentText?s(t,r,n):"")+p(u[a],t));break;case t.cdataKey:y.push((t.indentCdata?s(t,r,n):"")+f(u[a],t));break;case t.doctypeKey:y.push(s(t,r,n)+h(u[a],t));break;case t.commentKey:y.push(s(t,r,n)+d(u[a],t));break;default:y.push(s(t,r,n)+v(u[a],i,t,r,m(u[a],t)))}n=n&&!y.length}return y.join("")}e.exports=function(e,t){t=function(e){var t=i.copyOptions(e);return i.ensureFlagExists("ignoreDeclaration",t),i.ensureFlagExists("ignoreInstruction",t),i.ensureFlagExists("ignoreAttributes",t),i.ensureFlagExists("ignoreText",t),i.ensureFlagExists("ignoreComment",t),i.ensureFlagExists("ignoreCdata",t),i.ensureFlagExists("ignoreDoctype",t),i.ensureFlagExists("compact",t),i.ensureFlagExists("indentText",t),i.ensureFlagExists("indentCdata",t),i.ensureFlagExists("indentAttributes",t),i.ensureFlagExists("indentInstruction",t),i.ensureFlagExists("fullTagEmptyElement",t),i.ensureFlagExists("noQuotesForNativeAttributes",t),i.ensureSpacesExists(t),"number"===typeof t.spaces&&(t.spaces=Array(t.spaces+1).join(" ")),i.ensureKeyExists("declaration",t),i.ensureKeyExists("instruction",t),i.ensureKeyExists("attributes",t),i.ensureKeyExists("text",t),i.ensureKeyExists("comment",t),i.ensureKeyExists("cdata",t),i.ensureKeyExists("doctype",t),i.ensureKeyExists("type",t),i.ensureKeyExists("name",t),i.ensureKeyExists("elements",t),i.checkFnExists("doctype",t),i.checkFnExists("instruction",t),i.checkFnExists("cdata",t),i.checkFnExists("comment",t),i.checkFnExists("text",t),i.checkFnExists("instructionName",t),i.checkFnExists("elementName",t),i.checkFnExists("attributeName",t),i.checkFnExists("attributeValue",t),i.checkFnExists("attributes",t),i.checkFnExists("fullTagEmptyElement",t),t}(t);var r=[];return n=e,a="_root_",t.compact?r.push(g(e,t,0,!0)):(e[t.declarationKey]&&r.push(l(e[t.declarationKey],t,0)),e[t.elementsKey]&&e[t.elementsKey].length&&r.push(y(e[t.elementsKey],t,0,!r.length))),r.join("")}},
  8238. /***/4673:
  8239. /***/function(e,t,r){var n=r(6501);e.exports=function(e,t){e instanceof Buffer&&(e=e.toString());var r=null;if("string"===typeof e)try{r=JSON.parse(e)}catch(a){throw new Error("The JSON structure is invalid")}else r=e;return n(r,t)}},
  8240. /***/4740:
  8241. /***/function(e,t,r){var n=r(9881).isArray;e.exports={copyOptions:function(e){var t,r={};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return r},ensureFlagExists:function(e,t){e in t&&"boolean"===typeof t[e]||(t[e]=!1)},ensureSpacesExists:function(e){(!("spaces"in e)||"number"!==typeof e.spaces&&"string"!==typeof e.spaces)&&(e.spaces=0)},ensureAlwaysArrayExists:function(e){"alwaysArray"in e&&("boolean"===typeof e.alwaysArray||n(e.alwaysArray))||(e.alwaysArray=!1)},ensureKeyExists:function(e,t){e+"Key"in t&&"string"===typeof t[e+"Key"]||(t[e+"Key"]=t.compact?"_"+e:e)},checkFnExists:function(e,t){return e+"Fn"in t}}},
  8242. /***/1229:
  8243. /***/function(e,t,r){var n,a,i=r(6099),o=r(4740),s=r(9881).isArray;function u(e){var t=Number(e);if(!isNaN(t))return t;var r=e.toLowerCase();return"true"===r||"false"!==r&&e}function l(e,t){var r;if(n.compact){if(!a[n[e+"Key"]]&&(s(n.alwaysArray)?-1!==n.alwaysArray.indexOf(n[e+"Key"]):n.alwaysArray)&&(a[n[e+"Key"]]=[]),a[n[e+"Key"]]&&!s(a[n[e+"Key"]])&&(a[n[e+"Key"]]=[a[n[e+"Key"]]]),e+"Fn"in n&&"string"===typeof t&&(t=n[e+"Fn"](t,a)),"instruction"===e&&("instructionFn"in n||"instructionNameFn"in n))for(r in t)if(t.hasOwnProperty(r))if("instructionFn"in n)t[r]=n.instructionFn(t[r],r,a);else{var i=t[r];delete t[r],t[n.instructionNameFn(r,i,a)]=i}s(a[n[e+"Key"]])?a[n[e+"Key"]].push(t):a[n[e+"Key"]]=t}else{a[n.elementsKey]||(a[n.elementsKey]=[]);var o={};if(o[n.typeKey]=e,"instruction"===e){for(r in t)if(t.hasOwnProperty(r))break;o[n.nameKey]="instructionNameFn"in n?n.instructionNameFn(r,t,a):r,n.instructionHasAttributes?(o[n.attributesKey]=t[r][n.attributesKey],"instructionFn"in n&&(o[n.attributesKey]=n.instructionFn(o[n.attributesKey],r,a))):("instructionFn"in n&&(t[r]=n.instructionFn(t[r],r,a)),o[n.instructionKey]=t[r])}else e+"Fn"in n&&(t=n[e+"Fn"](t,a)),o[n[e+"Key"]]=t;n.addParent&&(o[n.parentKey]=a),a[n.elementsKey].push(o)}}function c(e){var t;if("attributesFn"in n&&e&&(e=n.attributesFn(e,a)),(n.trim||"attributeValueFn"in n||"attributeNameFn"in n||n.nativeTypeAttributes)&&e)for(t in e)if(e.hasOwnProperty(t)&&(n.trim&&(e[t]=e[t].trim()),n.nativeTypeAttributes&&(e[t]=u(e[t])),"attributeValueFn"in n&&(e[t]=n.attributeValueFn(e[t],t,a)),"attributeNameFn"in n)){var r=e[t];delete e[t],e[n.attributeNameFn(t,e[t],a)]=r}return e}function d(e){var t={};if(e.body&&("xml"===e.name.toLowerCase()||n.instructionHasAttributes)){for(var r,i=/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g;null!==(r=i.exec(e.body));)t[r[1]]=r[2]||r[3]||r[4];t=c(t)}if("xml"===e.name.toLowerCase()){if(n.ignoreDeclaration)return;a[n.declarationKey]={},Object.keys(t).length&&(a[n.declarationKey][n.attributesKey]=t),n.addParent&&(a[n.declarationKey][n.parentKey]=a)}else{if(n.ignoreInstruction)return;n.trim&&(e.body=e.body.trim());var o={};n.instructionHasAttributes&&Object.keys(t).length?(o[e.name]={},o[e.name][n.attributesKey]=t):o[e.name]=e.body,l("instruction",o)}}function f(e,t){var r;if("object"===typeof e&&(t=e.attributes,e=e.name),t=c(t),"elementNameFn"in n&&(e=n.elementNameFn(e,a)),n.compact){var i;if(r={},!n.ignoreAttributes&&t&&Object.keys(t).length)for(i in r[n.attributesKey]={},t)t.hasOwnProperty(i)&&(r[n.attributesKey][i]=t[i]);!(e in a)&&(s(n.alwaysArray)?-1!==n.alwaysArray.indexOf(e):n.alwaysArray)&&(a[e]=[]),a[e]&&!s(a[e])&&(a[e]=[a[e]]),s(a[e])?a[e].push(r):a[e]=r}else a[n.elementsKey]||(a[n.elementsKey]=[]),(r={})[n.typeKey]="element",r[n.nameKey]=e,!n.ignoreAttributes&&t&&Object.keys(t).length&&(r[n.attributesKey]=t),n.alwaysChildren&&(r[n.elementsKey]=[]),a[n.elementsKey].push(r);r[n.parentKey]=a,// will be deleted in onEndElement() if !options.addParent
  8244. a=r}function h(e){n.ignoreText||(e.trim()||n.captureSpacesBetweenElements)&&(n.trim&&(e=e.trim()),n.nativeType&&(e=u(e)),n.sanitize&&(e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")),l("text",e))}function p(e){n.ignoreComment||(n.trim&&(e=e.trim()),l("comment",e))}function y(e){var t=a[n.parentKey];n.addParent||delete a[n.parentKey],a=t}function m(e){n.ignoreCdata||(n.trim&&(e=e.trim()),l("cdata",e))}function v(e){n.ignoreDoctype||(e=e.replace(/^ /,""),n.trim&&(e=e.trim()),l("doctype",e))}function g(e){e.note=e;//console.error(error);
  8245. }e.exports=function(e,t){var r=i.parser(!0,{}),s={};if(a=s,n=function(e){return n=o.copyOptions(e),o.ensureFlagExists("ignoreDeclaration",n),o.ensureFlagExists("ignoreInstruction",n),o.ensureFlagExists("ignoreAttributes",n),o.ensureFlagExists("ignoreText",n),o.ensureFlagExists("ignoreComment",n),o.ensureFlagExists("ignoreCdata",n),o.ensureFlagExists("ignoreDoctype",n),o.ensureFlagExists("compact",n),o.ensureFlagExists("alwaysChildren",n),o.ensureFlagExists("addParent",n),o.ensureFlagExists("trim",n),o.ensureFlagExists("nativeType",n),o.ensureFlagExists("nativeTypeAttributes",n),o.ensureFlagExists("sanitize",n),o.ensureFlagExists("instructionHasAttributes",n),o.ensureFlagExists("captureSpacesBetweenElements",n),o.ensureAlwaysArrayExists(n),o.ensureKeyExists("declaration",n),o.ensureKeyExists("instruction",n),o.ensureKeyExists("attributes",n),o.ensureKeyExists("text",n),o.ensureKeyExists("comment",n),o.ensureKeyExists("cdata",n),o.ensureKeyExists("doctype",n),o.ensureKeyExists("type",n),o.ensureKeyExists("name",n),o.ensureKeyExists("elements",n),o.ensureKeyExists("parent",n),o.checkFnExists("doctype",n),o.checkFnExists("instruction",n),o.checkFnExists("cdata",n),o.checkFnExists("comment",n),o.checkFnExists("text",n),o.checkFnExists("instructionName",n),o.checkFnExists("elementName",n),o.checkFnExists("attributeName",n),o.checkFnExists("attributeValue",n),o.checkFnExists("attributes",n),n}(t),r.opt={strictEntities:!0},r.onopentag=f,r.ontext=h,r.oncomment=p,r.onclosetag=y,r.onerror=g,r.oncdata=m,r.ondoctype=v,r.onprocessinginstruction=d,r.write(e).close(),s[n.elementsKey]){var u=s[n.elementsKey];delete s[n.elementsKey],s[n.elementsKey]=u,delete s.text}return s}},
  8246. /***/1388:
  8247. /***/function(e,t,r){var n=r(4740),a=r(1229);e.exports=function(e,t){var r,i,o;return r=function(e){var t=n.copyOptions(e);return n.ensureSpacesExists(t),t}(t),i=a(e,r),o="compact"in r&&r.compact?"_parent":"parent",(
  8248. // parentKey = ptions.compact ? '_parent' : 'parent'; // consider this
  8249. "addParent"in r&&r.addParent?JSON.stringify(i,(function(e,t){return e===o?"_":t}),r.spaces):JSON.stringify(i,null,r.spaces)).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}},
  8250. /***/8399:
  8251. /***/function(e){
  8252. /**
  8253. * geostats() is a tiny and standalone javascript library for classification
  8254. * Project page - https://github.com/simogeo/geostats
  8255. * Copyright (c) 2011 Simon Georget, http://www.empreinte-urbaine.eu
  8256. * Licensed under the MIT license
  8257. */
  8258. e.exports=function(){var e=function(e){return"number"===typeof e&&parseFloat(e)==parseInt(e,10)&&!isNaN(e)}// 6 characters
  8259. ,r=function(e){return e},n=function(e){return!isNaN(parseFloat(e))&&isFinite(e)}
  8260. //indexOf polyfill
  8261. // from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf;
  8262. Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){if(void 0===this||null===this)throw new TypeError('"this" is null or not defined');var r=this.length>>>0;// Hack to convert object.length to a UInt32
  8263. for(t=+t||0,Math.abs(t)===1/0&&(t=0),t<0&&(t+=r)<0&&(t=0);t<r;t++)if(this[t]===e)return t;return-1});var a=function(a){this.objectID="",this.separator=" - ",this.legendSeparator=this.separator,this.method="",this.precision=0,this.precisionflag="auto",this.roundlength=2,// Number of decimals, round values
  8264. this.is_uniqueValues=!1,this.debug=!1,this.silent=!1,this.bounds=Array(),this.ranges=Array(),this.inner_ranges=null,this.colors=Array(),this.counter=Array(),
  8265. // statistics information
  8266. this.stat_sorted=null,this.stat_mean=null,this.stat_median=null,this.stat_sum=null,this.stat_max=null,this.stat_min=null,this.stat_pop=null,this.stat_variance=null,this.stat_stddev=null,this.stat_cov=null,
  8267. /**
  8268. * logging method
  8269. */
  8270. this.log=function(e,t){1!=this.debug&&null==t||console.log(this.objectID+"(object id) :: "+e)},
  8271. /**
  8272. * Set bounds
  8273. */
  8274. this.setBounds=function(e){this.log("Setting bounds ("+e.length+") : "+e.join()),this.bounds=Array(),// init empty array to prevent bug when calling classification after another with less items (sample getQuantile(6) and getQuantile(4))
  8275. this.bounds=e},
  8276. /**
  8277. * Set a new serie
  8278. */
  8279. this.setSerie=function(e){this.log("Setting serie ("+e.length+") : "+e.join()),this.serie=Array(),// init empty array to prevent bug when calling classification after another with less items (sample getQuantile(6) and getQuantile(4))
  8280. this.serie=e,
  8281. //reset statistics after changing serie
  8282. this.resetStatistics(),this.setPrecision()},
  8283. /**
  8284. * Set colors
  8285. */
  8286. this.setColors=function(e){this.log("Setting color ramp ("+e.length+") : "+e.join()),this.colors=e},
  8287. /**
  8288. * Get feature count
  8289. * With bounds array(0, 0.75, 1.5, 2.25, 3);
  8290. * should populate this.counter with 5 keys
  8291. * and increment counters for each key
  8292. */
  8293. this.doCount=function(){if(!this._nodata()){var e=this.sorted();
  8294. // we init counter with 0 value
  8295. for(this.counter=new Array,i=0;i<this.bounds.length-1;i++)this.counter[i]=0;for(j=0;j<e.length;j++){
  8296. // get current class for value to increment the counter
  8297. var t=this.getClass(e[j]);this.counter[t]++}}},
  8298. /**
  8299. * Set decimal precision according to user input
  8300. * or automatcally determined according
  8301. * to the given serie.
  8302. */
  8303. this.setPrecision=function(e){
  8304. // we calculate the maximal decimal length on given serie
  8305. if(
  8306. // only when called from user
  8307. "undefined"!==typeof e&&(this.precisionflag="manual",this.precision=e),"auto"==this.precisionflag)for(var t=0;t<this.serie.length;t++){
  8308. // check if the given value is a number and a float
  8309. if(isNaN(this.serie[t]+"")||-1==(this.serie[t]+"").toString().indexOf("."))r=0;else var r=(this.serie[t]+"").split(".")[1].length;r>this.precision&&(this.precision=r)}this.precision>20&&(
  8310. // prevent "Uncaught RangeError: toFixed() digits argument must be between 0 and 20" bug. See https://github.com/simogeo/geostats/issues/34
  8311. this.log("this.precision value ("+this.precision+') is greater than max value. Automatic set-up to 20 to prevent "Uncaught RangeError: toFixed()" when calling decimalFormat() method.'),this.precision=20),this.log("Calling setPrecision(). Mode : "+this.precisionflag+" - Decimals : "+this.precision),this.serie=this.decimalFormat(this.serie)},
  8312. /**
  8313. * Format array numbers regarding to precision
  8314. */
  8315. this.decimalFormat=function(e){for(var t=new Array,r=0;r<e.length;r++)
  8316. // check if the given value is a number
  8317. n(e[r])?t[r]=parseFloat(parseFloat(e[r]).toFixed(this.precision)):t[r]=e[r];return t}
  8318. /**
  8319. * Transform a bounds array to a range array the following array : array(0,
  8320. * 0.75, 1.5, 2.25, 3); becomes : array('0-0.75', '0.75-1.5', '1.5-2.25',
  8321. * '2.25-3');
  8322. */,this.setRanges=function(){// init empty array to prevent bug when calling classification after another with less items (sample getQuantile(6) and getQuantile(4))
  8323. for(this.ranges=Array(),i=0;i<this.bounds.length-1;i++)this.ranges[i]=this.bounds[i]+this.separator+this.bounds[i+1]},
  8324. /** return min value */
  8325. this.min=function(){if(!this._nodata()){for(this.stat_min=this.serie[0],i=0;i<this.pop();i++)this.serie[i]<this.stat_min&&(this.stat_min=this.serie[i]);return this.stat_min}},
  8326. /** return max value */
  8327. this.max=function(){if(!this._nodata()){for(this.stat_max=this.serie[0],i=0;i<this.pop();i++)this.serie[i]>this.stat_max&&(this.stat_max=this.serie[i]);return this.stat_max}},
  8328. /** return sum value */
  8329. this.sum=function(){if(!this._nodata()){if(null==this.stat_sum)for(this.stat_sum=0,i=0;i<this.pop();i++)this.stat_sum+=parseFloat(this.serie[i]);return this.stat_sum}},
  8330. /** return population number */
  8331. this.pop=function(){if(!this._nodata())return null==this.stat_pop&&(this.stat_pop=this.serie.length),this.stat_pop},
  8332. /** return mean value */
  8333. this.mean=function(){if(!this._nodata())return null==this.stat_mean&&(this.stat_mean=parseFloat(this.sum()/this.pop())),this.stat_mean},
  8334. /** return median value */
  8335. this.median=function(){if(!this._nodata()){if(null==this.stat_median){this.stat_median=0;var e=this.sorted();
  8336. // serie pop is odd
  8337. e.length%2?this.stat_median=parseFloat(e[Math.ceil(e.length/2)-1]):this.stat_median=(parseFloat(e[e.length/2-1])+parseFloat(e[e.length/2]))/2}return this.stat_median}},
  8338. /** return variance value */
  8339. this.variance=function(){if(round="undefined"===typeof round,!this._nodata()){if(null==this.stat_variance){for(var e=0,t=this.mean(),r=0;r<this.pop();r++)e+=Math.pow(this.serie[r]-t,2);this.stat_variance=e/this.pop(),1==round&&(this.stat_variance=Math.round(this.stat_variance*Math.pow(10,this.roundlength))/Math.pow(10,this.roundlength))}return this.stat_variance}},
  8340. /** return standard deviation value */
  8341. this.stddev=function(e){if(e="undefined"===typeof e,!this._nodata())return null==this.stat_stddev&&(this.stat_stddev=Math.sqrt(this.variance()),1==e&&(this.stat_stddev=Math.round(this.stat_stddev*Math.pow(10,this.roundlength))/Math.pow(10,this.roundlength))),this.stat_stddev},
  8342. /** coefficient of variation - measure of dispersion */
  8343. this.cov=function(e){if(e="undefined"===typeof e,!this._nodata())return null==this.stat_cov&&(this.stat_cov=this.stddev()/this.mean(),1==e&&(this.stat_cov=Math.round(this.stat_cov*Math.pow(10,this.roundlength))/Math.pow(10,this.roundlength))),this.stat_cov},
  8344. /** reset all attributes after setting a new serie */
  8345. this.resetStatistics=function(){this.stat_sorted=null,this.stat_mean=null,this.stat_median=null,this.stat_sum=null,this.stat_max=null,this.stat_min=null,this.stat_pop=null,this.stat_variance=null,this.stat_stddev=null,this.stat_cov=null}
  8346. /** data test */,this._nodata=function(){if(0==this.serie.length){if(!this.silent)throw new TypeError("Error. You should first enter a serie!");return this.log("[silent mode] Error. You should first enter a serie!",!0),1}return 0},
  8347. /** check if the serie contains negative value */
  8348. this._hasNegativeValue=function(){for(i=0;i<this.serie.length;i++)if(this.serie[i]<0)return!0;return!1},
  8349. /** check if the serie contains zero value */
  8350. this._hasZeroValue=function(){for(i=0;i<this.serie.length;i++)if(0===parseFloat(this.serie[i]))return!0;return!1},
  8351. /** return sorted values (as array) */
  8352. this.sorted=function(){return null==this.stat_sorted&&(0==this.is_uniqueValues?this.stat_sorted=this.serie.sort((function(e,t){return e-t})):this.stat_sorted=this.serie.sort((function(e,t){var r=e.toString().toLowerCase(),n=t.toString().toLowerCase();return r<n?-1:r>n?1:0}))),this.stat_sorted},
  8353. /** return all info */
  8354. this.info=function(){if(!this._nodata()){var e="";return e+=r("Population")+" : "+this.pop()+" - ["+r("Min")+" : "+this.min()+" | "+r("Max")+" : "+this.max()+"]\n",e+=r("Mean")+" : "+this.mean()+" - "+r("Median")+" : "+this.median()+"\n",e+=r("Variance")+" : "+this.variance()+" - "+r("Standard deviation")+" : "+this.stddev()+" - "+r("Coefficient of variation")+" : "+this.cov()+"\n"}},
  8355. /**
  8356. * Set Manual classification Return an array with bounds : ie array(0,
  8357. * 0.75, 1.5, 2.25, 3);
  8358. * Set ranges and prepare data for displaying legend
  8359. *
  8360. */
  8361. this.setClassManually=function(e){if(!this._nodata()){if(e[0]===this.min()&&e[e.length-1]===this.max())return this.setBounds(e),this.setRanges(),
  8362. // we specify the classification method
  8363. this.method=r("manual classification")+" ("+(e.length-1)+" "+r("classes")+")",this.bounds;if(!this.silent)throw new TypeError(r("Given bounds may not be correct! please check your input.\nMin value : "+this.min()+" / Max value : "+this.max()));this.log("[silent mode] "+t("Given bounds may not be correct! please check your input.\nMin value : "+this.min()+" / Max value : "+this.max()),!0)}},
  8364. /**
  8365. * Equal intervals classification Return an array with bounds : ie array(0,
  8366. * 0.75, 1.5, 2.25, 3);
  8367. */
  8368. this.getClassEqInterval=function(e,t,n){if(!this._nodata()){var a="undefined"===typeof t?this.min():t,o="undefined"===typeof n?this.max():n,s=Array(),u=a,l=(o-a)/e;for(i=0;i<=e;i++)s[i]=u,u+=l;
  8369. //-> Fix last bound to Max of values
  8370. return s[e]=o,this.setBounds(s),this.setRanges(),
  8371. // we specify the classification method
  8372. this.method=r("eq. intervals")+" ("+e+" "+r("classes")+")",this.bounds}},this.getQuantiles=function(e){for(var t=this.sorted(),r=[],n=this.pop()/e,a=1;a<e;a++){var i=Math.round(a*n+.49);r.push(t[i-1])}return r},
  8373. /**
  8374. * Quantile classification Return an array with bounds : ie array(0, 0.75,
  8375. * 1.5, 2.25, 3);
  8376. */
  8377. this.getClassQuantile=function(e){if(!this._nodata()){var t=this.sorted(),n=this.getQuantiles(e);return n.unshift(t[0]),n[t.length-1]!==t[t.length-1]&&n.push(t[t.length-1]),this.setBounds(n),this.setRanges(),
  8378. // we specify the classification method
  8379. this.method=r("quantile")+" ("+e+" "+r("classes")+")",this.bounds}},
  8380. /**
  8381. * Standard Deviation classification
  8382. * Return an array with bounds : ie array(0,
  8383. * 0.75, 1.5, 2.25, 3);
  8384. */
  8385. this.getClassStdDeviation=function(e,t){if(!this._nodata()){this.max(),this.min();var n=Array();
  8386. // number of classes is odd
  8387. if(e%2==1){
  8388. // Euclidean division to get the inferior bound
  8389. var a=Math.floor(e/2),o=a+1;
  8390. // Values < to infBound, except first one
  8391. for(
  8392. // we set the central bounds
  8393. n[a]=this.mean()-this.stddev()/2,n[o]=this.mean()+this.stddev()/2,i=a-1;i>0;i--){var s=n[i+1]-this.stddev();n[i]=s}
  8394. // Values > to supBound, except last one
  8395. for(i=o+1;i<e;i++)s=n[i-1]+this.stddev(),n[i]=s;
  8396. // number of classes is even
  8397. }else{var u=e/2;
  8398. // we get the mean value
  8399. // Values < to the mean, except first one
  8400. for(n[u]=this.mean(),i=u-1;i>0;i--)s=n[i+1]-this.stddev(),n[i]=s;
  8401. // Values > to the mean, except last one
  8402. for(i=u+1;i<e;i++)s=n[i-1]+this.stddev(),n[i]=s}
  8403. // we finally set the first value
  8404. // do we excatly match min value or not ?
  8405. return n[0]="undefined"===typeof t?n[1]-this.stddev():this.min(),
  8406. // we finally set the last value
  8407. // do we excatly match max value or not ?
  8408. n[e]="undefined"===typeof t?n[e-1]+this.stddev():this.max(),this.setBounds(n),this.setRanges(),
  8409. // we specify the classification method
  8410. this.method=r("std deviation")+" ("+e+" "+r("classes")+")",this.bounds}},
  8411. /**
  8412. * Geometric Progression classification
  8413. * http://en.wikipedia.org/wiki/Geometric_progression
  8414. * Return an array with bounds : ie array(0,
  8415. * 0.75, 1.5, 2.25, 3);
  8416. */
  8417. this.getClassGeometricProgression=function(e){if(!this._nodata()){if(!this._hasNegativeValue()&&!this._hasZeroValue()){var t=Array(),n=this.min(),a=this.max(),o=Math.log(a)/Math.LN10,s=Math.log(n)/Math.LN10,u=(o-s)/e;
  8418. // we compute log bounds
  8419. for(i=0;i<e;i++)0==i?t[i]=s:t[i]=t[i-1]+u;
  8420. // we compute antilog
  8421. // and we finally add max value
  8422. return(t=t.map((function(e){return Math.pow(10,e)}))).push(this.max()),this.setBounds(t),this.setRanges(),
  8423. // we specify the classification method
  8424. this.method=r("geometric progression")+" ("+e+" "+r("classes")+")",this.bounds}if(!this.silent)throw new TypeError(r("geometric progression can't be applied with a serie containing negative or zero values."));this.log("[silent mode] "+r("geometric progression can't be applied with a serie containing negative or zero values."),!0)}},
  8425. /**
  8426. * Arithmetic Progression classification
  8427. * http://en.wikipedia.org/wiki/Arithmetic_progression
  8428. * Return an array with bounds : ie array(0,
  8429. * 0.75, 1.5, 2.25, 3);
  8430. */
  8431. this.getClassArithmeticProgression=function(e){if(!this._nodata()){var t=0;
  8432. // we compute the (french) "Raison"
  8433. for(i=1;i<=e;i++)t+=i;var n=Array(),a=this.min(),o=(this.max()-a)/t;for(i=0;i<=e;i++)0==i?n[i]=a:n[i]=n[i-1]+i*o;return this.setBounds(n),this.setRanges(),
  8434. // we specify the classification method
  8435. this.method=r("arithmetic progression")+" ("+e+" "+r("classes")+")",this.bounds}},
  8436. /**
  8437. * Credits : Doug Curl (javascript) and Daniel J Lewis (python implementation)
  8438. * http://www.arcgis.com/home/item.html?id=0b633ff2f40d412995b8be377211c47b
  8439. * http://danieljlewis.org/2010/06/07/jenks-natural-breaks-algorithm-in-python/
  8440. */
  8441. this.getClassJenks=function(e){if(!this._nodata()){dataList=this.sorted();for(
  8442. // now iterate through the datalist:
  8443. // determine mat1 and mat2
  8444. // really not sure how these 2 different arrays are set - the code for
  8445. // each seems the same!
  8446. // but the effect are 2 different arrays: mat1 and mat2
  8447. var t=[],n=0,a=dataList.length+1;n<a;n++){for(var i=[],o=0,s=e+1;o<s;o++)i.push(0);t.push(i)}for(var u=[],l=0,c=dataList.length+1;l<c;l++){for(var d=[],f=0,h=e+1;f<h;f++)d.push(0);u.push(d)}
  8448. // absolutely no idea what this does - best I can tell, it sets the 1st
  8449. // group in the
  8450. // mat1 and mat2 arrays to 1 and 0 respectively
  8451. for(var p=1,y=e+1;p<y;p++){t[0][p]=1,u[0][p]=0;for(var m=1,v=dataList.length+1;m<v;m++)u[m][p]=1/0;var g=0}
  8452. // and this part - I'm a little clueless on - but it works
  8453. // pretty sure it iterates across the entire dataset and compares each
  8454. // value to
  8455. // one another to and adjust the indices until you meet the rules:
  8456. // minimum deviation
  8457. // within a class and maximum separation between classes
  8458. for(var b=2,w=dataList.length+1;b<w;b++){for(var S=0,L=0,E=0,M=1,k=b+1;M<k;M++){var x=b-M+1,T=parseFloat(dataList[x-1]);g=(L+=T*T)-(S+=T)*S/(E+=1);var F=x-1;if(0!=F)for(var P=2,C=e+1;P<C;P++)u[b][P]>=g+u[F][P-1]&&(t[b][P]=x,u[b][P]=g+u[F][P-1])}t[b][1]=1,u[b][1]=g}var N=dataList.length,W=[];
  8459. // fill the kclass (classification) array with zeros:
  8460. for(l=0;l<=e;l++)W.push(0);
  8461. // this is the last number in the array:
  8462. W[e]=parseFloat(dataList[dataList.length-1]),
  8463. // this is the first number - can set to zero, but want to set to lowest
  8464. // to use for legend:
  8465. W[0]=parseFloat(dataList[0]);for(var j=e;j>=2;){var I=parseInt(t[N][j]-2);W[j-1]=dataList[I],N=parseInt(t[N][j]-1),
  8466. // spits out the rank and value of the break values:
  8467. // console.log("id="+id,"rank = " + String(mat1[k][countNum]),"val =
  8468. // " + String(dataList[id]))
  8469. // count down:
  8470. j-=1}
  8471. // check to see if the 0 and 1 in the array are the same - if so, set 0
  8472. // to 0:
  8473. return W[0]==W[1]&&(W[0]=0),this.setBounds(W),this.setRanges(),this.method=r("Jenks")+" ("+e+" "+r("classes")+")",this.bounds;//array of breaks
  8474. }}
  8475. /**
  8476. * Quantile classification Return an array with bounds : ie array(0, 0.75,
  8477. * 1.5, 2.25, 3);
  8478. */,this.getClassUniqueValues=function(){if(!this._nodata()){this.is_uniqueValues=!0;var e=this.sorted(),t=Array();// display in alphabetical order
  8479. for(i=0;i<this.pop();i++)-1===t.indexOf(e[i])&&t.push(e[i]);return this.bounds=t,
  8480. // we specify the classification method
  8481. this.method=r("unique values"),t}},
  8482. /**
  8483. * Return the class of a given value.
  8484. * For example value : 6
  8485. * and bounds array = (0, 4, 8, 12);
  8486. * Return 2
  8487. */
  8488. this.getClass=function(e){for(i=0;i<this.bounds.length;i++)if(1==this.is_uniqueValues){if(e==this.bounds[i])return i}else
  8489. // parseFloat() is necessary
  8490. if(parseFloat(e)<=this.bounds[i+1])return i;return r("Unable to get value's class.")},
  8491. /**
  8492. * Return the ranges array : array('0-0.75', '0.75-1.5', '1.5-2.25',
  8493. * '2.25-3');
  8494. */
  8495. this.getRanges=function(){return this.ranges},
  8496. /**
  8497. * Returns the number/index of this.ranges that value falls into
  8498. */
  8499. this.getRangeNum=function(e){var t,r;for(r=0;r<this.ranges.length;r++)if(t=this.ranges[r].split(/ - /),e<=parseFloat(t[1]))return r}
  8500. /*
  8501. * Compute inner ranges based on serie.
  8502. * Produce discontinous ranges used for legend - return an array similar to :
  8503. * array('0.00-0.74', '0.98-1.52', '1.78-2.25', '2.99-3.14');
  8504. * If inner ranges already computed, return array values.
  8505. */,this.getInnerRanges=function(){
  8506. // if already computed, we return the result
  8507. if(null!=this.inner_ranges)return this.inner_ranges;var e=new Array,t=this.sorted(),r=1;// bounds array counter
  8508. for(i=0;i<t.length;i++){if(0==i)var n=t[i];// we init first range value
  8509. // we reach the last range, we finally complete manually
  8510. // and return the array
  8511. if(parseFloat(t[i])>parseFloat(this.bounds[r])&&(e[r-1]=""+n+this.separator+t[i-1],n=t[i],r++),r==this.bounds.length-1)
  8512. // we set the last value
  8513. return e[r-1]=""+n+this.separator+t[t.length-1],this.inner_ranges=e,this.inner_ranges}},this.getSortedlist=function(){return this.sorted().join(", ")},
  8514. /**
  8515. * Return an html legend
  8516. * colors : specify an array of color (hexadecimal values)
  8517. * legend : specify a text input for the legend. By default, just displays 'legend'
  8518. * counter : if not null, display counter value
  8519. * callback : if not null, callback function applied on legend boundaries
  8520. * mode : null, 'default', 'distinct', 'discontinuous' :
  8521. * - if mode is null, will display legend as 'default mode'
  8522. * - 'default' : displays ranges like in ranges array (continuous values), sample : 29.26 - 378.80 / 378.80 - 2762.25 / 2762.25 - 6884.84
  8523. * - 'distinct' : Add + 1 according to decimal precision to distinguish classes (discrete values), sample : 29.26 - 378.80 / 378.81 - 2762.25 / 2762.26 - 6884.84
  8524. * - 'discontinuous' : indicates the range of data actually falling in each class , sample : 29.26 - 225.43 / 852.12 - 2762.20 / 3001.25 - 6884.84 / not implemented yet
  8525. * order : null, 'ASC', 'DESC'
  8526. */
  8527. this.getHtmlLegend=function(t,n,a,o,s,u){var l="",c=new Array;if(this.doCount(),// we do count, even if not displayed
  8528. ccolors=null!=t?t:this.colors,lg=null!=n?n:"Legend",getcounter=null!=a,fn=null!=o?o:function(e){return e},null==s&&(s="default"),"discontinuous"!=s||(this.getInnerRanges(),-1===this.counter.indexOf(0))){if("DESC"!==u&&(u="ASC"),!(ccolors.length<this.ranges.length)){if(0==this.is_uniqueValues)for(i=0;i<this.ranges.length;i++){!0===getcounter&&(l=' <span class="geostats-legend-counter">('+this.counter[i]+")</span>");
  8529. //console.log("Ranges : " + this.ranges[i]);
  8530. // default mode
  8531. var d=this.ranges[i].split(this.separator),f=parseFloat(d[0]).toFixed(this.precision),h=parseFloat(d[1]).toFixed(this.precision);
  8532. // if mode == 'distinct' and we are not working on the first value
  8533. "distinct"==s&&0!=i&&(e(f)?(f=parseInt(f)+1,
  8534. // format to float if necessary
  8535. "manual"==this.precisionflag&&0!=this.precision&&(f=parseFloat(f).toFixed(this.precision))):(f=parseFloat(f)+1/Math.pow(10,this.precision),
  8536. // strangely the formula above return sometimes long decimal values,
  8537. // the following instruction fix it
  8538. f=parseFloat(f).toFixed(this.precision))),
  8539. // if mode == 'discontinuous'
  8540. "discontinuous"==s&&(d=this.inner_ranges[i].split(this.separator),f=parseFloat(d[0]).toFixed(this.precision),h=parseFloat(d[1]).toFixed(this.precision));
  8541. // we apply callback function
  8542. var p=fn(f)+this.legendSeparator+fn(h),y='<div><div class="geostats-legend-block" style="background-color:'+ccolors[i]+'"></div> '+p+l+"</div>";c.push(y)}else
  8543. // only if classification is done on unique values
  8544. for(i=0;i<this.bounds.length;i++)!0===getcounter&&(l=' <span class="geostats-legend-counter">('+this.counter[i]+")</span>"),p=fn(this.bounds[i]),y='<div><div class="geostats-legend-block" style="background-color:'+ccolors[i]+'"></div> '+p+l+"</div>",c.push(y);
  8545. // do we reverse the return legend ?
  8546. "DESC"===u&&c.reverse();
  8547. // finally we create HTML and return it
  8548. var m='<div class="geostats-legend"><div class="geostats-legend-title">'+r(lg)+"</div>";for(i=0;i<c.length;i++)m+=c[i];return m+="</div>"}if(!this.silent)throw new TypeError(r("The number of colors should fit the number of ranges. Exit!"));this.log("[silent mode] "+r("The number of colors should fit the number of ranges. Exit!"),!0)}else{if(!this.silent)throw new TypeError(r("Geostats cannot apply 'discontinuous' mode to the getHtmlLegend() method because some classes are not populated.\nPlease switch to 'default' or 'distinct' modes. Exit!"));this.log("[silent mode] "+r("Geostats cannot apply 'discontinuous' mode to the getHtmlLegend() method because some classes are not populated.\nPlease switch to 'default' or 'distinct' modes. Exit!"),!0)}},
  8549. // object constructor
  8550. // At the end of script. If not setPrecision() method is not known
  8551. // we create an object identifier for debugging
  8552. this.objectID=(new Date).getUTCMilliseconds(),this.log("Creating new geostats object"),"undefined"!==typeof a&&a.length>0?(this.serie=a,this.setPrecision(),this.log("Setting serie ("+a.length+") : "+a.join())):this.serie=Array(),
  8553. // creating aliases on classification function for backward compatibility
  8554. this.getJenks=this.getClassJenks,this.getGeometricProgression=this.getClassGeometricProgression,this.getEqInterval=this.getClassEqInterval,this.getQuantile=this.getClassQuantile,this.getStdDeviation=this.getClassStdDeviation,this.getUniqueValues=this.getClassUniqueValues,this.getArithmeticProgression=this.getClassArithmeticProgression};return window.geostats=a,a}();
  8555. /***/},
  8556. /***/8553:
  8557. /***/function(){
  8558. /*
  8559. * JsonSQL
  8560. * By: Trent Richardson [http://trentrichardson.com]
  8561. * Version 0.1
  8562. * Last Modified: 1/1/2008
  8563. *
  8564. * Copyright 2008 Trent Richardson
  8565. *
  8566. * Licensed under the Apache License, Version 2.0 (the "License");
  8567. * you may not use this file except in compliance with the License.
  8568. * You may obtain a copy of the License at
  8569. *
  8570. * http://www.apache.org/licenses/LICENSE-2.0
  8571. *
  8572. * Unless required by applicable law or agreed to in writing, software
  8573. * distributed under the License is distributed on an "AS IS" BASIS,
  8574. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8575. * See the License for the specific language governing permissions and
  8576. * limitations under the License.
  8577. */
  8578. window.jsonsql={query:function(e,t){var r=e.match(/^(select)\s+([a-z0-9_\,\.\s\*]+)\s+from\s+([a-z0-9_\.]+)(?: where\s+\((.+)\))?\s*(?:order\sby\s+([a-z0-9_\,]+))?\s*(asc|desc|ascnum|descnum)?\s*(?:limit\s+([0-9_\,]+))?/i),n={fields:r[2].replace(" ","").split(","),from:r[3].replace(" ",""),where:void 0==r[4]?"true":r[4],orderby:void 0==r[5]?[]:r[5].replace(" ","").split(","),order:void 0==r[6]?"asc":r[6],limit:void 0==r[7]?[]:r[7].replace(" ","").split(",")};return this.parse(t,n)},parse:function(e,t){var r={fields:["*"],from:"json",where:"",orderby:[],order:"asc",limit:[]};for(i in t)r[i]=t[i];var n=[];return n=this.returnFilter(e,r),n=this.returnOrderBy(n,r.orderby,r.order),n=this.returnLimit(n,r.limit)},returnFilter:function(json,jsonsql_o){var jsonsql_scope=eval(jsonsql_o.from),jsonsql_result=[],jsonsql_rc=0;for(var jsonsql_i in""==jsonsql_o.where&&(jsonsql_o.where="true"),jsonsql_scope)with(jsonsql_scope[jsonsql_i])eval(jsonsql_o.where)&&(jsonsql_result[jsonsql_rc++]=this.returnFields(jsonsql_scope[jsonsql_i],jsonsql_o.fields));return jsonsql_result},returnFields:function(e,t){if(0==t.length&&(t=["*"]),"*"==t[0])return e;var r={};for(var n in t)r[t[n]]=e[t[n]];return r},returnOrderBy:function(result,orderby,order){return 0==orderby.length||result.sort((function(a,b){switch(order.toLowerCase()){case"desc":return eval("a."+orderby[0]+" < b."+orderby[0])?1:-1;case"asc":return eval("a."+orderby[0]+" > b."+orderby[0])?1:-1;case"descnum":return eval("a."+orderby[0]+" - b."+orderby[0]);case"ascnum":return eval("b."+orderby[0]+" - a."+orderby[0])}})),result},returnLimit:function(e,t){switch(t.length){case 0:return e;case 1:return e.splice(0,t[0]);case 2:return e.splice(t[0]-1,t[1])}}};
  8579. /***/},
  8580. /***/2769:
  8581. /***/function(e){"use strict";e.exports="data:image/png;base64,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"},
  8582. /***/2721:
  8583. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__2721__},
  8584. /***/5973:
  8585. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__5973__},
  8586. /***/550:
  8587. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__550__},
  8588. /***/2371:
  8589. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__2371__},
  8590. /***/3094:
  8591. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__3094__},
  8592. /***/3899:
  8593. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__3899__},
  8594. /***/2395:
  8595. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__2395__},
  8596. /***/2069:
  8597. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__2069__},
  8598. /***/375:
  8599. /***/function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__375__},
  8600. /***/2961:
  8601. /***/function(){
  8602. /* (ignored) */
  8603. /***/},
  8604. /***/9862:
  8605. /***/function(){
  8606. /* (ignored) */
  8607. /***/},
  8608. /***/2860:
  8609. /***/function(){
  8610. /* (ignored) */
  8611. /***/},
  8612. /***/964:
  8613. /***/function(){
  8614. /* (ignored) */
  8615. /***/},
  8616. /***/2783:
  8617. /***/function(){
  8618. /* (ignored) */
  8619. /***/},
  8620. /***/4836:
  8621. /***/function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},
  8622. /***/5263:
  8623. /***/function(e,t,r){var n=r(8698).default;function a(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!==typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var u=o?Object.getOwnPropertyDescriptor(e,s):null;u&&(u.get||u.set)?Object.defineProperty(i,s,u):i[s]=e[s]}return i.default=e,r&&r.set(e,i),i},e.exports.__esModule=!0,e.exports.default=e.exports},
  8624. /***/8698:
  8625. /***/function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},
  8626. /***/907:
  8627. /***/function(e,t,r){"use strict";
  8628. /* harmony export */function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}
  8629. /***/r.d(t,{
  8630. /* harmony export */Z:function(){/* binding */return n}
  8631. /* harmony export */})},
  8632. /***/7326:
  8633. /***/function(e,t,r){"use strict";function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}
  8634. /***/r.r(t),
  8635. /* harmony export */r.d(t,{
  8636. /* harmony export */default:function(){/* binding */return n}
  8637. /* harmony export */})},
  8638. /***/5671:
  8639. /***/function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}
  8640. /***/r.r(t),
  8641. /* harmony export */r.d(t,{
  8642. /* harmony export */default:function(){/* binding */return n}
  8643. /* harmony export */})},
  8644. /***/3144:
  8645. /***/function(e,t,r){"use strict";r.r(t),
  8646. /* harmony export */r.d(t,{
  8647. /* harmony export */default:function(){/* binding */return i}
  8648. /* harmony export */});
  8649. /* harmony import */var n=r(9142);function a(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,(0,n/* ["default"] */.Z)(a.key),a)}}function i(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}
  8650. /***/},
  8651. /***/8557:
  8652. /***/function(e,t,r){"use strict";
  8653. // ESM COMPAT FLAG
  8654. // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
  8655. function n(e){return n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},n(e)}r.r(t),
  8656. // EXPORTS
  8657. r.d(t,{default:function(){/* binding */return o}});
  8658. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
  8659. var a=r(1002),i=r(7326);
  8660. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
  8661. // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createSuper.js
  8662. function o(e){var t=// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
  8663. function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,o=n(e);if(t){var s=n(this).constructor;r=Reflect.construct(o,arguments,s)}else r=o.apply(this,arguments);// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
  8664. return function(e,t){if(t&&("object"===(0,a/* default */.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.default)(e)}(this,r)}}
  8665. /***/},
  8666. /***/9340:
  8667. /***/function(e,t,r){"use strict";
  8668. // ESM COMPAT FLAG
  8669. // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
  8670. function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js
  8671. function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&n(e,t)}
  8672. /***/r.r(t),
  8673. // EXPORTS
  8674. r.d(t,{default:function(){/* binding */return a}})},
  8675. /***/8683:
  8676. /***/function(e,t,r){"use strict";
  8677. // ESM COMPAT FLAG
  8678. r.r(t),
  8679. // EXPORTS
  8680. r.d(t,{default:function(){/* binding */return o}});
  8681. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js + 1 modules
  8682. var n=r(9142);// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
  8683. function a(e,t,r){return(t=(0,n/* default */.Z)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
  8684. function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}
  8685. /***/},
  8686. /***/4925:
  8687. /***/function(e,t,r){"use strict";
  8688. // ESM COMPAT FLAG
  8689. // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
  8690. function n(e,t){if(null==e)return{};var r,n,a=// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
  8691. function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}
  8692. /***/r.r(t),
  8693. // EXPORTS
  8694. r.d(t,{default:function(){/* binding */return n}})},
  8695. /***/885:
  8696. /***/function(e,t,r){"use strict";
  8697. // ESM COMPAT FLAG
  8698. r.r(t),
  8699. // EXPORTS
  8700. r.d(t,{default:function(){/* binding */return a}});
  8701. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
  8702. var n=r(181);// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
  8703. function a(e,t){// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
  8704. return function(e){if(Array.isArray(e))return e}(e)||// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
  8705. function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,o,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(c){l=!0,a=c}finally{try{if(!u&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(l)throw a}}return s}}(e,t)||(0,n/* default */.Z)(e,t)||// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
  8706. function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}
  8707. /***/},
  8708. /***/2982:
  8709. /***/function(e,t,r){"use strict";
  8710. // ESM COMPAT FLAG
  8711. r.r(t),
  8712. // EXPORTS
  8713. r.d(t,{default:function(){/* binding */return i}});
  8714. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
  8715. var n=r(907);
  8716. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
  8717. var a=r(181);// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
  8718. function i(e){// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
  8719. return function(e){if(Array.isArray(e))return(0,n/* default */.Z)(e)}(e)||// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js
  8720. function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||(0,a/* default */.Z)(e)||// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
  8721. function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}
  8722. /***/},
  8723. /***/9142:
  8724. /***/function(e,t,r){"use strict";
  8725. // EXPORTS
  8726. r.d(t,{Z:function(){/* binding */return a}});
  8727. // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
  8728. var n=r(1002);// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
  8729. function a(e){var t=// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
  8730. function(e,t){if("object"!==(0,n/* default */.Z)(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!==(0,n/* default */.Z)(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,n/* default */.Z)(t)?t:String(t)}
  8731. /***/},
  8732. /***/1002:
  8733. /***/function(e,t,r){"use strict";
  8734. /* harmony export */function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)
  8735. /***/}r.d(t,{
  8736. /* harmony export */Z:function(){/* binding */return n}
  8737. /* harmony export */})},
  8738. /***/181:
  8739. /***/function(e,t,r){"use strict";
  8740. /* harmony export */r.d(t,{
  8741. /* harmony export */Z:function(){/* binding */return a}
  8742. /* harmony export */});
  8743. /* harmony import */var n=r(907);function a(e,t){if(e){if("string"===typeof e)return(0,n/* ["default"] */.Z)(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?(0,n/* ["default"] */.Z)(e,t):void 0}}
  8744. /***/},
  8745. /***/5618:
  8746. /***/function(e){"use strict";e.exports=JSON.parse('[{"title":"\u7ecf\u5178\u6df1\u8272","label":"dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53"]},{"title":"\u7ecf\u5178\u6d45\u8272","label":"light","textColor":"#333","background":"rgba(255, 255, 255,0.6)","colorGroup":["#3fb1e3","#6be6c1","#626c91","#a0a7e6","#c4ebad"]},{"title":"\u7eff\u8272\u6e10\u53d8","label":"green-g","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#064049","#165A65","#1F717F","#3097AB","#9AEAF4"]},{"title":"\u84dd\u8272\u6e10\u53d8","label":"blue-g","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#243BCC","#1C55FF","#0C75FF","#338FFF","#00CDF1"]},{"title":"\u6a59\u7ea2\u6e10\u53d8","label":"red-g","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#770000","#882241","#BE3144","#F05940","#FF8417"]},{"title":"\u7d2b\u8272\u6e10\u53d8","label":"purple-g","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#2F2AA4","#5432D3","#8B3B86","#9740B1","#7B6CF5"]},{"title":"\u6df1\u84dd\u9ed1\u8272","label":"bluedark-dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#15D1F2","#499BFF","#2C61FF","#243BCC","#67A9FF"]},{"title":"\u58a8\u7eff\u9ed1\u8272","label":"green-dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#2D808D","#53A8B6","#7AC2D0","#BCE4E9","#F1FDFF"]},{"title":"\u6d45\u84dd\u9ed1\u8272","label":"blue-dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#00E9FF","#BBE7FF","#6AE5C1","#46ABFF","#363EFF"]},{"title":"\u6d45\u7070\u9ed1\u8272","label":"grey-dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#52606D","#8894A0","#BACBDB","#D3DDE8","#F2F5F8"]},{"title":"\u6df1\u7d2b\u9ed1\u8272","label":"purple-dark","textColor":"#fff","background":"rgba(0,0,0,0.6)","colorGroup":["#7B6CF6","#5432D3","#241F92","#8B3B86","#E6A5FF"]},{"title":"\u6df1\u84dd\u767d\u8272","label":"blue-light","textColor":"#000","background":"rgba(255,255,255,0.6)","colorGroup":["#243BCC","#2C61FF","#499BFF","#15D1F2","#67A9FF"]},{"title":"\u6df1\u7ea2\u767d\u8272","label":"red-light","textColor":"#000","background":"rgba(255,255,255,0.6)","colorGroup":["#F05940","#BE3144","#882241","#770000","#FF8418"]}]')},
  8747. /***/2158:
  8748. /***/function(e){"use strict";e.exports=JSON.parse('[{"name":"\u514b\u62c9\u739b\u4f9d\u5e02","coord":[85.01486759299489,45.406422237230046]},{"name":"\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde","coord":[88.7154624754753,44.26991024636568]},{"name":"\u77f3\u6cb3\u5b50\u5e02","coord":[86.0208600035924,44.239045558096805]},{"name":"\u970d\u6797\u90ed\u52d2\u5e02","coord":[114.73479243733115,44.16058374713977]},{"name":"\u672c\u6eaa\u5e02","coord":[124.64357865201586,41.177197783134275]},{"name":"\u5609\u5cea\u5173\u5e02","coord":[98.16891560537093,39.76279786284264]},{"name":"\u83b1\u829c\u5e02","coord":[117.65723565456207,36.27916499211527]},{"name":"\u795e\u519c\u67b6\u6797\u533a","coord":[110.48296222218153,31.581260143666697]},{"name":"\u5929\u95e8\u5e02","coord":[113.00615321481195,30.64105781887143]},{"name":"\u9102\u5dde\u5e02","coord":[114.94764081970385,30.325634953844585]},{"name":"\u6f5c\u6c5f\u5e02","coord":[112.70703817700621,30.349210666019893]},{"name":"\u4ed9\u6843\u5e02","coord":[113.34688900729822,30.315951161935402]},{"name":"\u840d\u4e61\u5e02","coord":[113.88072263074415,27.47193090553213]},{"name":"\u53f0\u6e7e\u7701","coord":[120.14338943402045,23.596002465926095]},{"name":"\u4e1c\u839e\u5e02","coord":[113.89443658529342,22.897826158636448]},{"name":"\u4e2d\u5c71\u5e02","coord":[113.37118387764659,22.501478858616522]},{"name":"\u73e0\u6d77\u5e02","coord":[113.21799258934986,22.23782602992192]},{"name":"\u5317\u6d77\u5e02","coord":[109.18248083043899,21.695773689750148]},{"name":"\u9999\u6e2f","coord":[114.20689279508653,22.36016760139811]},{"name":"\u821f\u5c71\u5e02","coord":[122.22514712841459,30.338633120695956]},{"name":"\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c","coord":[74.62910472637343,39.59886016069875]},{"name":"\u5580\u4ec0\u5730\u533a","coord":[77.19899922143753,37.85462871211595]},{"name":"\u963f\u514b\u82cf\u5730\u533a","coord":[81.43930290016381,41.067304799230456]},{"name":"\u548c\u7530\u5730\u533a","coord":[80.69780509160952,36.95287032287055]},{"name":"\u963f\u91cc\u5730\u533a","coord":[82.536487505389,32.69566569631762]},{"name":"\u65e5\u5580\u5219\u5730\u533a","coord":[86.5996831353606,29.54861754814263]},{"name":"\u90a3\u66f2\u5730\u533a","coord":[88.32523292667608,33.20600450932715]},{"name":"\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[95.2107128446203,33.90320387919257]},{"name":"\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[99.42465312188943,28.052797714348895]},{"name":"\u6012\u6c5f\u5088\u5088\u65cf\u81ea\u6cbb\u5dde","coord":[98.85737910439825,26.98345757528851]},{"name":"\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde","coord":[99.93934374816013,25.684737357453045]},{"name":"\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea","coord":[98.13830877778075,24.593421919561205]},{"name":"\u4fdd\u5c71\u5e02","coord":[99.19031013453166,24.979380341662]},{"name":"\u4e34\u6ca7\u5e02","coord":[99.62483778975081,24.058807858948214]},{"name":"\u666e\u6d31\u5e02","coord":[100.94440267992684,23.44121660743221]},{"name":"\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb","coord":[100.86105801845994,21.882475641324206]},{"name":"\u62c9\u8428\u5e02","coord":[91.3684790613129,30.14176592960237]},{"name":"\u5c71\u5357\u5730\u533a","coord":[92.11665242621062,28.33000201578789]},{"name":"\u6797\u829d\u5730\u533a","coord":[94.9307847458166,29.125110156601963]},{"name":"\u660c\u90fd\u5730\u533a","coord":[97.33912235873476,30.48520825551814]},{"name":"\u4e3d\u6c5f\u5e02","coord":[100.65713436205135,26.96190318191959]},{"name":"\u6500\u679d\u82b1\u5e02","coord":[101.73355913301131,26.714486678752795]},{"name":"\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde","coord":[102.08678551422615,27.683020519860396]},{"name":"\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde","coord":[101.68264761198458,25.369603845264024]},{"name":"\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea","coord":[102.95101719613119,23.624860095239875]},{"name":"\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb","coord":[104.8708359910614,23.579587266862504]},{"name":"\u767e\u8272\u5e02","coord":[106.69546907589859,23.98220841166522]},{"name":"\u5d07\u5de6\u5e02","coord":[107.3277087317123,22.49769755349952]},{"name":"\u9632\u57ce\u6e2f\u5e02","coord":[107.88939931155171,21.94550204069006]},{"name":"\u5357\u5b81\u5e02","coord":[108.67078983716917,23.12207641861882]},{"name":"\u94a6\u5dde\u5e02","coord":[108.8532307305186,22.157690108421384]},{"name":"\u7389\u6797\u5e02","coord":[110.26918466489103,22.391823643610415]},{"name":"\u6e5b\u6c5f\u5e02","coord":[109.93033457863683,21.086751055633457]},{"name":"\u8302\u540d\u5e02","coord":[110.80336192333934,22.069184739040775]},{"name":"\u9633\u6c5f\u5e02","coord":[111.70471342186183,22.108751366417575]},{"name":"\u6c5f\u95e8\u5e02","coord":[112.53715618649149,22.297368082806777]},{"name":"\u5e7f\u5dde\u5e02","coord":[113.4949302208309,23.28359314707863]},{"name":"\u6e05\u8fdc\u5e02","coord":[113.10957368131268,24.334444053233856]},{"name":"\u8087\u5e86\u5e02","coord":[112.11117530204233,23.60241158796112]},{"name":"\u68a7\u5dde\u5e02","coord":[111.01709510772797,23.518132876753846]},{"name":"\u8d3a\u5dde\u5e02","coord":[111.50423061842756,24.4095096817199]},{"name":"\u6842\u6797\u5e02","coord":[110.44046163393094,25.353966673735407]},{"name":"\u67f3\u5dde\u5e02","coord":[109.34854449214147,24.972408051485047]},{"name":"\u6cb3\u6c60\u5e02","coord":[107.81191841865586,24.649291651298164]},{"name":"\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea","coord":[108.39952601614591,26.429286420465576]},{"name":"\u8d35\u9633\u5e02","coord":[106.59784062851153,26.797907456479816]},{"name":"\u5b89\u987a\u5e02","coord":[105.76161265300635,25.988644902171018]},{"name":"\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf","coord":[105.5954078788574,25.404850939549405]},{"name":"\u66f2\u9756\u5e02","coord":[103.9164335632742,25.697243690315265]},{"name":"\u516d\u76d8\u6c34\u5e02","coord":[104.77723228072432,26.15402255629164]},{"name":"\u6bd5\u8282\u5730\u533a","coord":[105.03867422931839,27.077913968069666]},{"name":"\u662d\u901a\u5e02","coord":[104.29730513046874,27.62418247971078]},{"name":"\u5b9c\u5bbe\u5e02","coord":[104.76748901448207,28.553501804266475]},{"name":"\u4e50\u5c71\u5e02","coord":[103.56027669102787,29.160754519210577]},{"name":"\u81ea\u8d21\u5e02","coord":[104.63272827056402,29.273152614922402]},{"name":"\u5185\u6c5f\u5e02","coord":[104.82644562304716,29.61272653799929]},{"name":"\u9075\u4e49\u5e02","coord":[106.82413636302059,28.191847588570702]},{"name":"\u8fbe\u5dde\u5e02","coord":[107.59704170009518,31.32138258839703]},{"name":"\u9042\u5b81\u5e02","coord":[105.48979445433736,30.677687821242678]},{"name":"\u5e7f\u5b89\u5e02","coord":[106.56708164098042,30.43500706741521]},{"name":"\u6cf8\u5dde\u5e02","coord":[105.42591761727707,28.50277238478137]},{"name":"\u8d44\u9633\u5e02","coord":[104.97995126874034,30.154251886139654]},{"name":"\u96c5\u5b89\u5e02","coord":[102.69931299964517,29.892630706195035]},{"name":"\u7709\u5c71\u5e02","coord":[104.07052881858888,29.894202166560405]},{"name":"\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[100.50721042614238,30.975216556269658]},{"name":"\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[99.30775565051923,34.03539865224808]},{"name":"\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[100.39969108016373,35.90048272566899]},{"name":"\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[101.5360706381689,35.10286360841902]},{"name":"\u8d63\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[102.97083885806067,34.326752803339026]},{"name":"\u9647\u5357\u5e02","coord":[105.24780098912132,33.57031117443431]},{"name":"\u5929\u6c34\u5e02","coord":[105.53503634660417,34.62320421368087]},{"name":"\u5b9a\u897f\u5e02","coord":[104.58787768541339,35.08900966621695]},{"name":"\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde","coord":[103.2612870434902,35.591577124455235]},{"name":"\u897f\u5b81\u5e02","coord":[101.57680657999033,36.84800271717157]},{"name":"\u6d77\u4e1c\u5730\u533a","coord":[102.30909850729282,36.287400615025646]},{"name":"\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde","coord":[100.27122484450717,37.892557516083826]},{"name":"\u91d1\u660c\u5e02","coord":[102.02244049169511,38.497330414886164]},{"name":"\u9152\u6cc9\u5e02","coord":[95.94486678270127,40.56891536586272]},{"name":"\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea","coord":[94.67143298050689,36.022725148503724]},{"name":"\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb","coord":[88.18116214759745,39.556478810319916]},{"name":"\u54c8\u5bc6\u5730\u533a","coord":[93.84302392518026,42.95015211178875]},{"name":"\u53f6\u9c81\u756a\u5730\u533a","coord":[89.82035217277885,42.399368632283505]},{"name":"\u4e4c\u9c81\u6728\u9f50\u5e02","coord":[88.00048109561487,43.549986370786]},{"name":"\u963f\u52d2\u6cf0\u5730\u533a","coord":[88.11213933257655,47.05593413019629]},{"name":"\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb","coord":[82.26402238163408,44.671135542630864]},{"name":"\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde","coord":[82.80778717477179,43.53783381365267]},{"name":"\u963f\u62c9\u5584\u76df","coord":[103.29923966842289,40.10955801781495]},{"name":"\u6b66\u5a01\u5e02","coord":[102.73362058791429,37.94211141321436]},{"name":"\u5170\u5dde\u5e02","coord":[103.73793563506032,36.27379827886003]},{"name":"\u4e2d\u536b\u5e02","coord":[105.6943786030716,37.20654236148948]},{"name":"\u94f6\u5ddd\u5e02","coord":[106.20022174140034,38.52103167597483]},{"name":"\u77f3\u5634\u5c71\u5e02","coord":[106.41544011793628,38.84054137571417]},{"name":"\u4e4c\u6d77\u5e02","coord":[106.8984175998405,39.54616572239788]},{"name":"\u9102\u5c14\u591a\u65af\u5e02","coord":[108.43285571424619,39.24036799350715]},{"name":"\u5df4\u5f66\u6dd6\u5c14\u5e02","coord":[107.45840392808307,41.30159860424196]},{"name":"\u5305\u5934\u5e02","coord":[110.46472193224272,41.48017783644221]},{"name":"\u547c\u548c\u6d69\u7279\u5e02","coord":[111.48365173603975,40.498363056149884]},{"name":"\u4e4c\u5170\u5bdf\u5e03\u5e02","coord":[112.61568977597707,41.75789561273154]},{"name":"\u5927\u540c\u5e02","coord":[113.7107192749083,39.898956799744184]},{"name":"\u6714\u5dde\u5e02","coord":[112.65428748167508,39.681772914701924]},{"name":"\u5ffb\u5dde\u5e02","coord":[112.36127575589583,38.88990233614568]},{"name":"\u6986\u6797\u5e02","coord":[109.68473112169593,38.19921027134876]},{"name":"\u5ef6\u5b89\u5e02","coord":[109.52425222161318,36.406522726136814]},{"name":"\u5e86\u9633\u5e02","coord":[107.73052193155061,36.183821532624464]},{"name":"\u56fa\u539f\u5e02","coord":[106.20191575442442,36.11634909496382]},{"name":"\u767d\u94f6\u5e02","coord":[104.68634478137065,36.51582865625868]},{"name":"\u5b9d\u9e21\u5e02","coord":[107.33534779230747,34.3387216485855]},{"name":"\u6c49\u4e2d\u5e02","coord":[107.03534754266246,33.00142998064871]},{"name":"\u5e7f\u5143\u5e02","coord":[105.92928137563939,32.21872447205537]},{"name":"\u5df4\u4e2d\u5e02","coord":[107.03422410306194,31.99874720836291]},{"name":"\u5357\u5145\u5e02","coord":[106.32964805032347,31.156657700184095]},{"name":"\u7ef5\u9633\u5e02","coord":[104.58949560201106,31.88628780630976]},{"name":"\u5fb7\u9633\u5e02","coord":[104.41542984932845,31.110558133718676]},{"name":"\u6210\u90fd\u5e02","coord":[103.8852290010473,30.777258040348634]},{"name":"\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb","coord":[102.26209319552814,32.45725845387284]},{"name":"\u5b89\u5eb7\u5e02","coord":[109.14236501848015,32.77467694678074]},{"name":"\u5341\u5830\u5e02","coord":[110.39934083416314,32.376209039347906]},{"name":"\u8944\u9633\u5e02","coord":[111.97539147094662,31.93399822417465]},{"name":"\u5b9c\u660c\u5e02","coord":[111.22204852395754,30.772457669035354]},{"name":"\u6069\u65bd\u5e02","coord":[109.42158366502872,30.260366574390105]},{"name":"\u5f20\u5bb6\u754c\u5e02","coord":[110.59760006538717,29.330107409240718]},{"name":"\u5409\u9996\u5e02","coord":[109.72176899848378,28.681903937242495]},{"name":"\u94dc\u4ec1\u5730\u533a","coord":[108.54247523485463,28.11736237519646]},{"name":"\u91cd\u5e86\u5e02","coord":[107.86007108564992,30.186253395053196]},{"name":"\u6000\u5316\u5e02","coord":[109.94325166787243,27.43919084801186]},{"name":"\u76ca\u9633\u5e02","coord":[112.43060358108062,28.75127294553697]},{"name":"\u5a04\u5e95\u5e02","coord":[111.41891416951897,27.696312460064604]},{"name":"\u5e38\u5fb7\u5e02","coord":[111.72571610131646,29.27189463838195]},{"name":"\u8346\u5dde\u5e02","coord":[112.65896596965268,30.05161542755362]},{"name":"\u8346\u95e8\u5e02","coord":[112.6586855902184,31.01267124474617]},{"name":"\u5cb3\u9633\u5e02","coord":[113.2595036144316,29.106247116930163]},{"name":"\u957f\u6c99\u5e02","coord":[113.15415586456598,28.222934680488425]},{"name":"\u6e58\u6f6d\u5e02","coord":[112.51092596317824,27.69881544105668]},{"name":"\u682a\u5dde\u5e02","coord":[113.49665538546823,27.03993794610501]},{"name":"\u8861\u9633\u5e02","coord":[112.48849636578527,26.783613569970782]},{"name":"\u90b5\u9633\u5e02","coord":[110.6723832117475,26.81652287086792]},{"name":"\u6c38\u5dde\u5e02","coord":[111.8565364154186,25.768488267811968]},{"name":"\u97f6\u5173\u5e02","coord":[113.53420325850979,24.69848878771937]},{"name":"\u60e0\u5dde\u5e02","coord":[114.32029589634925,23.25504544231892]},{"name":"\u4f5b\u5c71\u5e02","coord":[112.95925897403649,23.10116677189257]},{"name":"\u4e91\u6d6e\u5e02","coord":[111.78042514904234,22.840400494105687]},{"name":"\u6df1\u5733\u5e02","coord":[114.13138648919008,22.649563063468342]},{"name":"\u6c55\u5c3e\u5e02","coord":[115.57412892884373,23.06989642104901]},{"name":"\u6cb3\u6e90\u5e02","coord":[114.89746229844398,23.97971937124767]},{"name":"\u63ed\u9633\u5e02","coord":[116.04290004239446,23.304802704715357]},{"name":"\u6c55\u5934\u5e02","coord":[116.7008461897183,23.35898625947344]},{"name":"\u6f6e\u5dde\u5e02","coord":[116.75405548481658,23.854381508863064]},{"name":"\u6885\u5dde\u5e02","coord":[116.13719397345734,24.15633544812716]},{"name":"\u6f33\u5dde\u5e02","coord":[117.38279760543345,24.41111215459575]},{"name":"\u53a6\u95e8\u5e02","coord":[118.04275971554665,24.675908246507944]},{"name":"\u9f99\u5ca9\u5e02","coord":[116.69341144552507,25.20284542644492]},{"name":"\u6cc9\u5dde\u5e02","coord":[118.12035864630246,25.22984144365049]},{"name":"\u8386\u7530\u5e02","coord":[118.82439690138142,25.439653480972687]},{"name":"\u798f\u5dde\u5e02","coord":[119.1608285845262,25.99117532466728]},{"name":"\u4e09\u660e\u5e02","coord":[117.51188176216434,26.318292906961602]},{"name":"\u5357\u5e73\u5e02","coord":[118.16153136678187,27.306303151805437]},{"name":"\u629a\u5dde\u5e02","coord":[116.3455359885574,27.487043655935366]},{"name":"\u9e70\u6f6d\u5e02","coord":[117.01082360702333,28.241253742969946]},{"name":"\u5409\u5b89\u5e02","coord":[114.91377151807418,26.957486660664525]},{"name":"\u8d63\u5dde\u5e02","coord":[115.046455717572,25.81565075681663]},{"name":"\u90f4\u5dde\u5e02","coord":[113.1544526703492,25.871927095452524]},{"name":"\u65b0\u4f59\u5e02","coord":[114.94161795877827,27.79044654578371]},{"name":"\u5b9c\u6625\u5e02","coord":[115.04574494880995,28.306428044943356]},{"name":"\u5357\u660c\u5e02","coord":[115.9963824234495,28.664803351584705]},{"name":"\u4e5d\u6c5f\u5e02","coord":[115.53225905704193,29.362905920276297]},{"name":"\u4e0a\u9976\u5e02","coord":[117.8595355766598,28.765755150094634]},{"name":"\u666f\u5fb7\u9547\u5e02","coord":[117.25387030721845,29.33426823662448]},{"name":"\u9ec4\u5c71\u5e02","coord":[117.85476357809696,29.969632034273722]},{"name":"\u6c60\u5dde\u5e02","coord":[117.34517113140791,30.208089337922335]},{"name":"\u94dc\u9675\u5e02","coord":[117.93160431300694,30.926442655001676]},{"name":"\u5b89\u5e86\u5e02","coord":[116.54307680610799,30.524265461641296]},{"name":"\u9ec4\u77f3\u5e02","coord":[115.02354597728443,29.924060229331015]},{"name":"\u54b8\u5b81\u5e02","coord":[114.26967602231792,29.652174021136048]},{"name":"\u9ec4\u5188\u5e02","coord":[115.2859016705373,30.65856897065683]},{"name":"\u6b66\u6c49\u5e02","coord":[114.34552076948799,30.68836237966767]},{"name":"\u968f\u5dde\u5e02","coord":[113.3850627838818,31.87891659924412]},{"name":"\u4fe1\u9633\u5e02","coord":[114.81374730587638,32.0309685135914]},{"name":"\u9a7b\u9a6c\u5e97\u5e02","coord":[114.07756451509235,32.896720987266114]},{"name":"\u5546\u6d1b\u5e02","coord":[109.82044421310393,33.77403373563189]},{"name":"\u897f\u5b89\u5e02","coord":[109.11839808451401,34.225257215515896]},{"name":"\u6e2d\u5357\u5e02","coord":[109.75732444226935,35.025913644359306]},{"name":"\u94dc\u5ddd\u5e02","coord":[108.98695328111377,35.19235092947735]},{"name":"\u54b8\u9633\u5e02","coord":[108.36398776446165,34.84311348287181]},{"name":"\u4e09\u95e8\u5ce1\u5e02","coord":[110.80049688104964,34.31818709571671]},{"name":"\u8fd0\u57ce\u5e02","coord":[111.1736679525165,35.19010372283576]},{"name":"\u6d1b\u9633\u5e02","coord":[111.87577573098216,34.33379926109848]},{"name":"\u5e73\u9876\u5c71\u5e02","coord":[112.80931281928427,33.759895800153096]},{"name":"\u6f2f\u6cb3\u5e02","coord":[113.83505724178012,33.70034266174508]},{"name":"\u8bb8\u660c\u5e02","coord":[113.78762484088509,34.051835688452435]},{"name":"\u90d1\u5dde\u5e02","coord":[113.49619951867594,34.61181797865449]},{"name":"\u7126\u4f5c\u5e02","coord":[113.13404280173008,35.134167097471625]},{"name":"\u664b\u57ce\u5e02","coord":[112.7495732073233,35.63186423091449]},{"name":"\u957f\u6cbb\u5e02","coord":[112.85900842873183,36.45872910742828]},{"name":"\u4e34\u6c7e\u5e02","coord":[111.49379787924448,36.22810800777857]},{"name":"\u592a\u539f\u5e02","coord":[112.15628804033796,37.91704444063036]},{"name":"\u5415\u6881\u5e02","coord":[111.31901105774872,37.712740463356496]},{"name":"\u664b\u4e2d\u5e02","coord":[113.08199599739676,37.36532613794343]},{"name":"\u90af\u90f8\u5e02","coord":[114.41824047234618,36.530119932543315]},{"name":"\u5b89\u9633\u5e02","coord":[113.88883283163116,35.7797611183252]},{"name":"\u9e64\u58c1\u5e02","coord":[114.3654094911545,35.75770487428472]},{"name":"\u65b0\u4e61\u5e02","coord":[113.9184107718167,35.348471214026716]},{"name":"\u5f00\u5c01\u5e02","coord":[114.52801677500626,34.61371216679872]},{"name":"\u5468\u53e3\u5e02","coord":[114.88509782391864,33.69999759722657]},{"name":"\u961c\u9633\u5e02","coord":[115.44595951398213,32.98060371610532]},{"name":"\u6dee\u5357\u5e02","coord":[116.68941991880993,32.79972275772595]},{"name":"\u868c\u57e0\u5e02","coord":[117.38594715783302,33.106729536033896]},{"name":"\u6dee\u5317\u5e02","coord":[116.69651711889378,33.69527529383458]},{"name":"\u5bbf\u5dde\u5e02","coord":[117.30175405886838,33.943330421260015]},{"name":"\u4eb3\u5dde\u5e02","coord":[116.12410804185097,33.46769392946132]},{"name":"\u5546\u4e18\u5e02","coord":[115.59575176872548,34.28339840831147]},{"name":"\u83cf\u6cfd\u5e02","coord":[115.53631974831816,35.197319393220624]},{"name":"\u6fee\u9633\u5e02","coord":[115.3070485514902,35.775883510964334]},{"name":"\u804a\u57ce\u5e02","coord":[115.8870069012884,36.40529594548765]},{"name":"\u90a2\u53f0\u5e02","coord":[114.74259008644859,37.251396750084155]},{"name":"\u77f3\u5bb6\u5e84\u5e02","coord":[114.56923838363613,38.13141710980106]},{"name":"\u9633\u6cc9\u5e02","coord":[113.39216149668508,38.09075470547468]},{"name":"\u4fdd\u5b9a\u5e02","coord":[115.261524468934,39.09118520781398]},{"name":"\u8861\u6c34\u5e02","coord":[115.8182936677897,37.715661598187154]},{"name":"\u5fb7\u5dde\u5e02","coord":[116.4582273790399,37.19372347888644]},{"name":"\u6ca7\u5dde\u5e02","coord":[116.76192710911863,38.20240042039232]},{"name":"\u5eca\u574a\u5e02","coord":[116.50410772133856,39.27896741763884]},{"name":"\u5929\u6d25\u5e02","coord":[117.31988934444873,39.37154482470619]},{"name":"\u5317\u4eac\u5e02","coord":[116.59734730757869,40.237112944270976]},{"name":"\u5f20\u5bb6\u53e3\u5e02","coord":[115.1823606483226,40.83732566607167]},{"name":"\u5510\u5c71\u5e02","coord":[117.8693184261954,39.71862889477249]},{"name":"\u79e6\u7687\u5c9b\u5e02","coord":[119.30467355367742,39.990574652162564]},{"name":"\u627f\u5fb7\u5e02","coord":[117.16275671911026,41.36623845548547]},{"name":"\u846b\u82a6\u5c9b\u5e02","coord":[119.9342336210531,40.5628822626519]},{"name":"\u671d\u9633\u5e02","coord":[120.11853493535794,41.471852354885755]},{"name":"\u8d64\u5cf0\u5e02","coord":[118.50943546234379,43.25452976059767]},{"name":"\u9526\u5dde\u5e02","coord":[121.5167549323861,41.45933087433065]},{"name":"\u8425\u53e3\u5e02","coord":[122.58571915054674,40.42093503997384]},{"name":"\u4e39\u4e1c\u5e02","coord":[124.33549382902183,40.46369290272115]},{"name":"\u8fbd\u9633\u5e02","coord":[123.34064798039414,41.152331397771356]},{"name":"\u76d8\u9526\u5e02","coord":[122.06718005354679,41.05573599862555]},{"name":"\u961c\u65b0\u5e02","coord":[121.93889757908204,42.27641773244204]},{"name":"\u978d\u5c71\u5e02","coord":[122.78904432242356,40.77781183142038]},{"name":"\u6c88\u9633\u5e02","coord":[122.99508899709724,42.1162195010079]},{"name":"\u94c1\u5cad\u5e02","coord":[124.23100515588399,42.72666083611828]},{"name":"\u6276\u987a\u5e02","coord":[124.46027188217573,41.82955407638859]},{"name":"\u901a\u8fbd\u5e02","coord":[122.0729370657937,43.90889130864869]},{"name":"\u5174\u5b89\u76df","coord":[120.79456431092532,45.92003249442161]},{"name":"\u767d\u57ce\u5e02","coord":[123.10619907715235,45.25475749267784]},{"name":"\u9f50\u9f50\u54c8\u5c14\u5e02","coord":[124.5462214659102,47.55395009317394]},{"name":"\u5927\u5174\u5b89\u5cad\u5730\u533a","coord":[124.50992855161529,52.18438447846694]},{"name":"\u9ed1\u6cb3\u5e02","coord":[127.14721400335922,49.25080134026901]},{"name":"\u5927\u5e86\u5e02","coord":[124.40329830095243,46.401048760966745]},{"name":"\u7ee5\u5316\u5e02","coord":[126.5214484055605,46.76992452194825]},{"name":"\u677e\u539f\u5e02","coord":[124.21244334807682,44.75779381338502]},{"name":"\u56db\u5e73\u5e02","coord":[124.27839350328821,43.52139065090318]},{"name":"\u901a\u5316\u5e02","coord":[125.67392830706305,41.91771808663852]},{"name":"\u8fbd\u6e90\u5e02","coord":[125.33529527643432,42.758340204944986]},{"name":"\u5409\u6797\u5e02","coord":[126.83350281902375,43.60730120049175]},{"name":"\u957f\u6625\u5e02","coord":[125.53597875970374,44.24624314701737]},{"name":"\u767d\u5c71\u5e02","coord":[127.16780160322108,42.093893880305075]},{"name":"\u54c8\u5c14\u6ee8\u5e02","coord":[127.39125008786029,45.36200668820575]},{"name":"\u9e64\u5c97\u5e02","coord":[130.4703811258197,47.66520688940109]},{"name":"\u4f0a\u6625\u5e02","coord":[128.91240831703635,47.93833794565277]},{"name":"\u4e03\u53f0\u6cb3\u5e02","coord":[131.2677920224311,45.945099776108584]},{"name":"\u9e21\u897f\u5e02","coord":[132.38059153660274,45.722934218318535]},{"name":"\u53cc\u9e2d\u5c71\u5e02","coord":[132.3184817002743,46.65813679030265]},{"name":"\u4f73\u6728\u65af\u5e02","coord":[132.26174446608726,47.17569713691394]},{"name":"\u547c\u4f26\u8d1d\u5c14\u5e02","coord":[122.3210739998419,50.18176996070858]},{"name":"\u5b5d\u611f\u5e02","coord":[113.83749892135485,31.11757234692128]},{"name":"\u8d35\u6e2f\u5e02","coord":[110.07354588052804,23.380735604767374]},{"name":"\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea","coord":[107.30931767543106,26.2976919432269]},{"name":"\u5b81\u5fb7\u5e02","coord":[119.52482556634342,27.013151692716413]},{"name":"\u6e29\u5dde\u5e02","coord":[120.30037042732202,27.8699145504001]},{"name":"\u53f0\u5dde\u5e02","coord":[120.88886782713843,28.670799172772313]},{"name":"\u4e3d\u6c34\u5e02","coord":[119.56796851966463,28.170268394477755]},{"name":"\u8862\u5dde\u5e02","coord":[118.79479802644406,28.865874397158763]},{"name":"\u91d1\u534e\u5e02","coord":[119.99381920686633,29.093455548185744]},{"name":"\u7ecd\u5174\u5e02","coord":[120.46546691682343,29.69382513836818]},{"name":"\u5b81\u6ce2\u5e02","coord":[121.42142987830871,29.70001162878972]},{"name":"\u676d\u5dde\u5e02","coord":[119.4405685790891,29.87218307296989]},{"name":"\u5ba3\u57ce\u5e02","coord":[118.68748382914703,30.628143499626418]},{"name":"\u6e56\u5dde\u5e02","coord":[119.98261306633574,30.7945175862809]},{"name":"\u5609\u5174\u5e02","coord":[120.83889215988998,30.67538495499343]},{"name":"\u4e0a\u6d77\u5e02","coord":[121.37534147322967,31.25628247908459]},{"name":"\u82cf\u5dde\u5e02","coord":[120.6906182622391,31.381280695137775]},{"name":"\u65e0\u9521\u5e02","coord":[120.32182300914366,31.54113306724517]},{"name":"\u5e38\u5dde\u5e02","coord":[119.61953292830165,31.611878565375576]},{"name":"\u5357\u4eac\u5e02","coord":[118.71890548838064,31.910863187910323]},{"name":"\u9547\u6c5f\u5e02","coord":[119.42349332902813,31.97942313430778]},{"name":"\u5408\u80a5\u5e02","coord":[117.30651975617157,31.79407863049138]},{"name":"\u516d\u5b89\u5e02","coord":[116.24668220575353,31.820846193819513]},{"name":"\u6ec1\u5dde\u5e02","coord":[117.88422385307969,32.51792621904418]},{"name":"\u6cf0\u5dde\u5e02","coord":[120.03124303305091,32.56503102346783]},{"name":"\u5357\u901a\u5e02","coord":[120.85599446760912,32.18496706099728]},{"name":"\u76d0\u57ce\u5e02","coord":[120.01812490612667,33.54219948734023]},{"name":"\u6dee\u5b89\u5e02","coord":[119.0749424205415,33.39203631772854]},{"name":"\u5bbf\u8fc1\u5e02","coord":[118.45404943216346,33.666258719120265]},{"name":"\u5f90\u5dde\u5e02","coord":[117.77482249295966,34.30847766157078]},{"name":"\u6d4e\u5b81\u5e02","coord":[116.74147276546373,35.27488504351119]},{"name":"\u67a3\u5e84\u5e02","coord":[117.43359942491492,34.884162021736]},{"name":"\u8fde\u4e91\u6e2f\u5e02","coord":[119.01553213785074,34.54316517587849]},{"name":"\u4e34\u6c82\u5e02","coord":[118.31478835349617,35.28173079028279]},{"name":"\u65e5\u7167\u5e02","coord":[119.14265350444272,35.54479073199592]},{"name":"\u9752\u5c9b\u5e02","coord":[120.27779044405756,36.3464117375903]},{"name":"\u5a01\u6d77\u5e02","coord":[122.12963327195605,37.13879077904251]},{"name":"\u70df\u53f0\u5e02","coord":[120.7689567423966,37.19772002195597]},{"name":"\u6f4d\u574a\u5e02","coord":[119.02178548592039,36.49292234053931]},{"name":"\u6dc4\u535a\u5e02","coord":[117.92936024367185,36.60871347163638]},{"name":"\u6cf0\u5b89\u5e02","coord":[116.93810893944303,36.0423330118612]},{"name":"\u6d4e\u5357\u5e02","coord":[117.34560282551296,36.769574973846304]},{"name":"\u4e1c\u8425\u5e02","coord":[118.4915054457184,37.52194690335787]},{"name":"\u6ee8\u5dde\u5e02","coord":[117.67610299757533,37.4439597758601]},{"name":"\u6606\u660e\u5e02","coord":[102.93100245594789,25.481300763922075]},{"name":"\u7389\u6eaa\u5e02","coord":[102.23080854291823,24.156168324611663]},{"name":"\u5854\u57ce\u5730\u533a","coord":[83.60908162840168,45.3721852373893]},{"name":"\u5f20\u6396\u5e02","coord":[100.47710030600572,38.704239320458385]},{"name":"\u5357\u9633\u5e02","coord":[112.1400670951149,33.03033276715801]},{"name":"\u626c\u5dde\u5e02","coord":[119.48949608990988,32.80956776339646]},{"name":"\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde","coord":[129.3577692895626,43.24968794080283]},{"name":"\u7261\u4e39\u6c5f\u5e02","coord":[129.87240796405672,44.7073040108322]},{"name":"\u6fb3\u95e8","coord":[113.56289691515346,22.14602596262204]},{"name":"\u5434\u5fe0\u5e02","coord":[106.76894508116403,37.72566765880316]},{"name":"\u6765\u5bbe\u5e02","coord":[109.25592217010114,23.86346274681084]},{"name":"\u5e73\u51c9\u5e02","coord":[107.0708132782897,35.30329631658711]},{"name":"\u9a6c\u978d\u5c71\u5e02","coord":[118.27245878467022,31.657727937739004]},{"name":"\u829c\u6e56\u5e02","coord":[118.32992684415504,31.081688223101658]},{"name":"\u6f84\u8fc8\u53bf","coord":[110.04198076060266,19.694955078668105]},{"name":"\u4fdd\u4ead\u9ece\u65cf\u82d7\u65cf\u81ea\u6cbb","coord":[109.6055304964257,18.6101488675304]},{"name":"\u4e50\u4e1c\u9ece\u65cf\u81ea\u6cbb\u53bf","coord":[109.04051999525574,18.643137437909203]},{"name":"\u510b\u5dde\u5e02","coord":[109.3431358337404,19.550974957403195]},{"name":"\u5b9a\u5b89\u53bf","coord":[110.38744429685676,19.47557074114284]},{"name":"\u5c6f\u660c\u53bf","coord":[110.00574767630334,19.367175093044388]},{"name":"\u767d\u6c99\u9ece\u65cf\u81ea\u6cbb\u53bf","coord":[109.36860737761768,19.214416393082217]},{"name":"\u743c\u4e2d\u9ece\u65cf\u82d7\u65cf\u81ea\u6cbb","coord":[109.86691465937548,19.073671135862682]},{"name":"\u4e1c\u65b9\u5e02","coord":[108.86903802405428,19.017352815445214]},{"name":"\u660c\u6c5f\u9ece\u65cf\u81ea\u6cbb\u53bf","coord":[108.9686431884767,19.182594167127824]},{"name":"\u6d77\u53e3\u5e02","coord":[110.420654296875,19.806565564640795]},{"name":"\u6d4e\u6e90\u5e02","coord":[112.38051465474433,35.07958362422394]},{"name":"\u4e94\u6307\u5c71\u5e02","coord":[109.53595187364496,18.832908264613966]},{"name":"\u5927\u8fde\u5e02","coord":[121.96662235866603,39.444150542439914]},{"name":"\u6587\u660c\u5e02\u4e09\u6c99\u5e02","coord":[110.81828537536748,19.756501444162936]},{"name":"\u4e09\u4e9a\u5e02","coord":[109.38424600793707,18.39186315877128]},{"name":"\u4e07\u5b81\u5e02","coord":[110.28485046979574,18.860240588635115]},{"name":"\u9675\u6c34\u9ece\u65cf\u81ea\u6cbb\u53bf","coord":[109.95577603229562,18.594712684620465]},{"name":"\u4e34\u9ad8\u53bf","coord":[109.71915395436967,19.79420403032508]},{"name":"\u743c\u6d77\u5e02","coord":[110.41650700703043,19.22315873149372]}]')},
  8749. /***/5385:
  8750. /***/function(e){"use strict";e.exports=JSON.parse('[{"name":"\u9ed1\u9f99\u6c5f\u7701","coord":[127.64559817675396,48.48668098449708]},{"name":"\u5185\u8499\u53e4\u81ea\u6cbb\u533a","coord":[118.34519572208615,45.370218276977525]},{"name":"\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a","coord":[87.13479065593184,41.75497055053711]},{"name":"\u5409\u6797\u7701","coord":[126.12985278813787,43.57983207702637]},{"name":"\u8fbd\u5b81\u7701","coord":[124.02494773936439,41.105743408203125]},{"name":"\u7518\u8083\u7701","coord":[102.87785725633012,37.69582366943361]},{"name":"\u6cb3\u5317\u7701","coord":[115.66327227481898,39.33383178710938]},{"name":"\u5317\u4eac\u5e02","coord":[116.62199343603638,40.25053787231445]},{"name":"\u5c71\u897f\u7701","coord":[112.45180235808988,37.666561126708984]},{"name":"\u5929\u6d25\u5e02","coord":[117.35711842642581,39.406789779663086]},{"name":"\u9655\u897f\u7701","coord":[109.56294003056632,35.64754199981689]},{"name":"\u5b81\u590f\u56de\u65cf\u81ea\u6cbb\u533a","coord":[105.96110877640074,37.3081169128418]},{"name":"\u9752\u6d77\u7701","coord":[96.07301048277901,35.44417190551758]},{"name":"\u5c71\u4e1c\u7701","coord":[118.03833752951093,36.29800605773925]},{"name":"\u897f\u85cf\u81ea\u6cbb\u533a","coord":[87.47361520439412,31.6703872680664]},{"name":"\u6cb3\u5357\u7701","coord":[113.07832397097275,33.87751102447509]},{"name":"\u6c5f\u82cf\u7701","coord":[119.93926538201052,32.945452690124505]},{"name":"\u5b89\u5fbd\u7701","coord":[117.15146765881019,32.024482727050774]},{"name":"\u56db\u5ddd\u7701","coord":[102.28998890142759,30.182161331176758]},{"name":"\u6e56\u5317\u7701","coord":[112.87798261431585,31.157071113586426]},{"name":"\u91cd\u5e86\u5e02","coord":[107.870126637831,30.188085556030266]},{"name":"\u4e0a\u6d77\u5e02","coord":[121.42561166015514,31.276043891906745]},{"name":"\u6d59\u6c5f\u7701","coord":[119.75337092707514,29.175934791564945]},{"name":"\u6e56\u5357\u7701","coord":[111.52770282777405,27.38110256195069]},{"name":"\u6c5f\u897f\u7701","coord":[115.51091280655628,27.283511161804206]},{"name":"\u4e91\u5357\u7701","coord":[101.27053825991308,25.19783210754396]},{"name":"\u8d35\u5dde\u7701","coord":[106.49672346773299,26.92267990112305]},{"name":"\u798f\u5efa\u7701","coord":[117.9976766946587,25.939599990844727]},{"name":"\u5e7f\u897f\u58ee\u65cf\u81ea\u6cbb\u533a","coord":[108.98706831086302,23.891559600830078]},{"name":"\u53f0\u6e7e\u7701","coord":[120.82468432537434,23.602651596069336]},{"name":"\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a","coord":[114.21036850371561,22.374858856201172]},{"name":"\u6d77\u5357\u7701","coord":[109.62792940960824,19.163116455078125]},{"name":"\u5e7f\u4e1c\u7701","coord":[113.32127888266032,22.873867034912106]},{"name":"\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a","coord":[113.56819996291901,22.160347992976]}]')}
  8751. /******/},__webpack_module_cache__={};
  8752. /************************************************************************/
  8753. /******/ // The module cache
  8754. /******/
  8755. /******/
  8756. /******/ // The require function
  8757. /******/function __webpack_require__(e){
  8758. /******/ // Check if module is in cache
  8759. /******/var t=__webpack_module_cache__[e];
  8760. /******/if(void 0!==t)
  8761. /******/return t.exports;
  8762. /******/
  8763. /******/ // Create a new module (and put it into the cache)
  8764. /******/var r=__webpack_module_cache__[e]={
  8765. /******/id:e,
  8766. /******/loaded:!1,
  8767. /******/exports:{}
  8768. /******/};
  8769. /******/
  8770. /******/ // Execute the module function
  8771. /******/
  8772. /******/
  8773. /******/ // Return the exports of the module
  8774. /******/return __webpack_modules__[e](r,r.exports,__webpack_require__),
  8775. /******/
  8776. /******/ // Flag the module as loaded
  8777. /******/r.loaded=!0,r.exports;
  8778. /******/}
  8779. /******/
  8780. /************************************************************************/
  8781. /******/ /* webpack/runtime/define property getters */
  8782. /******/
  8783. /******/ // define getter functions for harmony exports
  8784. /******/__webpack_require__.d=function(e,t){
  8785. /******/for(var r in t)
  8786. /******/__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&
  8787. /******/Object.defineProperty(e,r,{enumerable:!0,get:t[r]})
  8788. /******/;
  8789. /******/},
  8790. /******/__webpack_require__.g=function(){
  8791. /******/if("object"===typeof globalThis)return globalThis;
  8792. /******/try{
  8793. /******/return this||new Function("return this")();
  8794. /******/}catch(e){
  8795. /******/if("object"===typeof window)return window;
  8796. /******/}
  8797. /******/}(),
  8798. /******/__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
  8799. /******/,
  8800. /******/ // define __esModule on exports
  8801. /******/__webpack_require__.r=function(e){
  8802. /******/"undefined"!==typeof Symbol&&Symbol.toStringTag&&
  8803. /******/Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})
  8804. /******/,Object.defineProperty(e,"__esModule",{value:!0})},
  8805. /******/__webpack_require__.nmd=function(e){
  8806. /******/
  8807. /******/return e.paths=[],
  8808. /******/e.children||(e.children=[]),e;
  8809. /******/};
  8810. /******/
  8811. /************************************************************************/
  8812. /******/
  8813. /******/ // startup
  8814. /******/ // Load entry module and return exports
  8815. /******/ // This entry module is referenced by other modules so it can't be inlined
  8816. /******/var __webpack_exports__=__webpack_require__(4483);
  8817. /******/
  8818. /******/
  8819. /******/return __webpack_exports__=__webpack_exports__.default,__webpack_exports__;
  8820. /******/}()}));