123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843 |
- /**
- @license
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
- 1. Definitions.
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
- END OF TERMS AND CONDITIONS
- APPENDIX: How to apply the Apache License to your work.
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- **/
- /**
- @license
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
- 1. Definitions.
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
- END OF TERMS AND CONDITIONS
- APPENDIX: How to apply the Apache License to your work.
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
- Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- **/
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define('rxjs', ['exports'], factory) :
- (factory((global.rxjs = {})));
- }(this, (function (exports) { 'use strict';
- /*! *****************************************************************************
- Copyright (c) Microsoft Corporation.
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted.
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
- ***************************************************************************** */
- /* global Reflect, Promise */
- var extendStatics = function(d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- function __extends(d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- }
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- function __rest(s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
- t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
- t[p[i]] = s[p[i]];
- }
- return t;
- }
- function __awaiter(thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- }
- function __generator(thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (_) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
- }
- function __values(o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
- }
- function __read(o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
- }
- function __spreadArray(to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
- }
- function __await(v) {
- return this instanceof __await ? (this.v = v, this) : new __await(v);
- }
- function __asyncGenerator(thisArg, _arguments, generator) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
- function fulfill(value) { resume("next", value); }
- function reject(value) { resume("throw", value); }
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
- }
- function __asyncValues(o) {
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
- var m = o[Symbol.asyncIterator], i;
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
- }
- function isFunction(value) {
- return typeof value === 'function';
- }
- function createErrorClass(createImpl) {
- var _super = function (instance) {
- Error.call(instance);
- instance.stack = new Error().stack;
- };
- var ctorFunc = createImpl(_super);
- ctorFunc.prototype = Object.create(Error.prototype);
- ctorFunc.prototype.constructor = ctorFunc;
- return ctorFunc;
- }
- var UnsubscriptionError = createErrorClass(function (_super) {
- return function UnsubscriptionErrorImpl(errors) {
- _super(this);
- this.message = errors
- ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ')
- : '';
- this.name = 'UnsubscriptionError';
- this.errors = errors;
- };
- });
- function arrRemove(arr, item) {
- if (arr) {
- var index = arr.indexOf(item);
- 0 <= index && arr.splice(index, 1);
- }
- }
- var Subscription = (function () {
- function Subscription(initialTeardown) {
- this.initialTeardown = initialTeardown;
- this.closed = false;
- this._parentage = null;
- this._finalizers = null;
- }
- Subscription.prototype.unsubscribe = function () {
- var e_1, _a, e_2, _b;
- var errors;
- if (!this.closed) {
- this.closed = true;
- var _parentage = this._parentage;
- if (_parentage) {
- this._parentage = null;
- if (Array.isArray(_parentage)) {
- try {
- for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
- var parent_1 = _parentage_1_1.value;
- parent_1.remove(this);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- }
- else {
- _parentage.remove(this);
- }
- }
- var initialFinalizer = this.initialTeardown;
- if (isFunction(initialFinalizer)) {
- try {
- initialFinalizer();
- }
- catch (e) {
- errors = e instanceof UnsubscriptionError ? e.errors : [e];
- }
- }
- var _finalizers = this._finalizers;
- if (_finalizers) {
- this._finalizers = null;
- try {
- for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
- var finalizer = _finalizers_1_1.value;
- try {
- execFinalizer(finalizer);
- }
- catch (err) {
- errors = errors !== null && errors !== void 0 ? errors : [];
- if (err instanceof UnsubscriptionError) {
- errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));
- }
- else {
- errors.push(err);
- }
- }
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);
- }
- finally { if (e_2) throw e_2.error; }
- }
- }
- if (errors) {
- throw new UnsubscriptionError(errors);
- }
- }
- };
- Subscription.prototype.add = function (teardown) {
- var _a;
- if (teardown && teardown !== this) {
- if (this.closed) {
- execFinalizer(teardown);
- }
- else {
- if (teardown instanceof Subscription) {
- if (teardown.closed || teardown._hasParent(this)) {
- return;
- }
- teardown._addParent(this);
- }
- (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
- }
- }
- };
- Subscription.prototype._hasParent = function (parent) {
- var _parentage = this._parentage;
- return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));
- };
- Subscription.prototype._addParent = function (parent) {
- var _parentage = this._parentage;
- this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
- };
- Subscription.prototype._removeParent = function (parent) {
- var _parentage = this._parentage;
- if (_parentage === parent) {
- this._parentage = null;
- }
- else if (Array.isArray(_parentage)) {
- arrRemove(_parentage, parent);
- }
- };
- Subscription.prototype.remove = function (teardown) {
- var _finalizers = this._finalizers;
- _finalizers && arrRemove(_finalizers, teardown);
- if (teardown instanceof Subscription) {
- teardown._removeParent(this);
- }
- };
- Subscription.EMPTY = (function () {
- var empty = new Subscription();
- empty.closed = true;
- return empty;
- })();
- return Subscription;
- }());
- var EMPTY_SUBSCRIPTION = Subscription.EMPTY;
- function isSubscription(value) {
- return (value instanceof Subscription ||
- (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));
- }
- function execFinalizer(finalizer) {
- if (isFunction(finalizer)) {
- finalizer();
- }
- else {
- finalizer.unsubscribe();
- }
- }
- var config = {
- onUnhandledError: null,
- onStoppedNotification: null,
- Promise: undefined,
- useDeprecatedSynchronousErrorHandling: false,
- useDeprecatedNextContext: false,
- };
- var timeoutProvider = {
- setTimeout: function (handler, timeout) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- var delegate = timeoutProvider.delegate;
- if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
- return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));
- }
- return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));
- },
- clearTimeout: function (handle) {
- var delegate = timeoutProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);
- },
- delegate: undefined,
- };
- function reportUnhandledError(err) {
- timeoutProvider.setTimeout(function () {
- var onUnhandledError = config.onUnhandledError;
- if (onUnhandledError) {
- onUnhandledError(err);
- }
- else {
- throw err;
- }
- });
- }
- function noop() { }
- var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();
- function errorNotification(error) {
- return createNotification('E', undefined, error);
- }
- function nextNotification(value) {
- return createNotification('N', value, undefined);
- }
- function createNotification(kind, value, error) {
- return {
- kind: kind,
- value: value,
- error: error,
- };
- }
- var context = null;
- function errorContext(cb) {
- if (config.useDeprecatedSynchronousErrorHandling) {
- var isRoot = !context;
- if (isRoot) {
- context = { errorThrown: false, error: null };
- }
- cb();
- if (isRoot) {
- var _a = context, errorThrown = _a.errorThrown, error = _a.error;
- context = null;
- if (errorThrown) {
- throw error;
- }
- }
- }
- else {
- cb();
- }
- }
- function captureError(err) {
- if (config.useDeprecatedSynchronousErrorHandling && context) {
- context.errorThrown = true;
- context.error = err;
- }
- }
- var Subscriber = (function (_super) {
- __extends(Subscriber, _super);
- function Subscriber(destination) {
- var _this = _super.call(this) || this;
- _this.isStopped = false;
- if (destination) {
- _this.destination = destination;
- if (isSubscription(destination)) {
- destination.add(_this);
- }
- }
- else {
- _this.destination = EMPTY_OBSERVER;
- }
- return _this;
- }
- Subscriber.create = function (next, error, complete) {
- return new SafeSubscriber(next, error, complete);
- };
- Subscriber.prototype.next = function (value) {
- if (this.isStopped) {
- handleStoppedNotification(nextNotification(value), this);
- }
- else {
- this._next(value);
- }
- };
- Subscriber.prototype.error = function (err) {
- if (this.isStopped) {
- handleStoppedNotification(errorNotification(err), this);
- }
- else {
- this.isStopped = true;
- this._error(err);
- }
- };
- Subscriber.prototype.complete = function () {
- if (this.isStopped) {
- handleStoppedNotification(COMPLETE_NOTIFICATION, this);
- }
- else {
- this.isStopped = true;
- this._complete();
- }
- };
- Subscriber.prototype.unsubscribe = function () {
- if (!this.closed) {
- this.isStopped = true;
- _super.prototype.unsubscribe.call(this);
- this.destination = null;
- }
- };
- Subscriber.prototype._next = function (value) {
- this.destination.next(value);
- };
- Subscriber.prototype._error = function (err) {
- try {
- this.destination.error(err);
- }
- finally {
- this.unsubscribe();
- }
- };
- Subscriber.prototype._complete = function () {
- try {
- this.destination.complete();
- }
- finally {
- this.unsubscribe();
- }
- };
- return Subscriber;
- }(Subscription));
- var _bind = Function.prototype.bind;
- function bind(fn, thisArg) {
- return _bind.call(fn, thisArg);
- }
- var ConsumerObserver = (function () {
- function ConsumerObserver(partialObserver) {
- this.partialObserver = partialObserver;
- }
- ConsumerObserver.prototype.next = function (value) {
- var partialObserver = this.partialObserver;
- if (partialObserver.next) {
- try {
- partialObserver.next(value);
- }
- catch (error) {
- handleUnhandledError(error);
- }
- }
- };
- ConsumerObserver.prototype.error = function (err) {
- var partialObserver = this.partialObserver;
- if (partialObserver.error) {
- try {
- partialObserver.error(err);
- }
- catch (error) {
- handleUnhandledError(error);
- }
- }
- else {
- handleUnhandledError(err);
- }
- };
- ConsumerObserver.prototype.complete = function () {
- var partialObserver = this.partialObserver;
- if (partialObserver.complete) {
- try {
- partialObserver.complete();
- }
- catch (error) {
- handleUnhandledError(error);
- }
- }
- };
- return ConsumerObserver;
- }());
- var SafeSubscriber = (function (_super) {
- __extends(SafeSubscriber, _super);
- function SafeSubscriber(observerOrNext, error, complete) {
- var _this = _super.call(this) || this;
- var partialObserver;
- if (isFunction(observerOrNext) || !observerOrNext) {
- partialObserver = {
- next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),
- error: error !== null && error !== void 0 ? error : undefined,
- complete: complete !== null && complete !== void 0 ? complete : undefined,
- };
- }
- else {
- var context_1;
- if (_this && config.useDeprecatedNextContext) {
- context_1 = Object.create(observerOrNext);
- context_1.unsubscribe = function () { return _this.unsubscribe(); };
- partialObserver = {
- next: observerOrNext.next && bind(observerOrNext.next, context_1),
- error: observerOrNext.error && bind(observerOrNext.error, context_1),
- complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),
- };
- }
- else {
- partialObserver = observerOrNext;
- }
- }
- _this.destination = new ConsumerObserver(partialObserver);
- return _this;
- }
- return SafeSubscriber;
- }(Subscriber));
- function handleUnhandledError(error) {
- if (config.useDeprecatedSynchronousErrorHandling) {
- captureError(error);
- }
- else {
- reportUnhandledError(error);
- }
- }
- function defaultErrorHandler(err) {
- throw err;
- }
- function handleStoppedNotification(notification, subscriber) {
- var onStoppedNotification = config.onStoppedNotification;
- onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });
- }
- var EMPTY_OBSERVER = {
- closed: true,
- next: noop,
- error: defaultErrorHandler,
- complete: noop,
- };
- var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();
- function identity(x) {
- return x;
- }
- function pipe() {
- var fns = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- fns[_i] = arguments[_i];
- }
- return pipeFromArray(fns);
- }
- function pipeFromArray(fns) {
- if (fns.length === 0) {
- return identity;
- }
- if (fns.length === 1) {
- return fns[0];
- }
- return function piped(input) {
- return fns.reduce(function (prev, fn) { return fn(prev); }, input);
- };
- }
- var Observable = (function () {
- function Observable(subscribe) {
- if (subscribe) {
- this._subscribe = subscribe;
- }
- }
- Observable.prototype.lift = function (operator) {
- var observable$$1 = new Observable();
- observable$$1.source = this;
- observable$$1.operator = operator;
- return observable$$1;
- };
- Observable.prototype.subscribe = function (observerOrNext, error, complete) {
- var _this = this;
- var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
- errorContext(function () {
- var _a = _this, operator = _a.operator, source = _a.source;
- subscriber.add(operator
- ?
- operator.call(subscriber, source)
- : source
- ?
- _this._subscribe(subscriber)
- :
- _this._trySubscribe(subscriber));
- });
- return subscriber;
- };
- Observable.prototype._trySubscribe = function (sink) {
- try {
- return this._subscribe(sink);
- }
- catch (err) {
- sink.error(err);
- }
- };
- Observable.prototype.forEach = function (next, promiseCtor) {
- var _this = this;
- promiseCtor = getPromiseCtor(promiseCtor);
- return new promiseCtor(function (resolve, reject) {
- var subscriber = new SafeSubscriber({
- next: function (value) {
- try {
- next(value);
- }
- catch (err) {
- reject(err);
- subscriber.unsubscribe();
- }
- },
- error: reject,
- complete: resolve,
- });
- _this.subscribe(subscriber);
- });
- };
- Observable.prototype._subscribe = function (subscriber) {
- var _a;
- return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
- };
- Observable.prototype[observable] = function () {
- return this;
- };
- Observable.prototype.pipe = function () {
- var operations = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- operations[_i] = arguments[_i];
- }
- return pipeFromArray(operations)(this);
- };
- Observable.prototype.toPromise = function (promiseCtor) {
- var _this = this;
- promiseCtor = getPromiseCtor(promiseCtor);
- return new promiseCtor(function (resolve, reject) {
- var value;
- _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });
- });
- };
- Observable.create = function (subscribe) {
- return new Observable(subscribe);
- };
- return Observable;
- }());
- function getPromiseCtor(promiseCtor) {
- var _a;
- return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
- }
- function isObserver(value) {
- return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
- }
- function isSubscriber(value) {
- return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));
- }
- function hasLift(source) {
- return isFunction(source === null || source === void 0 ? void 0 : source.lift);
- }
- function operate(init) {
- return function (source) {
- if (hasLift(source)) {
- return source.lift(function (liftedSource) {
- try {
- return init(liftedSource, this);
- }
- catch (err) {
- this.error(err);
- }
- });
- }
- throw new TypeError('Unable to lift unknown Observable type');
- };
- }
- function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
- return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
- }
- var OperatorSubscriber = (function (_super) {
- __extends(OperatorSubscriber, _super);
- function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
- var _this = _super.call(this, destination) || this;
- _this.onFinalize = onFinalize;
- _this.shouldUnsubscribe = shouldUnsubscribe;
- _this._next = onNext
- ? function (value) {
- try {
- onNext(value);
- }
- catch (err) {
- destination.error(err);
- }
- }
- : _super.prototype._next;
- _this._error = onError
- ? function (err) {
- try {
- onError(err);
- }
- catch (err) {
- destination.error(err);
- }
- finally {
- this.unsubscribe();
- }
- }
- : _super.prototype._error;
- _this._complete = onComplete
- ? function () {
- try {
- onComplete();
- }
- catch (err) {
- destination.error(err);
- }
- finally {
- this.unsubscribe();
- }
- }
- : _super.prototype._complete;
- return _this;
- }
- OperatorSubscriber.prototype.unsubscribe = function () {
- var _a;
- if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
- var closed_1 = this.closed;
- _super.prototype.unsubscribe.call(this);
- !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
- }
- };
- return OperatorSubscriber;
- }(Subscriber));
- function refCount() {
- return operate(function (source, subscriber) {
- var connection = null;
- source._refCount++;
- var refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, function () {
- if (!source || source._refCount <= 0 || 0 < --source._refCount) {
- connection = null;
- return;
- }
- var sharedConnection = source._connection;
- var conn = connection;
- connection = null;
- if (sharedConnection && (!conn || sharedConnection === conn)) {
- sharedConnection.unsubscribe();
- }
- subscriber.unsubscribe();
- });
- source.subscribe(refCounter);
- if (!refCounter.closed) {
- connection = source.connect();
- }
- });
- }
- var ConnectableObservable = (function (_super) {
- __extends(ConnectableObservable, _super);
- function ConnectableObservable(source, subjectFactory) {
- var _this = _super.call(this) || this;
- _this.source = source;
- _this.subjectFactory = subjectFactory;
- _this._subject = null;
- _this._refCount = 0;
- _this._connection = null;
- if (hasLift(source)) {
- _this.lift = source.lift;
- }
- return _this;
- }
- ConnectableObservable.prototype._subscribe = function (subscriber) {
- return this.getSubject().subscribe(subscriber);
- };
- ConnectableObservable.prototype.getSubject = function () {
- var subject = this._subject;
- if (!subject || subject.isStopped) {
- this._subject = this.subjectFactory();
- }
- return this._subject;
- };
- ConnectableObservable.prototype._teardown = function () {
- this._refCount = 0;
- var _connection = this._connection;
- this._subject = this._connection = null;
- _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();
- };
- ConnectableObservable.prototype.connect = function () {
- var _this = this;
- var connection = this._connection;
- if (!connection) {
- connection = this._connection = new Subscription();
- var subject_1 = this.getSubject();
- connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, undefined, function () {
- _this._teardown();
- subject_1.complete();
- }, function (err) {
- _this._teardown();
- subject_1.error(err);
- }, function () { return _this._teardown(); })));
- if (connection.closed) {
- this._connection = null;
- connection = Subscription.EMPTY;
- }
- }
- return connection;
- };
- ConnectableObservable.prototype.refCount = function () {
- return refCount()(this);
- };
- return ConnectableObservable;
- }(Observable));
- var performanceTimestampProvider = {
- now: function () {
- return (performanceTimestampProvider.delegate || performance).now();
- },
- delegate: undefined,
- };
- var animationFrameProvider = {
- schedule: function (callback) {
- var request = requestAnimationFrame;
- var cancel = cancelAnimationFrame;
- var delegate = animationFrameProvider.delegate;
- if (delegate) {
- request = delegate.requestAnimationFrame;
- cancel = delegate.cancelAnimationFrame;
- }
- var handle = request(function (timestamp) {
- cancel = undefined;
- callback(timestamp);
- });
- return new Subscription(function () { return cancel === null || cancel === void 0 ? void 0 : cancel(handle); });
- },
- requestAnimationFrame: function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = animationFrameProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
- },
- cancelAnimationFrame: function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = animationFrameProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
- },
- delegate: undefined,
- };
- function animationFrames(timestampProvider) {
- return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;
- }
- function animationFramesFactory(timestampProvider) {
- return new Observable(function (subscriber) {
- var provider = timestampProvider || performanceTimestampProvider;
- var start = provider.now();
- var id = 0;
- var run = function () {
- if (!subscriber.closed) {
- id = animationFrameProvider.requestAnimationFrame(function (timestamp) {
- id = 0;
- var now = provider.now();
- subscriber.next({
- timestamp: timestampProvider ? now : timestamp,
- elapsed: now - start,
- });
- run();
- });
- }
- };
- run();
- return function () {
- if (id) {
- animationFrameProvider.cancelAnimationFrame(id);
- }
- };
- });
- }
- var DEFAULT_ANIMATION_FRAMES = animationFramesFactory();
- var ObjectUnsubscribedError = createErrorClass(function (_super) {
- return function ObjectUnsubscribedErrorImpl() {
- _super(this);
- this.name = 'ObjectUnsubscribedError';
- this.message = 'object unsubscribed';
- };
- });
- var Subject = (function (_super) {
- __extends(Subject, _super);
- function Subject() {
- var _this = _super.call(this) || this;
- _this.closed = false;
- _this.currentObservers = null;
- _this.observers = [];
- _this.isStopped = false;
- _this.hasError = false;
- _this.thrownError = null;
- return _this;
- }
- Subject.prototype.lift = function (operator) {
- var subject = new AnonymousSubject(this, this);
- subject.operator = operator;
- return subject;
- };
- Subject.prototype._throwIfClosed = function () {
- if (this.closed) {
- throw new ObjectUnsubscribedError();
- }
- };
- Subject.prototype.next = function (value) {
- var _this = this;
- errorContext(function () {
- var e_1, _a;
- _this._throwIfClosed();
- if (!_this.isStopped) {
- if (!_this.currentObservers) {
- _this.currentObservers = Array.from(_this.observers);
- }
- try {
- for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {
- var observer = _c.value;
- observer.next(value);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- }
- finally { if (e_1) throw e_1.error; }
- }
- }
- });
- };
- Subject.prototype.error = function (err) {
- var _this = this;
- errorContext(function () {
- _this._throwIfClosed();
- if (!_this.isStopped) {
- _this.hasError = _this.isStopped = true;
- _this.thrownError = err;
- var observers = _this.observers;
- while (observers.length) {
- observers.shift().error(err);
- }
- }
- });
- };
- Subject.prototype.complete = function () {
- var _this = this;
- errorContext(function () {
- _this._throwIfClosed();
- if (!_this.isStopped) {
- _this.isStopped = true;
- var observers = _this.observers;
- while (observers.length) {
- observers.shift().complete();
- }
- }
- });
- };
- Subject.prototype.unsubscribe = function () {
- this.isStopped = this.closed = true;
- this.observers = this.currentObservers = null;
- };
- Object.defineProperty(Subject.prototype, "observed", {
- get: function () {
- var _a;
- return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
- },
- enumerable: false,
- configurable: true
- });
- Subject.prototype._trySubscribe = function (subscriber) {
- this._throwIfClosed();
- return _super.prototype._trySubscribe.call(this, subscriber);
- };
- Subject.prototype._subscribe = function (subscriber) {
- this._throwIfClosed();
- this._checkFinalizedStatuses(subscriber);
- return this._innerSubscribe(subscriber);
- };
- Subject.prototype._innerSubscribe = function (subscriber) {
- var _this = this;
- var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;
- if (hasError || isStopped) {
- return EMPTY_SUBSCRIPTION;
- }
- this.currentObservers = null;
- observers.push(subscriber);
- return new Subscription(function () {
- _this.currentObservers = null;
- arrRemove(observers, subscriber);
- });
- };
- Subject.prototype._checkFinalizedStatuses = function (subscriber) {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;
- if (hasError) {
- subscriber.error(thrownError);
- }
- else if (isStopped) {
- subscriber.complete();
- }
- };
- Subject.prototype.asObservable = function () {
- var observable = new Observable();
- observable.source = this;
- return observable;
- };
- Subject.create = function (destination, source) {
- return new AnonymousSubject(destination, source);
- };
- return Subject;
- }(Observable));
- var AnonymousSubject = (function (_super) {
- __extends(AnonymousSubject, _super);
- function AnonymousSubject(destination, source) {
- var _this = _super.call(this) || this;
- _this.destination = destination;
- _this.source = source;
- return _this;
- }
- AnonymousSubject.prototype.next = function (value) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
- };
- AnonymousSubject.prototype.error = function (err) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
- };
- AnonymousSubject.prototype.complete = function () {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
- };
- AnonymousSubject.prototype._subscribe = function (subscriber) {
- var _a, _b;
- return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
- };
- return AnonymousSubject;
- }(Subject));
- var BehaviorSubject = (function (_super) {
- __extends(BehaviorSubject, _super);
- function BehaviorSubject(_value) {
- var _this = _super.call(this) || this;
- _this._value = _value;
- return _this;
- }
- Object.defineProperty(BehaviorSubject.prototype, "value", {
- get: function () {
- return this.getValue();
- },
- enumerable: false,
- configurable: true
- });
- BehaviorSubject.prototype._subscribe = function (subscriber) {
- var subscription = _super.prototype._subscribe.call(this, subscriber);
- !subscription.closed && subscriber.next(this._value);
- return subscription;
- };
- BehaviorSubject.prototype.getValue = function () {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
- if (hasError) {
- throw thrownError;
- }
- this._throwIfClosed();
- return _value;
- };
- BehaviorSubject.prototype.next = function (value) {
- _super.prototype.next.call(this, (this._value = value));
- };
- return BehaviorSubject;
- }(Subject));
- var dateTimestampProvider = {
- now: function () {
- return (dateTimestampProvider.delegate || Date).now();
- },
- delegate: undefined,
- };
- var ReplaySubject = (function (_super) {
- __extends(ReplaySubject, _super);
- function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {
- if (_bufferSize === void 0) { _bufferSize = Infinity; }
- if (_windowTime === void 0) { _windowTime = Infinity; }
- if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }
- var _this = _super.call(this) || this;
- _this._bufferSize = _bufferSize;
- _this._windowTime = _windowTime;
- _this._timestampProvider = _timestampProvider;
- _this._buffer = [];
- _this._infiniteTimeWindow = true;
- _this._infiniteTimeWindow = _windowTime === Infinity;
- _this._bufferSize = Math.max(1, _bufferSize);
- _this._windowTime = Math.max(1, _windowTime);
- return _this;
- }
- ReplaySubject.prototype.next = function (value) {
- var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;
- if (!isStopped) {
- _buffer.push(value);
- !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
- }
- this._trimBuffer();
- _super.prototype.next.call(this, value);
- };
- ReplaySubject.prototype._subscribe = function (subscriber) {
- this._throwIfClosed();
- this._trimBuffer();
- var subscription = this._innerSubscribe(subscriber);
- var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;
- var copy = _buffer.slice();
- for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {
- subscriber.next(copy[i]);
- }
- this._checkFinalizedStatuses(subscriber);
- return subscription;
- };
- ReplaySubject.prototype._trimBuffer = function () {
- var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;
- var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
- _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
- if (!_infiniteTimeWindow) {
- var now = _timestampProvider.now();
- var last = 0;
- for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {
- last = i;
- }
- last && _buffer.splice(0, last + 1);
- }
- };
- return ReplaySubject;
- }(Subject));
- var AsyncSubject = (function (_super) {
- __extends(AsyncSubject, _super);
- function AsyncSubject() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._value = null;
- _this._hasValue = false;
- _this._isComplete = false;
- return _this;
- }
- AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) {
- var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;
- if (hasError) {
- subscriber.error(thrownError);
- }
- else if (isStopped || _isComplete) {
- _hasValue && subscriber.next(_value);
- subscriber.complete();
- }
- };
- AsyncSubject.prototype.next = function (value) {
- if (!this.isStopped) {
- this._value = value;
- this._hasValue = true;
- }
- };
- AsyncSubject.prototype.complete = function () {
- var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;
- if (!_isComplete) {
- this._isComplete = true;
- _hasValue && _super.prototype.next.call(this, _value);
- _super.prototype.complete.call(this);
- }
- };
- return AsyncSubject;
- }(Subject));
- var Action = (function (_super) {
- __extends(Action, _super);
- function Action(scheduler, work) {
- return _super.call(this) || this;
- }
- Action.prototype.schedule = function (state, delay) {
- if (delay === void 0) { delay = 0; }
- return this;
- };
- return Action;
- }(Subscription));
- var intervalProvider = {
- setInterval: function (handler, timeout) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- var delegate = intervalProvider.delegate;
- if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {
- return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));
- }
- return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));
- },
- clearInterval: function (handle) {
- var delegate = intervalProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);
- },
- delegate: undefined,
- };
- var AsyncAction = (function (_super) {
- __extends(AsyncAction, _super);
- function AsyncAction(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- _this.pending = false;
- return _this;
- }
- AsyncAction.prototype.schedule = function (state, delay) {
- var _a;
- if (delay === void 0) { delay = 0; }
- if (this.closed) {
- return this;
- }
- this.state = state;
- var id = this.id;
- var scheduler = this.scheduler;
- if (id != null) {
- this.id = this.recycleAsyncId(scheduler, id, delay);
- }
- this.pending = true;
- this.delay = delay;
- this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);
- return this;
- };
- AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {
- if (delay === void 0) { delay = 0; }
- return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);
- };
- AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- if (delay != null && this.delay === delay && this.pending === false) {
- return id;
- }
- if (id != null) {
- intervalProvider.clearInterval(id);
- }
- return undefined;
- };
- AsyncAction.prototype.execute = function (state, delay) {
- if (this.closed) {
- return new Error('executing a cancelled action');
- }
- this.pending = false;
- var error = this._execute(state, delay);
- if (error) {
- return error;
- }
- else if (this.pending === false && this.id != null) {
- this.id = this.recycleAsyncId(this.scheduler, this.id, null);
- }
- };
- AsyncAction.prototype._execute = function (state, _delay) {
- var errored = false;
- var errorValue;
- try {
- this.work(state);
- }
- catch (e) {
- errored = true;
- errorValue = e ? e : new Error('Scheduled action threw falsy error');
- }
- if (errored) {
- this.unsubscribe();
- return errorValue;
- }
- };
- AsyncAction.prototype.unsubscribe = function () {
- if (!this.closed) {
- var _a = this, id = _a.id, scheduler = _a.scheduler;
- var actions = scheduler.actions;
- this.work = this.state = this.scheduler = null;
- this.pending = false;
- arrRemove(actions, this);
- if (id != null) {
- this.id = this.recycleAsyncId(scheduler, id, null);
- }
- this.delay = null;
- _super.prototype.unsubscribe.call(this);
- }
- };
- return AsyncAction;
- }(Action));
- var nextHandle = 1;
- var resolved;
- var activeHandles = {};
- function findAndClearHandle(handle) {
- if (handle in activeHandles) {
- delete activeHandles[handle];
- return true;
- }
- return false;
- }
- var Immediate = {
- setImmediate: function (cb) {
- var handle = nextHandle++;
- activeHandles[handle] = true;
- if (!resolved) {
- resolved = Promise.resolve();
- }
- resolved.then(function () { return findAndClearHandle(handle) && cb(); });
- return handle;
- },
- clearImmediate: function (handle) {
- findAndClearHandle(handle);
- },
- };
- var setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate;
- var immediateProvider = {
- setImmediate: function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = immediateProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));
- },
- clearImmediate: function (handle) {
- var delegate = immediateProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);
- },
- delegate: undefined,
- };
- var AsapAction = (function (_super) {
- __extends(AsapAction, _super);
- function AsapAction(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- if (delay !== null && delay > 0) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
- }
- scheduler.actions.push(this);
- return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));
- };
- AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
- var _a;
- if (delay === void 0) { delay = 0; }
- if (delay != null ? delay > 0 : this.delay > 0) {
- return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
- }
- var actions = scheduler.actions;
- if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
- immediateProvider.clearImmediate(id);
- if (scheduler._scheduled === id) {
- scheduler._scheduled = undefined;
- }
- }
- return undefined;
- };
- return AsapAction;
- }(AsyncAction));
- var Scheduler = (function () {
- function Scheduler(schedulerActionCtor, now) {
- if (now === void 0) { now = Scheduler.now; }
- this.schedulerActionCtor = schedulerActionCtor;
- this.now = now;
- }
- Scheduler.prototype.schedule = function (work, delay, state) {
- if (delay === void 0) { delay = 0; }
- return new this.schedulerActionCtor(this, work).schedule(state, delay);
- };
- Scheduler.now = dateTimestampProvider.now;
- return Scheduler;
- }());
- var AsyncScheduler = (function (_super) {
- __extends(AsyncScheduler, _super);
- function AsyncScheduler(SchedulerAction, now) {
- if (now === void 0) { now = Scheduler.now; }
- var _this = _super.call(this, SchedulerAction, now) || this;
- _this.actions = [];
- _this._active = false;
- return _this;
- }
- AsyncScheduler.prototype.flush = function (action) {
- var actions = this.actions;
- if (this._active) {
- actions.push(action);
- return;
- }
- var error;
- this._active = true;
- do {
- if ((error = action.execute(action.state, action.delay))) {
- break;
- }
- } while ((action = actions.shift()));
- this._active = false;
- if (error) {
- while ((action = actions.shift())) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AsyncScheduler;
- }(Scheduler));
- var AsapScheduler = (function (_super) {
- __extends(AsapScheduler, _super);
- function AsapScheduler() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- AsapScheduler.prototype.flush = function (action) {
- this._active = true;
- var flushId = this._scheduled;
- this._scheduled = undefined;
- var actions = this.actions;
- var error;
- action = action || actions.shift();
- do {
- if ((error = action.execute(action.state, action.delay))) {
- break;
- }
- } while ((action = actions[0]) && action.id === flushId && actions.shift());
- this._active = false;
- if (error) {
- while ((action = actions[0]) && action.id === flushId && actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AsapScheduler;
- }(AsyncScheduler));
- var asapScheduler = new AsapScheduler(AsapAction);
- var asap = asapScheduler;
- var asyncScheduler = new AsyncScheduler(AsyncAction);
- var async = asyncScheduler;
- var QueueAction = (function (_super) {
- __extends(QueueAction, _super);
- function QueueAction(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- QueueAction.prototype.schedule = function (state, delay) {
- if (delay === void 0) { delay = 0; }
- if (delay > 0) {
- return _super.prototype.schedule.call(this, state, delay);
- }
- this.delay = delay;
- this.state = state;
- this.scheduler.flush(this);
- return this;
- };
- QueueAction.prototype.execute = function (state, delay) {
- return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay);
- };
- QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
- }
- scheduler.flush(this);
- return 0;
- };
- return QueueAction;
- }(AsyncAction));
- var QueueScheduler = (function (_super) {
- __extends(QueueScheduler, _super);
- function QueueScheduler() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return QueueScheduler;
- }(AsyncScheduler));
- var queueScheduler = new QueueScheduler(QueueAction);
- var queue = queueScheduler;
- var AnimationFrameAction = (function (_super) {
- __extends(AnimationFrameAction, _super);
- function AnimationFrameAction(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- if (delay !== null && delay > 0) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
- }
- scheduler.actions.push(this);
- return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function () { return scheduler.flush(undefined); }));
- };
- AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
- var _a;
- if (delay === void 0) { delay = 0; }
- if (delay != null ? delay > 0 : this.delay > 0) {
- return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
- }
- var actions = scheduler.actions;
- if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
- animationFrameProvider.cancelAnimationFrame(id);
- scheduler._scheduled = undefined;
- }
- return undefined;
- };
- return AnimationFrameAction;
- }(AsyncAction));
- var AnimationFrameScheduler = (function (_super) {
- __extends(AnimationFrameScheduler, _super);
- function AnimationFrameScheduler() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- AnimationFrameScheduler.prototype.flush = function (action) {
- this._active = true;
- var flushId = this._scheduled;
- this._scheduled = undefined;
- var actions = this.actions;
- var error;
- action = action || actions.shift();
- do {
- if ((error = action.execute(action.state, action.delay))) {
- break;
- }
- } while ((action = actions[0]) && action.id === flushId && actions.shift());
- this._active = false;
- if (error) {
- while ((action = actions[0]) && action.id === flushId && actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AnimationFrameScheduler;
- }(AsyncScheduler));
- var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);
- var animationFrame = animationFrameScheduler;
- var VirtualTimeScheduler = (function (_super) {
- __extends(VirtualTimeScheduler, _super);
- function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {
- if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }
- if (maxFrames === void 0) { maxFrames = Infinity; }
- var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;
- _this.maxFrames = maxFrames;
- _this.frame = 0;
- _this.index = -1;
- return _this;
- }
- VirtualTimeScheduler.prototype.flush = function () {
- var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
- var error;
- var action;
- while ((action = actions[0]) && action.delay <= maxFrames) {
- actions.shift();
- this.frame = action.delay;
- if ((error = action.execute(action.state, action.delay))) {
- break;
- }
- }
- if (error) {
- while ((action = actions.shift())) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- VirtualTimeScheduler.frameTimeFactor = 10;
- return VirtualTimeScheduler;
- }(AsyncScheduler));
- var VirtualAction = (function (_super) {
- __extends(VirtualAction, _super);
- function VirtualAction(scheduler, work, index) {
- if (index === void 0) { index = (scheduler.index += 1); }
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- _this.index = index;
- _this.active = true;
- _this.index = scheduler.index = index;
- return _this;
- }
- VirtualAction.prototype.schedule = function (state, delay) {
- if (delay === void 0) { delay = 0; }
- if (Number.isFinite(delay)) {
- if (!this.id) {
- return _super.prototype.schedule.call(this, state, delay);
- }
- this.active = false;
- var action = new VirtualAction(this.scheduler, this.work);
- this.add(action);
- return action.schedule(state, delay);
- }
- else {
- return Subscription.EMPTY;
- }
- };
- VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- this.delay = scheduler.frame + delay;
- var actions = scheduler.actions;
- actions.push(this);
- actions.sort(VirtualAction.sortActions);
- return 1;
- };
- VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
- if (delay === void 0) { delay = 0; }
- return undefined;
- };
- VirtualAction.prototype._execute = function (state, delay) {
- if (this.active === true) {
- return _super.prototype._execute.call(this, state, delay);
- }
- };
- VirtualAction.sortActions = function (a, b) {
- if (a.delay === b.delay) {
- if (a.index === b.index) {
- return 0;
- }
- else if (a.index > b.index) {
- return 1;
- }
- else {
- return -1;
- }
- }
- else if (a.delay > b.delay) {
- return 1;
- }
- else {
- return -1;
- }
- };
- return VirtualAction;
- }(AsyncAction));
- var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });
- function empty(scheduler) {
- return scheduler ? emptyScheduled(scheduler) : EMPTY;
- }
- function emptyScheduled(scheduler) {
- return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
- }
- function isScheduler(value) {
- return value && isFunction(value.schedule);
- }
- function last(arr) {
- return arr[arr.length - 1];
- }
- function popResultSelector(args) {
- return isFunction(last(args)) ? args.pop() : undefined;
- }
- function popScheduler(args) {
- return isScheduler(last(args)) ? args.pop() : undefined;
- }
- function popNumber(args, defaultValue) {
- return typeof last(args) === 'number' ? args.pop() : defaultValue;
- }
- var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
- function isPromise(value) {
- return isFunction(value === null || value === void 0 ? void 0 : value.then);
- }
- function isInteropObservable(input) {
- return isFunction(input[observable]);
- }
- function isAsyncIterable(obj) {
- return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);
- }
- function createInvalidObservableTypeError(input) {
- return new TypeError("You provided " + (input !== null && typeof input === 'object' ? 'an invalid object' : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
- }
- function getSymbolIterator() {
- if (typeof Symbol !== 'function' || !Symbol.iterator) {
- return '@@iterator';
- }
- return Symbol.iterator;
- }
- var iterator = getSymbolIterator();
- function isIterable(input) {
- return isFunction(input === null || input === void 0 ? void 0 : input[iterator]);
- }
- function readableStreamLikeToAsyncGenerator(readableStream) {
- return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {
- var reader, _a, value, done;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- reader = readableStream.getReader();
- _b.label = 1;
- case 1:
- _b.trys.push([1, , 9, 10]);
- _b.label = 2;
- case 2:
- return [4, __await(reader.read())];
- case 3:
- _a = _b.sent(), value = _a.value, done = _a.done;
- if (!done) return [3, 5];
- return [4, __await(void 0)];
- case 4: return [2, _b.sent()];
- case 5: return [4, __await(value)];
- case 6: return [4, _b.sent()];
- case 7:
- _b.sent();
- return [3, 2];
- case 8: return [3, 10];
- case 9:
- reader.releaseLock();
- return [7];
- case 10: return [2];
- }
- });
- });
- }
- function isReadableStreamLike(obj) {
- return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);
- }
- function innerFrom(input) {
- if (input instanceof Observable) {
- return input;
- }
- if (input != null) {
- if (isInteropObservable(input)) {
- return fromInteropObservable(input);
- }
- if (isArrayLike(input)) {
- return fromArrayLike(input);
- }
- if (isPromise(input)) {
- return fromPromise(input);
- }
- if (isAsyncIterable(input)) {
- return fromAsyncIterable(input);
- }
- if (isIterable(input)) {
- return fromIterable(input);
- }
- if (isReadableStreamLike(input)) {
- return fromReadableStreamLike(input);
- }
- }
- throw createInvalidObservableTypeError(input);
- }
- function fromInteropObservable(obj) {
- return new Observable(function (subscriber) {
- var obs = obj[observable]();
- if (isFunction(obs.subscribe)) {
- return obs.subscribe(subscriber);
- }
- throw new TypeError('Provided object does not correctly implement Symbol.observable');
- });
- }
- function fromArrayLike(array) {
- return new Observable(function (subscriber) {
- for (var i = 0; i < array.length && !subscriber.closed; i++) {
- subscriber.next(array[i]);
- }
- subscriber.complete();
- });
- }
- function fromPromise(promise) {
- return new Observable(function (subscriber) {
- promise
- .then(function (value) {
- if (!subscriber.closed) {
- subscriber.next(value);
- subscriber.complete();
- }
- }, function (err) { return subscriber.error(err); })
- .then(null, reportUnhandledError);
- });
- }
- function fromIterable(iterable) {
- return new Observable(function (subscriber) {
- var e_1, _a;
- try {
- for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {
- var value = iterable_1_1.value;
- subscriber.next(value);
- if (subscriber.closed) {
- return;
- }
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- subscriber.complete();
- });
- }
- function fromAsyncIterable(asyncIterable) {
- return new Observable(function (subscriber) {
- process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });
- });
- }
- function fromReadableStreamLike(readableStream) {
- return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));
- }
- function process(asyncIterable, subscriber) {
- var asyncIterable_1, asyncIterable_1_1;
- var e_2, _a;
- return __awaiter(this, void 0, void 0, function () {
- var value, e_2_1;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _b.trys.push([0, 5, 6, 11]);
- asyncIterable_1 = __asyncValues(asyncIterable);
- _b.label = 1;
- case 1: return [4, asyncIterable_1.next()];
- case 2:
- if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];
- value = asyncIterable_1_1.value;
- subscriber.next(value);
- if (subscriber.closed) {
- return [2];
- }
- _b.label = 3;
- case 3: return [3, 1];
- case 4: return [3, 11];
- case 5:
- e_2_1 = _b.sent();
- e_2 = { error: e_2_1 };
- return [3, 11];
- case 6:
- _b.trys.push([6, , 9, 10]);
- if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];
- return [4, _a.call(asyncIterable_1)];
- case 7:
- _b.sent();
- _b.label = 8;
- case 8: return [3, 10];
- case 9:
- if (e_2) throw e_2.error;
- return [7];
- case 10: return [7];
- case 11:
- subscriber.complete();
- return [2];
- }
- });
- });
- }
- function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {
- if (delay === void 0) { delay = 0; }
- if (repeat === void 0) { repeat = false; }
- var scheduleSubscription = scheduler.schedule(function () {
- work();
- if (repeat) {
- parentSubscription.add(this.schedule(null, delay));
- }
- else {
- this.unsubscribe();
- }
- }, delay);
- parentSubscription.add(scheduleSubscription);
- if (!repeat) {
- return scheduleSubscription;
- }
- }
- function observeOn(scheduler, delay) {
- if (delay === void 0) { delay = 0; }
- return operate(function (source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));
- });
- }
- function subscribeOn(scheduler, delay) {
- if (delay === void 0) { delay = 0; }
- return operate(function (source, subscriber) {
- subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));
- });
- }
- function scheduleObservable(input, scheduler) {
- return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
- }
- function schedulePromise(input, scheduler) {
- return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));
- }
- function scheduleArray(input, scheduler) {
- return new Observable(function (subscriber) {
- var i = 0;
- return scheduler.schedule(function () {
- if (i === input.length) {
- subscriber.complete();
- }
- else {
- subscriber.next(input[i++]);
- if (!subscriber.closed) {
- this.schedule();
- }
- }
- });
- });
- }
- function scheduleIterable(input, scheduler) {
- return new Observable(function (subscriber) {
- var iterator$$1;
- executeSchedule(subscriber, scheduler, function () {
- iterator$$1 = input[iterator]();
- executeSchedule(subscriber, scheduler, function () {
- var _a;
- var value;
- var done;
- try {
- (_a = iterator$$1.next(), value = _a.value, done = _a.done);
- }
- catch (err) {
- subscriber.error(err);
- return;
- }
- if (done) {
- subscriber.complete();
- }
- else {
- subscriber.next(value);
- }
- }, 0, true);
- });
- return function () { return isFunction(iterator$$1 === null || iterator$$1 === void 0 ? void 0 : iterator$$1.return) && iterator$$1.return(); };
- });
- }
- function scheduleAsyncIterable(input, scheduler) {
- if (!input) {
- throw new Error('Iterable cannot be null');
- }
- return new Observable(function (subscriber) {
- executeSchedule(subscriber, scheduler, function () {
- var iterator = input[Symbol.asyncIterator]();
- executeSchedule(subscriber, scheduler, function () {
- iterator.next().then(function (result) {
- if (result.done) {
- subscriber.complete();
- }
- else {
- subscriber.next(result.value);
- }
- });
- }, 0, true);
- });
- });
- }
- function scheduleReadableStreamLike(input, scheduler) {
- return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);
- }
- function scheduled(input, scheduler) {
- if (input != null) {
- if (isInteropObservable(input)) {
- return scheduleObservable(input, scheduler);
- }
- if (isArrayLike(input)) {
- return scheduleArray(input, scheduler);
- }
- if (isPromise(input)) {
- return schedulePromise(input, scheduler);
- }
- if (isAsyncIterable(input)) {
- return scheduleAsyncIterable(input, scheduler);
- }
- if (isIterable(input)) {
- return scheduleIterable(input, scheduler);
- }
- if (isReadableStreamLike(input)) {
- return scheduleReadableStreamLike(input, scheduler);
- }
- }
- throw createInvalidObservableTypeError(input);
- }
- function from(input, scheduler) {
- return scheduler ? scheduled(input, scheduler) : innerFrom(input);
- }
- function of() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- return from(args, scheduler);
- }
- function throwError(errorOrErrorFactory, scheduler) {
- var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function () { return errorOrErrorFactory; };
- var init = function (subscriber) { return subscriber.error(errorFactory()); };
- return new Observable(scheduler ? function (subscriber) { return scheduler.schedule(init, 0, subscriber); } : init);
- }
- (function (NotificationKind) {
- NotificationKind["NEXT"] = "N";
- NotificationKind["ERROR"] = "E";
- NotificationKind["COMPLETE"] = "C";
- })(exports.NotificationKind || (exports.NotificationKind = {}));
- var Notification = (function () {
- function Notification(kind, value, error) {
- this.kind = kind;
- this.value = value;
- this.error = error;
- this.hasValue = kind === 'N';
- }
- Notification.prototype.observe = function (observer) {
- return observeNotification(this, observer);
- };
- Notification.prototype.do = function (nextHandler, errorHandler, completeHandler) {
- var _a = this, kind = _a.kind, value = _a.value, error = _a.error;
- return kind === 'N' ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === 'E' ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();
- };
- Notification.prototype.accept = function (nextOrObserver, error, complete) {
- var _a;
- return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next)
- ? this.observe(nextOrObserver)
- : this.do(nextOrObserver, error, complete);
- };
- Notification.prototype.toObservable = function () {
- var _a = this, kind = _a.kind, value = _a.value, error = _a.error;
- var result = kind === 'N'
- ?
- of(value)
- :
- kind === 'E'
- ?
- throwError(function () { return error; })
- :
- kind === 'C'
- ?
- EMPTY
- :
- 0;
- if (!result) {
- throw new TypeError("Unexpected notification kind " + kind);
- }
- return result;
- };
- Notification.createNext = function (value) {
- return new Notification('N', value);
- };
- Notification.createError = function (err) {
- return new Notification('E', undefined, err);
- };
- Notification.createComplete = function () {
- return Notification.completeNotification;
- };
- Notification.completeNotification = new Notification('C');
- return Notification;
- }());
- function observeNotification(notification, observer) {
- var _a, _b, _c;
- var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;
- if (typeof kind !== 'string') {
- throw new TypeError('Invalid notification, missing "kind"');
- }
- kind === 'N' ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === 'E' ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);
- }
- function isObservable(obj) {
- return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe)));
- }
- var EmptyError = createErrorClass(function (_super) { return function EmptyErrorImpl() {
- _super(this);
- this.name = 'EmptyError';
- this.message = 'no elements in sequence';
- }; });
- function lastValueFrom(source, config) {
- var hasConfig = typeof config === 'object';
- return new Promise(function (resolve, reject) {
- var _hasValue = false;
- var _value;
- source.subscribe({
- next: function (value) {
- _value = value;
- _hasValue = true;
- },
- error: reject,
- complete: function () {
- if (_hasValue) {
- resolve(_value);
- }
- else if (hasConfig) {
- resolve(config.defaultValue);
- }
- else {
- reject(new EmptyError());
- }
- },
- });
- });
- }
- function firstValueFrom(source, config) {
- var hasConfig = typeof config === 'object';
- return new Promise(function (resolve, reject) {
- var subscriber = new SafeSubscriber({
- next: function (value) {
- resolve(value);
- subscriber.unsubscribe();
- },
- error: reject,
- complete: function () {
- if (hasConfig) {
- resolve(config.defaultValue);
- }
- else {
- reject(new EmptyError());
- }
- },
- });
- source.subscribe(subscriber);
- });
- }
- var ArgumentOutOfRangeError = createErrorClass(function (_super) {
- return function ArgumentOutOfRangeErrorImpl() {
- _super(this);
- this.name = 'ArgumentOutOfRangeError';
- this.message = 'argument out of range';
- };
- });
- var NotFoundError = createErrorClass(function (_super) {
- return function NotFoundErrorImpl(message) {
- _super(this);
- this.name = 'NotFoundError';
- this.message = message;
- };
- });
- var SequenceError = createErrorClass(function (_super) {
- return function SequenceErrorImpl(message) {
- _super(this);
- this.name = 'SequenceError';
- this.message = message;
- };
- });
- function isValidDate(value) {
- return value instanceof Date && !isNaN(value);
- }
- var TimeoutError = createErrorClass(function (_super) {
- return function TimeoutErrorImpl(info) {
- if (info === void 0) { info = null; }
- _super(this);
- this.message = 'Timeout has occurred';
- this.name = 'TimeoutError';
- this.info = info;
- };
- });
- function timeout(config, schedulerArg) {
- var _a = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config), first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;
- if (first == null && each == null) {
- throw new TypeError('No timeout provided.');
- }
- return operate(function (source, subscriber) {
- var originalSourceSubscription;
- var timerSubscription;
- var lastValue = null;
- var seen = 0;
- var startTimer = function (delay) {
- timerSubscription = executeSchedule(subscriber, scheduler, function () {
- try {
- originalSourceSubscription.unsubscribe();
- innerFrom(_with({
- meta: meta,
- lastValue: lastValue,
- seen: seen,
- })).subscribe(subscriber);
- }
- catch (err) {
- subscriber.error(err);
- }
- }, delay);
- };
- originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
- seen++;
- subscriber.next((lastValue = value));
- each > 0 && startTimer(each);
- }, undefined, undefined, function () {
- if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {
- timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
- }
- lastValue = null;
- }));
- !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler.now()) : each);
- });
- }
- function timeoutErrorFactory(info) {
- throw new TimeoutError(info);
- }
- function map(project, thisArg) {
- return operate(function (source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- subscriber.next(project.call(thisArg, value, index++));
- }));
- });
- }
- var isArray = Array.isArray;
- function callOrApply(fn, args) {
- return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);
- }
- function mapOneOrManyArgs(fn) {
- return map(function (args) { return callOrApply(fn, args); });
- }
- function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) {
- if (resultSelector) {
- if (isScheduler(resultSelector)) {
- scheduler = resultSelector;
- }
- else {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler)
- .apply(this, args)
- .pipe(mapOneOrManyArgs(resultSelector));
- };
- }
- }
- if (scheduler) {
- return function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return bindCallbackInternals(isNodeStyle, callbackFunc)
- .apply(this, args)
- .pipe(subscribeOn(scheduler), observeOn(scheduler));
- };
- }
- return function () {
- var _this = this;
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var subject = new AsyncSubject();
- var uninitialized = true;
- return new Observable(function (subscriber) {
- var subs = subject.subscribe(subscriber);
- if (uninitialized) {
- uninitialized = false;
- var isAsync_1 = false;
- var isComplete_1 = false;
- callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [
- function () {
- var results = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- results[_i] = arguments[_i];
- }
- if (isNodeStyle) {
- var err = results.shift();
- if (err != null) {
- subject.error(err);
- return;
- }
- }
- subject.next(1 < results.length ? results : results[0]);
- isComplete_1 = true;
- if (isAsync_1) {
- subject.complete();
- }
- },
- ]));
- if (isComplete_1) {
- subject.complete();
- }
- isAsync_1 = true;
- }
- return subs;
- });
- };
- }
- function bindCallback(callbackFunc, resultSelector, scheduler) {
- return bindCallbackInternals(false, callbackFunc, resultSelector, scheduler);
- }
- function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
- return bindCallbackInternals(true, callbackFunc, resultSelector, scheduler);
- }
- var isArray$1 = Array.isArray;
- var getPrototypeOf = Object.getPrototypeOf, objectProto = Object.prototype, getKeys = Object.keys;
- function argsArgArrayOrObject(args) {
- if (args.length === 1) {
- var first_1 = args[0];
- if (isArray$1(first_1)) {
- return { args: first_1, keys: null };
- }
- if (isPOJO(first_1)) {
- var keys = getKeys(first_1);
- return {
- args: keys.map(function (key) { return first_1[key]; }),
- keys: keys,
- };
- }
- }
- return { args: args, keys: null };
- }
- function isPOJO(obj) {
- return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;
- }
- function createObject(keys, values) {
- return keys.reduce(function (result, key, i) { return ((result[key] = values[i]), result); }, {});
- }
- function combineLatest() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- var resultSelector = popResultSelector(args);
- var _a = argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys;
- if (observables.length === 0) {
- return from([], scheduler);
- }
- var result = new Observable(combineLatestInit(observables, scheduler, keys
- ?
- function (values) { return createObject(keys, values); }
- :
- identity));
- return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
- }
- function combineLatestInit(observables, scheduler, valueTransform) {
- if (valueTransform === void 0) { valueTransform = identity; }
- return function (subscriber) {
- maybeSchedule(scheduler, function () {
- var length = observables.length;
- var values = new Array(length);
- var active = length;
- var remainingFirstValues = length;
- var _loop_1 = function (i) {
- maybeSchedule(scheduler, function () {
- var source = from(observables[i], scheduler);
- var hasFirstValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- values[i] = value;
- if (!hasFirstValue) {
- hasFirstValue = true;
- remainingFirstValues--;
- }
- if (!remainingFirstValues) {
- subscriber.next(valueTransform(values.slice()));
- }
- }, function () {
- if (!--active) {
- subscriber.complete();
- }
- }));
- }, subscriber);
- };
- for (var i = 0; i < length; i++) {
- _loop_1(i);
- }
- }, subscriber);
- };
- }
- function maybeSchedule(scheduler, execute, subscription) {
- if (scheduler) {
- executeSchedule(subscription, scheduler, execute);
- }
- else {
- execute();
- }
- }
- function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {
- var buffer = [];
- var active = 0;
- var index = 0;
- var isComplete = false;
- var checkComplete = function () {
- if (isComplete && !buffer.length && !active) {
- subscriber.complete();
- }
- };
- var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };
- var doInnerSub = function (value) {
- expand && subscriber.next(value);
- active++;
- var innerComplete = false;
- innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {
- onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);
- if (expand) {
- outerNext(innerValue);
- }
- else {
- subscriber.next(innerValue);
- }
- }, function () {
- innerComplete = true;
- }, undefined, function () {
- if (innerComplete) {
- try {
- active--;
- var _loop_1 = function () {
- var bufferedValue = buffer.shift();
- if (innerSubScheduler) {
- executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });
- }
- else {
- doInnerSub(bufferedValue);
- }
- };
- while (buffer.length && active < concurrent) {
- _loop_1();
- }
- checkComplete();
- }
- catch (err) {
- subscriber.error(err);
- }
- }
- }));
- };
- source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {
- isComplete = true;
- checkComplete();
- }));
- return function () {
- additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();
- };
- }
- function mergeMap(project, resultSelector, concurrent) {
- if (concurrent === void 0) { concurrent = Infinity; }
- if (isFunction(resultSelector)) {
- return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);
- }
- else if (typeof resultSelector === 'number') {
- concurrent = resultSelector;
- }
- return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });
- }
- function mergeAll(concurrent) {
- if (concurrent === void 0) { concurrent = Infinity; }
- return mergeMap(identity, concurrent);
- }
- function concatAll() {
- return mergeAll(1);
- }
- function concat() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return concatAll()(from(args, popScheduler(args)));
- }
- function defer(observableFactory) {
- return new Observable(function (subscriber) {
- innerFrom(observableFactory()).subscribe(subscriber);
- });
- }
- var DEFAULT_CONFIG = {
- connector: function () { return new Subject(); },
- resetOnDisconnect: true,
- };
- function connectable(source, config) {
- if (config === void 0) { config = DEFAULT_CONFIG; }
- var connection = null;
- var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a;
- var subject = connector();
- var result = new Observable(function (subscriber) {
- return subject.subscribe(subscriber);
- });
- result.connect = function () {
- if (!connection || connection.closed) {
- connection = defer(function () { return source; }).subscribe(subject);
- if (resetOnDisconnect) {
- connection.add(function () { return (subject = connector()); });
- }
- }
- return connection;
- };
- return result;
- }
- function forkJoin() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var resultSelector = popResultSelector(args);
- var _a = argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;
- var result = new Observable(function (subscriber) {
- var length = sources.length;
- if (!length) {
- subscriber.complete();
- return;
- }
- var values = new Array(length);
- var remainingCompletions = length;
- var remainingEmissions = length;
- var _loop_1 = function (sourceIndex) {
- var hasValue = false;
- innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (!hasValue) {
- hasValue = true;
- remainingEmissions--;
- }
- values[sourceIndex] = value;
- }, function () { return remainingCompletions--; }, undefined, function () {
- if (!remainingCompletions || !hasValue) {
- if (!remainingEmissions) {
- subscriber.next(keys ? createObject(keys, values) : values);
- }
- subscriber.complete();
- }
- }));
- };
- for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {
- _loop_1(sourceIndex);
- }
- });
- return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
- }
- var nodeEventEmitterMethods = ['addListener', 'removeListener'];
- var eventTargetMethods = ['addEventListener', 'removeEventListener'];
- var jqueryMethods = ['on', 'off'];
- function fromEvent(target, eventName, options, resultSelector) {
- if (isFunction(options)) {
- resultSelector = options;
- options = undefined;
- }
- if (resultSelector) {
- return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs(resultSelector));
- }
- var _a = __read(isEventTarget(target)
- ? eventTargetMethods.map(function (methodName) { return function (handler) { return target[methodName](eventName, handler, options); }; })
- :
- isNodeStyleEventEmitter(target)
- ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName))
- : isJQueryStyleEventEmitter(target)
- ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName))
- : [], 2), add = _a[0], remove = _a[1];
- if (!add) {
- if (isArrayLike(target)) {
- return mergeMap(function (subTarget) { return fromEvent(subTarget, eventName, options); })(innerFrom(target));
- }
- }
- if (!add) {
- throw new TypeError('Invalid event target');
- }
- return new Observable(function (subscriber) {
- var handler = function () {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return subscriber.next(1 < args.length ? args : args[0]);
- };
- add(handler);
- return function () { return remove(handler); };
- });
- }
- function toCommonHandlerRegistry(target, eventName) {
- return function (methodName) { return function (handler) { return target[methodName](eventName, handler); }; };
- }
- function isNodeStyleEventEmitter(target) {
- return isFunction(target.addListener) && isFunction(target.removeListener);
- }
- function isJQueryStyleEventEmitter(target) {
- return isFunction(target.on) && isFunction(target.off);
- }
- function isEventTarget(target) {
- return isFunction(target.addEventListener) && isFunction(target.removeEventListener);
- }
- function fromEventPattern(addHandler, removeHandler, resultSelector) {
- if (resultSelector) {
- return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs(resultSelector));
- }
- return new Observable(function (subscriber) {
- var handler = function () {
- var e = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- e[_i] = arguments[_i];
- }
- return subscriber.next(e.length === 1 ? e[0] : e);
- };
- var retValue = addHandler(handler);
- return isFunction(removeHandler) ? function () { return removeHandler(handler, retValue); } : undefined;
- });
- }
- function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {
- var _a, _b;
- var resultSelector;
- var initialState;
- if (arguments.length === 1) {
- (_a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity : _b, scheduler = _a.scheduler);
- }
- else {
- initialState = initialStateOrOptions;
- if (!resultSelectorOrScheduler || isScheduler(resultSelectorOrScheduler)) {
- resultSelector = identity;
- scheduler = resultSelectorOrScheduler;
- }
- else {
- resultSelector = resultSelectorOrScheduler;
- }
- }
- function gen() {
- var state;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- state = initialState;
- _a.label = 1;
- case 1:
- if (!(!condition || condition(state))) return [3, 4];
- return [4, resultSelector(state)];
- case 2:
- _a.sent();
- _a.label = 3;
- case 3:
- state = iterate(state);
- return [3, 1];
- case 4: return [2];
- }
- });
- }
- return defer((scheduler
- ?
- function () { return scheduleIterable(gen(), scheduler); }
- :
- gen));
- }
- function iif(condition, trueResult, falseResult) {
- return defer(function () { return (condition() ? trueResult : falseResult); });
- }
- function timer(dueTime, intervalOrScheduler, scheduler) {
- if (dueTime === void 0) { dueTime = 0; }
- if (scheduler === void 0) { scheduler = async; }
- var intervalDuration = -1;
- if (intervalOrScheduler != null) {
- if (isScheduler(intervalOrScheduler)) {
- scheduler = intervalOrScheduler;
- }
- else {
- intervalDuration = intervalOrScheduler;
- }
- }
- return new Observable(function (subscriber) {
- var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;
- if (due < 0) {
- due = 0;
- }
- var n = 0;
- return scheduler.schedule(function () {
- if (!subscriber.closed) {
- subscriber.next(n++);
- if (0 <= intervalDuration) {
- this.schedule(undefined, intervalDuration);
- }
- else {
- subscriber.complete();
- }
- }
- }, due);
- });
- }
- function interval(period, scheduler) {
- if (period === void 0) { period = 0; }
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- if (period < 0) {
- period = 0;
- }
- return timer(period, period, scheduler);
- }
- function merge() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- var concurrent = popNumber(args, Infinity);
- var sources = args;
- return !sources.length
- ?
- EMPTY
- : sources.length === 1
- ?
- innerFrom(sources[0])
- :
- mergeAll(concurrent)(from(sources, scheduler));
- }
- var NEVER = new Observable(noop);
- function never() {
- return NEVER;
- }
- var isArray$2 = Array.isArray;
- function argsOrArgArray(args) {
- return args.length === 1 && isArray$2(args[0]) ? args[0] : args;
- }
- function onErrorResumeNext() {
- var sources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- sources[_i] = arguments[_i];
- }
- var nextSources = argsOrArgArray(sources);
- return new Observable(function (subscriber) {
- var sourceIndex = 0;
- var subscribeNext = function () {
- if (sourceIndex < nextSources.length) {
- var nextSource = void 0;
- try {
- nextSource = innerFrom(nextSources[sourceIndex++]);
- }
- catch (err) {
- subscribeNext();
- return;
- }
- var innerSubscriber = new OperatorSubscriber(subscriber, undefined, noop, noop);
- nextSource.subscribe(innerSubscriber);
- innerSubscriber.add(subscribeNext);
- }
- else {
- subscriber.complete();
- }
- };
- subscribeNext();
- });
- }
- function pairs(obj, scheduler) {
- return from(Object.entries(obj), scheduler);
- }
- function not(pred, thisArg) {
- return function (value, index) { return !pred.call(thisArg, value, index); };
- }
- function filter(predicate, thisArg) {
- return operate(function (source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));
- });
- }
- function partition(source, predicate, thisArg) {
- return [filter(predicate, thisArg)(innerFrom(source)), filter(not(predicate, thisArg))(innerFrom(source))];
- }
- function race() {
- var sources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- sources[_i] = arguments[_i];
- }
- sources = argsOrArgArray(sources);
- return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));
- }
- function raceInit(sources) {
- return function (subscriber) {
- var subscriptions = [];
- var _loop_1 = function (i) {
- subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (subscriptions) {
- for (var s = 0; s < subscriptions.length; s++) {
- s !== i && subscriptions[s].unsubscribe();
- }
- subscriptions = null;
- }
- subscriber.next(value);
- })));
- };
- for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {
- _loop_1(i);
- }
- };
- }
- function range(start, count, scheduler) {
- if (count == null) {
- count = start;
- start = 0;
- }
- if (count <= 0) {
- return EMPTY;
- }
- var end = count + start;
- return new Observable(scheduler
- ?
- function (subscriber) {
- var n = start;
- return scheduler.schedule(function () {
- if (n < end) {
- subscriber.next(n++);
- this.schedule();
- }
- else {
- subscriber.complete();
- }
- });
- }
- :
- function (subscriber) {
- var n = start;
- while (n < end && !subscriber.closed) {
- subscriber.next(n++);
- }
- subscriber.complete();
- });
- }
- function using(resourceFactory, observableFactory) {
- return new Observable(function (subscriber) {
- var resource = resourceFactory();
- var result = observableFactory(resource);
- var source = result ? innerFrom(result) : EMPTY;
- source.subscribe(subscriber);
- return function () {
- if (resource) {
- resource.unsubscribe();
- }
- };
- });
- }
- function zip() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var resultSelector = popResultSelector(args);
- var sources = argsOrArgArray(args);
- return sources.length
- ? new Observable(function (subscriber) {
- var buffers = sources.map(function () { return []; });
- var completed = sources.map(function () { return false; });
- subscriber.add(function () {
- buffers = completed = null;
- });
- var _loop_1 = function (sourceIndex) {
- innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {
- buffers[sourceIndex].push(value);
- if (buffers.every(function (buffer) { return buffer.length; })) {
- var result = buffers.map(function (buffer) { return buffer.shift(); });
- subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result);
- if (buffers.some(function (buffer, i) { return !buffer.length && completed[i]; })) {
- subscriber.complete();
- }
- }
- }, function () {
- completed[sourceIndex] = true;
- !buffers[sourceIndex].length && subscriber.complete();
- }));
- };
- for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {
- _loop_1(sourceIndex);
- }
- return function () {
- buffers = completed = null;
- };
- })
- : EMPTY;
- }
- function audit(durationSelector) {
- return operate(function (source, subscriber) {
- var hasValue = false;
- var lastValue = null;
- var durationSubscriber = null;
- var isComplete = false;
- var endDuration = function () {
- durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();
- durationSubscriber = null;
- if (hasValue) {
- hasValue = false;
- var value = lastValue;
- lastValue = null;
- subscriber.next(value);
- }
- isComplete && subscriber.complete();
- };
- var cleanupDuration = function () {
- durationSubscriber = null;
- isComplete && subscriber.complete();
- };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- hasValue = true;
- lastValue = value;
- if (!durationSubscriber) {
- innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));
- }
- }, function () {
- isComplete = true;
- (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();
- }));
- });
- }
- function auditTime(duration, scheduler) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- return audit(function () { return timer(duration, scheduler); });
- }
- function buffer(closingNotifier) {
- return operate(function (source, subscriber) {
- var currentBuffer = [];
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return currentBuffer.push(value); }, function () {
- subscriber.next(currentBuffer);
- subscriber.complete();
- }));
- innerFrom(closingNotifier).subscribe(createOperatorSubscriber(subscriber, function () {
- var b = currentBuffer;
- currentBuffer = [];
- subscriber.next(b);
- }, noop));
- return function () {
- currentBuffer = null;
- };
- });
- }
- function bufferCount(bufferSize, startBufferEvery) {
- if (startBufferEvery === void 0) { startBufferEvery = null; }
- startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;
- return operate(function (source, subscriber) {
- var buffers = [];
- var count = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var e_1, _a, e_2, _b;
- var toEmit = null;
- if (count++ % startBufferEvery === 0) {
- buffers.push([]);
- }
- try {
- for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {
- var buffer = buffers_1_1.value;
- buffer.push(value);
- if (bufferSize <= buffer.length) {
- toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];
- toEmit.push(buffer);
- }
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- if (toEmit) {
- try {
- for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) {
- var buffer = toEmit_1_1.value;
- arrRemove(buffers, buffer);
- subscriber.next(buffer);
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1);
- }
- finally { if (e_2) throw e_2.error; }
- }
- }
- }, function () {
- var e_3, _a;
- try {
- for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) {
- var buffer = buffers_2_1.value;
- subscriber.next(buffer);
- }
- }
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
- finally {
- try {
- if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2);
- }
- finally { if (e_3) throw e_3.error; }
- }
- subscriber.complete();
- }, undefined, function () {
- buffers = null;
- }));
- });
- }
- function bufferTime(bufferTimeSpan) {
- var _a, _b;
- var otherArgs = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- otherArgs[_i - 1] = arguments[_i];
- }
- var scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;
- var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;
- var maxBufferSize = otherArgs[1] || Infinity;
- return operate(function (source, subscriber) {
- var bufferRecords = [];
- var restartOnEmit = false;
- var emit = function (record) {
- var buffer = record.buffer, subs = record.subs;
- subs.unsubscribe();
- arrRemove(bufferRecords, record);
- subscriber.next(buffer);
- restartOnEmit && startBuffer();
- };
- var startBuffer = function () {
- if (bufferRecords) {
- var subs = new Subscription();
- subscriber.add(subs);
- var buffer = [];
- var record_1 = {
- buffer: buffer,
- subs: subs,
- };
- bufferRecords.push(record_1);
- executeSchedule(subs, scheduler, function () { return emit(record_1); }, bufferTimeSpan);
- }
- };
- if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {
- executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);
- }
- else {
- restartOnEmit = true;
- }
- startBuffer();
- var bufferTimeSubscriber = createOperatorSubscriber(subscriber, function (value) {
- var e_1, _a;
- var recordsCopy = bufferRecords.slice();
- try {
- for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) {
- var record = recordsCopy_1_1.value;
- var buffer = record.buffer;
- buffer.push(value);
- maxBufferSize <= buffer.length && emit(record);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a = recordsCopy_1.return)) _a.call(recordsCopy_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- }, function () {
- while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {
- subscriber.next(bufferRecords.shift().buffer);
- }
- bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();
- subscriber.complete();
- subscriber.unsubscribe();
- }, undefined, function () { return (bufferRecords = null); });
- source.subscribe(bufferTimeSubscriber);
- });
- }
- function bufferToggle(openings, closingSelector) {
- return operate(function (source, subscriber) {
- var buffers = [];
- innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, function (openValue) {
- var buffer = [];
- buffers.push(buffer);
- var closingSubscription = new Subscription();
- var emitBuffer = function () {
- arrRemove(buffers, buffer);
- subscriber.next(buffer);
- closingSubscription.unsubscribe();
- };
- closingSubscription.add(innerFrom(closingSelector(openValue)).subscribe(createOperatorSubscriber(subscriber, emitBuffer, noop)));
- }, noop));
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var e_1, _a;
- try {
- for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {
- var buffer = buffers_1_1.value;
- buffer.push(value);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- }, function () {
- while (buffers.length > 0) {
- subscriber.next(buffers.shift());
- }
- subscriber.complete();
- }));
- });
- }
- function bufferWhen(closingSelector) {
- return operate(function (source, subscriber) {
- var buffer = null;
- var closingSubscriber = null;
- var openBuffer = function () {
- closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();
- var b = buffer;
- buffer = [];
- b && subscriber.next(b);
- innerFrom(closingSelector()).subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openBuffer, noop)));
- };
- openBuffer();
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); }, function () {
- buffer && subscriber.next(buffer);
- subscriber.complete();
- }, undefined, function () { return (buffer = closingSubscriber = null); }));
- });
- }
- function catchError(selector) {
- return operate(function (source, subscriber) {
- var innerSub = null;
- var syncUnsub = false;
- var handledResult;
- innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {
- handledResult = innerFrom(selector(err, catchError(selector)(source)));
- if (innerSub) {
- innerSub.unsubscribe();
- innerSub = null;
- handledResult.subscribe(subscriber);
- }
- else {
- syncUnsub = true;
- }
- }));
- if (syncUnsub) {
- innerSub.unsubscribe();
- innerSub = null;
- handledResult.subscribe(subscriber);
- }
- });
- }
- function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {
- return function (source, subscriber) {
- var hasState = hasSeed;
- var state = seed;
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var i = index++;
- state = hasState
- ?
- accumulator(state, value, i)
- :
- ((hasState = true), value);
- emitOnNext && subscriber.next(state);
- }, emitBeforeComplete &&
- (function () {
- hasState && subscriber.next(state);
- subscriber.complete();
- })));
- };
- }
- function reduce(accumulator, seed) {
- return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));
- }
- var arrReducer = function (arr, value) { return (arr.push(value), arr); };
- function toArray() {
- return operate(function (source, subscriber) {
- reduce(arrReducer, [])(source).subscribe(subscriber);
- });
- }
- function joinAllInternals(joinFn, project) {
- return pipe(toArray(), mergeMap(function (sources) { return joinFn(sources); }), project ? mapOneOrManyArgs(project) : identity);
- }
- function combineLatestAll(project) {
- return joinAllInternals(combineLatest, project);
- }
- var combineAll = combineLatestAll;
- function combineLatest$1() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var resultSelector = popResultSelector(args);
- return resultSelector
- ? pipe(combineLatest$1.apply(void 0, __spreadArray([], __read(args))), mapOneOrManyArgs(resultSelector))
- : operate(function (source, subscriber) {
- combineLatestInit(__spreadArray([source], __read(argsOrArgArray(args))))(subscriber);
- });
- }
- function combineLatestWith() {
- var otherSources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- otherSources[_i] = arguments[_i];
- }
- return combineLatest$1.apply(void 0, __spreadArray([], __read(otherSources)));
- }
- function concatMap(project, resultSelector) {
- return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);
- }
- function concatMapTo(innerObservable, resultSelector) {
- return isFunction(resultSelector) ? concatMap(function () { return innerObservable; }, resultSelector) : concatMap(function () { return innerObservable; });
- }
- function concat$1() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- return operate(function (source, subscriber) {
- concatAll()(from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber);
- });
- }
- function concatWith() {
- var otherSources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- otherSources[_i] = arguments[_i];
- }
- return concat$1.apply(void 0, __spreadArray([], __read(otherSources)));
- }
- function fromSubscribable(subscribable) {
- return new Observable(function (subscriber) { return subscribable.subscribe(subscriber); });
- }
- var DEFAULT_CONFIG$1 = {
- connector: function () { return new Subject(); },
- };
- function connect(selector, config) {
- if (config === void 0) { config = DEFAULT_CONFIG$1; }
- var connector = config.connector;
- return operate(function (source, subscriber) {
- var subject = connector();
- innerFrom(selector(fromSubscribable(subject))).subscribe(subscriber);
- subscriber.add(source.subscribe(subject));
- });
- }
- function count(predicate) {
- return reduce(function (total, value, i) { return (!predicate || predicate(value, i) ? total + 1 : total); }, 0);
- }
- function debounce(durationSelector) {
- return operate(function (source, subscriber) {
- var hasValue = false;
- var lastValue = null;
- var durationSubscriber = null;
- var emit = function () {
- durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();
- durationSubscriber = null;
- if (hasValue) {
- hasValue = false;
- var value = lastValue;
- lastValue = null;
- subscriber.next(value);
- }
- };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();
- hasValue = true;
- lastValue = value;
- durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);
- innerFrom(durationSelector(value)).subscribe(durationSubscriber);
- }, function () {
- emit();
- subscriber.complete();
- }, undefined, function () {
- lastValue = durationSubscriber = null;
- }));
- });
- }
- function debounceTime(dueTime, scheduler) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- return operate(function (source, subscriber) {
- var activeTask = null;
- var lastValue = null;
- var lastTime = null;
- var emit = function () {
- if (activeTask) {
- activeTask.unsubscribe();
- activeTask = null;
- var value = lastValue;
- lastValue = null;
- subscriber.next(value);
- }
- };
- function emitWhenIdle() {
- var targetTime = lastTime + dueTime;
- var now = scheduler.now();
- if (now < targetTime) {
- activeTask = this.schedule(undefined, targetTime - now);
- subscriber.add(activeTask);
- return;
- }
- emit();
- }
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- lastValue = value;
- lastTime = scheduler.now();
- if (!activeTask) {
- activeTask = scheduler.schedule(emitWhenIdle, dueTime);
- subscriber.add(activeTask);
- }
- }, function () {
- emit();
- subscriber.complete();
- }, undefined, function () {
- lastValue = activeTask = null;
- }));
- });
- }
- function defaultIfEmpty(defaultValue) {
- return operate(function (source, subscriber) {
- var hasValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- hasValue = true;
- subscriber.next(value);
- }, function () {
- if (!hasValue) {
- subscriber.next(defaultValue);
- }
- subscriber.complete();
- }));
- });
- }
- function take(count) {
- return count <= 0
- ?
- function () { return EMPTY; }
- : operate(function (source, subscriber) {
- var seen = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (++seen <= count) {
- subscriber.next(value);
- if (count <= seen) {
- subscriber.complete();
- }
- }
- }));
- });
- }
- function ignoreElements() {
- return operate(function (source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, noop));
- });
- }
- function mapTo(value) {
- return map(function () { return value; });
- }
- function delayWhen(delayDurationSelector, subscriptionDelay) {
- if (subscriptionDelay) {
- return function (source) {
- return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));
- };
- }
- return mergeMap(function (value, index) { return innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)); });
- }
- function delay(due, scheduler) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- var duration = timer(due, scheduler);
- return delayWhen(function () { return duration; });
- }
- function dematerialize() {
- return operate(function (source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, function (notification) { return observeNotification(notification, subscriber); }));
- });
- }
- function distinct(keySelector, flushes) {
- return operate(function (source, subscriber) {
- var distinctKeys = new Set();
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var key = keySelector ? keySelector(value) : value;
- if (!distinctKeys.has(key)) {
- distinctKeys.add(key);
- subscriber.next(value);
- }
- }));
- flushes && innerFrom(flushes).subscribe(createOperatorSubscriber(subscriber, function () { return distinctKeys.clear(); }, noop));
- });
- }
- function distinctUntilChanged(comparator, keySelector) {
- if (keySelector === void 0) { keySelector = identity; }
- comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;
- return operate(function (source, subscriber) {
- var previousKey;
- var first = true;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var currentKey = keySelector(value);
- if (first || !comparator(previousKey, currentKey)) {
- first = false;
- previousKey = currentKey;
- subscriber.next(value);
- }
- }));
- });
- }
- function defaultCompare(a, b) {
- return a === b;
- }
- function distinctUntilKeyChanged(key, compare) {
- return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
- }
- function throwIfEmpty(errorFactory) {
- if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }
- return operate(function (source, subscriber) {
- var hasValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- hasValue = true;
- subscriber.next(value);
- }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));
- });
- }
- function defaultErrorFactory() {
- return new EmptyError();
- }
- function elementAt(index, defaultValue) {
- if (index < 0) {
- throw new ArgumentOutOfRangeError();
- }
- var hasDefaultValue = arguments.length >= 2;
- return function (source) {
- return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));
- };
- }
- function endWith() {
- var values = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- values[_i] = arguments[_i];
- }
- return function (source) { return concat(source, of.apply(void 0, __spreadArray([], __read(values)))); };
- }
- function every(predicate, thisArg) {
- return operate(function (source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (!predicate.call(thisArg, value, index++, source)) {
- subscriber.next(false);
- subscriber.complete();
- }
- }, function () {
- subscriber.next(true);
- subscriber.complete();
- }));
- });
- }
- function exhaustMap(project, resultSelector) {
- if (resultSelector) {
- return function (source) {
- return source.pipe(exhaustMap(function (a, i) { return innerFrom(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }));
- };
- }
- return operate(function (source, subscriber) {
- var index = 0;
- var innerSub = null;
- var isComplete = false;
- source.subscribe(createOperatorSubscriber(subscriber, function (outerValue) {
- if (!innerSub) {
- innerSub = createOperatorSubscriber(subscriber, undefined, function () {
- innerSub = null;
- isComplete && subscriber.complete();
- });
- innerFrom(project(outerValue, index++)).subscribe(innerSub);
- }
- }, function () {
- isComplete = true;
- !innerSub && subscriber.complete();
- }));
- });
- }
- function exhaustAll() {
- return exhaustMap(identity);
- }
- var exhaust = exhaustAll;
- function expand(project, concurrent, scheduler) {
- if (concurrent === void 0) { concurrent = Infinity; }
- concurrent = (concurrent || 0) < 1 ? Infinity : concurrent;
- return operate(function (source, subscriber) {
- return mergeInternals(source, subscriber, project, concurrent, undefined, true, scheduler);
- });
- }
- function finalize(callback) {
- return operate(function (source, subscriber) {
- try {
- source.subscribe(subscriber);
- }
- finally {
- subscriber.add(callback);
- }
- });
- }
- function find(predicate, thisArg) {
- return operate(createFind(predicate, thisArg, 'value'));
- }
- function createFind(predicate, thisArg, emit) {
- var findIndex = emit === 'index';
- return function (source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var i = index++;
- if (predicate.call(thisArg, value, i, source)) {
- subscriber.next(findIndex ? i : value);
- subscriber.complete();
- }
- }, function () {
- subscriber.next(findIndex ? -1 : undefined);
- subscriber.complete();
- }));
- };
- }
- function findIndex(predicate, thisArg) {
- return operate(createFind(predicate, thisArg, 'index'));
- }
- function first(predicate, defaultValue) {
- var hasDefaultValue = arguments.length >= 2;
- return function (source) {
- return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));
- };
- }
- function groupBy(keySelector, elementOrOptions, duration, connector) {
- return operate(function (source, subscriber) {
- var element;
- if (!elementOrOptions || typeof elementOrOptions === 'function') {
- element = elementOrOptions;
- }
- else {
- (duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector);
- }
- var groups = new Map();
- var notify = function (cb) {
- groups.forEach(cb);
- cb(subscriber);
- };
- var handleError = function (err) { return notify(function (consumer) { return consumer.error(err); }); };
- var activeGroups = 0;
- var teardownAttempted = false;
- var groupBySourceSubscriber = new OperatorSubscriber(subscriber, function (value) {
- try {
- var key_1 = keySelector(value);
- var group_1 = groups.get(key_1);
- if (!group_1) {
- groups.set(key_1, (group_1 = connector ? connector() : new Subject()));
- var grouped = createGroupedObservable(key_1, group_1);
- subscriber.next(grouped);
- if (duration) {
- var durationSubscriber_1 = createOperatorSubscriber(group_1, function () {
- group_1.complete();
- durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe();
- }, undefined, undefined, function () { return groups.delete(key_1); });
- groupBySourceSubscriber.add(innerFrom(duration(grouped)).subscribe(durationSubscriber_1));
- }
- }
- group_1.next(element ? element(value) : value);
- }
- catch (err) {
- handleError(err);
- }
- }, function () { return notify(function (consumer) { return consumer.complete(); }); }, handleError, function () { return groups.clear(); }, function () {
- teardownAttempted = true;
- return activeGroups === 0;
- });
- source.subscribe(groupBySourceSubscriber);
- function createGroupedObservable(key, groupSubject) {
- var result = new Observable(function (groupSubscriber) {
- activeGroups++;
- var innerSub = groupSubject.subscribe(groupSubscriber);
- return function () {
- innerSub.unsubscribe();
- --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe();
- };
- });
- result.key = key;
- return result;
- }
- });
- }
- function isEmpty() {
- return operate(function (source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, function () {
- subscriber.next(false);
- subscriber.complete();
- }, function () {
- subscriber.next(true);
- subscriber.complete();
- }));
- });
- }
- function takeLast(count) {
- return count <= 0
- ? function () { return EMPTY; }
- : operate(function (source, subscriber) {
- var buffer = [];
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- buffer.push(value);
- count < buffer.length && buffer.shift();
- }, function () {
- var e_1, _a;
- try {
- for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {
- var value = buffer_1_1.value;
- subscriber.next(value);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- subscriber.complete();
- }, undefined, function () {
- buffer = null;
- }));
- });
- }
- function last$1(predicate, defaultValue) {
- var hasDefaultValue = arguments.length >= 2;
- return function (source) {
- return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));
- };
- }
- function materialize() {
- return operate(function (source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- subscriber.next(Notification.createNext(value));
- }, function () {
- subscriber.next(Notification.createComplete());
- subscriber.complete();
- }, function (err) {
- subscriber.next(Notification.createError(err));
- subscriber.complete();
- }));
- });
- }
- function max(comparer) {
- return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) > 0 ? x : y); } : function (x, y) { return (x > y ? x : y); });
- }
- var flatMap = mergeMap;
- function mergeMapTo(innerObservable, resultSelector, concurrent) {
- if (concurrent === void 0) { concurrent = Infinity; }
- if (isFunction(resultSelector)) {
- return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);
- }
- if (typeof resultSelector === 'number') {
- concurrent = resultSelector;
- }
- return mergeMap(function () { return innerObservable; }, concurrent);
- }
- function mergeScan(accumulator, seed, concurrent) {
- if (concurrent === void 0) { concurrent = Infinity; }
- return operate(function (source, subscriber) {
- var state = seed;
- return mergeInternals(source, subscriber, function (value, index) { return accumulator(state, value, index); }, concurrent, function (value) {
- state = value;
- }, false, undefined, function () { return (state = null); });
- });
- }
- function merge$1() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- var concurrent = popNumber(args, Infinity);
- args = argsOrArgArray(args);
- return operate(function (source, subscriber) {
- mergeAll(concurrent)(from(__spreadArray([source], __read(args)), scheduler)).subscribe(subscriber);
- });
- }
- function mergeWith() {
- var otherSources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- otherSources[_i] = arguments[_i];
- }
- return merge$1.apply(void 0, __spreadArray([], __read(otherSources)));
- }
- function min(comparer) {
- return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) < 0 ? x : y); } : function (x, y) { return (x < y ? x : y); });
- }
- function multicast(subjectOrSubjectFactory, selector) {
- var subjectFactory = isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : function () { return subjectOrSubjectFactory; };
- if (isFunction(selector)) {
- return connect(selector, {
- connector: subjectFactory,
- });
- }
- return function (source) { return new ConnectableObservable(source, subjectFactory); };
- }
- function onErrorResumeNextWith() {
- var sources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- sources[_i] = arguments[_i];
- }
- var nextSources = argsOrArgArray(sources);
- return function (source) { return onErrorResumeNext.apply(void 0, __spreadArray([source], __read(nextSources))); };
- }
- var onErrorResumeNext$1 = onErrorResumeNextWith;
- function pairwise() {
- return operate(function (source, subscriber) {
- var prev;
- var hasPrev = false;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var p = prev;
- prev = value;
- hasPrev && subscriber.next([p, value]);
- hasPrev = true;
- }));
- });
- }
- function pluck() {
- var properties = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- properties[_i] = arguments[_i];
- }
- var length = properties.length;
- if (length === 0) {
- throw new Error('list of properties cannot be empty.');
- }
- return map(function (x) {
- var currentProp = x;
- for (var i = 0; i < length; i++) {
- var p = currentProp === null || currentProp === void 0 ? void 0 : currentProp[properties[i]];
- if (typeof p !== 'undefined') {
- currentProp = p;
- }
- else {
- return undefined;
- }
- }
- return currentProp;
- });
- }
- function publish(selector) {
- return selector ? function (source) { return connect(selector)(source); } : function (source) { return multicast(new Subject())(source); };
- }
- function publishBehavior(initialValue) {
- return function (source) {
- var subject = new BehaviorSubject(initialValue);
- return new ConnectableObservable(source, function () { return subject; });
- };
- }
- function publishLast() {
- return function (source) {
- var subject = new AsyncSubject();
- return new ConnectableObservable(source, function () { return subject; });
- };
- }
- function publishReplay(bufferSize, windowTime, selectorOrScheduler, timestampProvider) {
- if (selectorOrScheduler && !isFunction(selectorOrScheduler)) {
- timestampProvider = selectorOrScheduler;
- }
- var selector = isFunction(selectorOrScheduler) ? selectorOrScheduler : undefined;
- return function (source) { return multicast(new ReplaySubject(bufferSize, windowTime, timestampProvider), selector)(source); };
- }
- function raceWith() {
- var otherSources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- otherSources[_i] = arguments[_i];
- }
- return !otherSources.length
- ? identity
- : operate(function (source, subscriber) {
- raceInit(__spreadArray([source], __read(otherSources)))(subscriber);
- });
- }
- function repeat(countOrConfig) {
- var _a;
- var count = Infinity;
- var delay;
- if (countOrConfig != null) {
- if (typeof countOrConfig === 'object') {
- (_a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay);
- }
- else {
- count = countOrConfig;
- }
- }
- return count <= 0
- ? function () { return EMPTY; }
- : operate(function (source, subscriber) {
- var soFar = 0;
- var sourceSub;
- var resubscribe = function () {
- sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe();
- sourceSub = null;
- if (delay != null) {
- var notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(soFar));
- var notifierSubscriber_1 = createOperatorSubscriber(subscriber, function () {
- notifierSubscriber_1.unsubscribe();
- subscribeToSource();
- });
- notifier.subscribe(notifierSubscriber_1);
- }
- else {
- subscribeToSource();
- }
- };
- var subscribeToSource = function () {
- var syncUnsub = false;
- sourceSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, function () {
- if (++soFar < count) {
- if (sourceSub) {
- resubscribe();
- }
- else {
- syncUnsub = true;
- }
- }
- else {
- subscriber.complete();
- }
- }));
- if (syncUnsub) {
- resubscribe();
- }
- };
- subscribeToSource();
- });
- }
- function repeatWhen(notifier) {
- return operate(function (source, subscriber) {
- var innerSub;
- var syncResub = false;
- var completions$;
- var isNotifierComplete = false;
- var isMainComplete = false;
- var checkComplete = function () { return isMainComplete && isNotifierComplete && (subscriber.complete(), true); };
- var getCompletionSubject = function () {
- if (!completions$) {
- completions$ = new Subject();
- innerFrom(notifier(completions$)).subscribe(createOperatorSubscriber(subscriber, function () {
- if (innerSub) {
- subscribeForRepeatWhen();
- }
- else {
- syncResub = true;
- }
- }, function () {
- isNotifierComplete = true;
- checkComplete();
- }));
- }
- return completions$;
- };
- var subscribeForRepeatWhen = function () {
- isMainComplete = false;
- innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, function () {
- isMainComplete = true;
- !checkComplete() && getCompletionSubject().next();
- }));
- if (syncResub) {
- innerSub.unsubscribe();
- innerSub = null;
- syncResub = false;
- subscribeForRepeatWhen();
- }
- };
- subscribeForRepeatWhen();
- });
- }
- function retry(configOrCount) {
- if (configOrCount === void 0) { configOrCount = Infinity; }
- var config;
- if (configOrCount && typeof configOrCount === 'object') {
- config = configOrCount;
- }
- else {
- config = {
- count: configOrCount,
- };
- }
- var _a = config.count, count = _a === void 0 ? Infinity : _a, delay = config.delay, _b = config.resetOnSuccess, resetOnSuccess = _b === void 0 ? false : _b;
- return count <= 0
- ? identity
- : operate(function (source, subscriber) {
- var soFar = 0;
- var innerSub;
- var subscribeForRetry = function () {
- var syncUnsub = false;
- innerSub = source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (resetOnSuccess) {
- soFar = 0;
- }
- subscriber.next(value);
- }, undefined, function (err) {
- if (soFar++ < count) {
- var resub_1 = function () {
- if (innerSub) {
- innerSub.unsubscribe();
- innerSub = null;
- subscribeForRetry();
- }
- else {
- syncUnsub = true;
- }
- };
- if (delay != null) {
- var notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(err, soFar));
- var notifierSubscriber_1 = createOperatorSubscriber(subscriber, function () {
- notifierSubscriber_1.unsubscribe();
- resub_1();
- }, function () {
- subscriber.complete();
- });
- notifier.subscribe(notifierSubscriber_1);
- }
- else {
- resub_1();
- }
- }
- else {
- subscriber.error(err);
- }
- }));
- if (syncUnsub) {
- innerSub.unsubscribe();
- innerSub = null;
- subscribeForRetry();
- }
- };
- subscribeForRetry();
- });
- }
- function retryWhen(notifier) {
- return operate(function (source, subscriber) {
- var innerSub;
- var syncResub = false;
- var errors$;
- var subscribeForRetryWhen = function () {
- innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {
- if (!errors$) {
- errors$ = new Subject();
- innerFrom(notifier(errors$)).subscribe(createOperatorSubscriber(subscriber, function () {
- return innerSub ? subscribeForRetryWhen() : (syncResub = true);
- }));
- }
- if (errors$) {
- errors$.next(err);
- }
- }));
- if (syncResub) {
- innerSub.unsubscribe();
- innerSub = null;
- syncResub = false;
- subscribeForRetryWhen();
- }
- };
- subscribeForRetryWhen();
- });
- }
- function sample(notifier) {
- return operate(function (source, subscriber) {
- var hasValue = false;
- var lastValue = null;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- hasValue = true;
- lastValue = value;
- }));
- innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () {
- if (hasValue) {
- hasValue = false;
- var value = lastValue;
- lastValue = null;
- subscriber.next(value);
- }
- }, noop));
- });
- }
- function sampleTime(period, scheduler) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- return sample(interval(period, scheduler));
- }
- function scan(accumulator, seed) {
- return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));
- }
- function sequenceEqual(compareTo, comparator) {
- if (comparator === void 0) { comparator = function (a, b) { return a === b; }; }
- return operate(function (source, subscriber) {
- var aState = createState();
- var bState = createState();
- var emit = function (isEqual) {
- subscriber.next(isEqual);
- subscriber.complete();
- };
- var createSubscriber = function (selfState, otherState) {
- var sequenceEqualSubscriber = createOperatorSubscriber(subscriber, function (a) {
- var buffer = otherState.buffer, complete = otherState.complete;
- if (buffer.length === 0) {
- complete ? emit(false) : selfState.buffer.push(a);
- }
- else {
- !comparator(a, buffer.shift()) && emit(false);
- }
- }, function () {
- selfState.complete = true;
- var complete = otherState.complete, buffer = otherState.buffer;
- complete && emit(buffer.length === 0);
- sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe();
- });
- return sequenceEqualSubscriber;
- };
- source.subscribe(createSubscriber(aState, bState));
- innerFrom(compareTo).subscribe(createSubscriber(bState, aState));
- });
- }
- function createState() {
- return {
- buffer: [],
- complete: false,
- };
- }
- function share(options) {
- if (options === void 0) { options = {}; }
- var _a = options.connector, connector = _a === void 0 ? function () { return new Subject(); } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d;
- return function (wrapperSource) {
- var connection;
- var resetConnection;
- var subject;
- var refCount = 0;
- var hasCompleted = false;
- var hasErrored = false;
- var cancelReset = function () {
- resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();
- resetConnection = undefined;
- };
- var reset = function () {
- cancelReset();
- connection = subject = undefined;
- hasCompleted = hasErrored = false;
- };
- var resetAndUnsubscribe = function () {
- var conn = connection;
- reset();
- conn === null || conn === void 0 ? void 0 : conn.unsubscribe();
- };
- return operate(function (source, subscriber) {
- refCount++;
- if (!hasErrored && !hasCompleted) {
- cancelReset();
- }
- var dest = (subject = subject !== null && subject !== void 0 ? subject : connector());
- subscriber.add(function () {
- refCount--;
- if (refCount === 0 && !hasErrored && !hasCompleted) {
- resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
- }
- });
- dest.subscribe(subscriber);
- if (!connection &&
- refCount > 0) {
- connection = new SafeSubscriber({
- next: function (value) { return dest.next(value); },
- error: function (err) {
- hasErrored = true;
- cancelReset();
- resetConnection = handleReset(reset, resetOnError, err);
- dest.error(err);
- },
- complete: function () {
- hasCompleted = true;
- cancelReset();
- resetConnection = handleReset(reset, resetOnComplete);
- dest.complete();
- },
- });
- innerFrom(source).subscribe(connection);
- }
- })(wrapperSource);
- };
- }
- function handleReset(reset, on) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- if (on === true) {
- reset();
- return;
- }
- if (on === false) {
- return;
- }
- var onSubscriber = new SafeSubscriber({
- next: function () {
- onSubscriber.unsubscribe();
- reset();
- },
- });
- return innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);
- }
- function shareReplay(configOrBufferSize, windowTime, scheduler) {
- var _a, _b, _c;
- var bufferSize;
- var refCount = false;
- if (configOrBufferSize && typeof configOrBufferSize === 'object') {
- (_a = configOrBufferSize.bufferSize, bufferSize = _a === void 0 ? Infinity : _a, _b = configOrBufferSize.windowTime, windowTime = _b === void 0 ? Infinity : _b, _c = configOrBufferSize.refCount, refCount = _c === void 0 ? false : _c, scheduler = configOrBufferSize.scheduler);
- }
- else {
- bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);
- }
- return share({
- connector: function () { return new ReplaySubject(bufferSize, windowTime, scheduler); },
- resetOnError: true,
- resetOnComplete: false,
- resetOnRefCountZero: refCount,
- });
- }
- function single(predicate) {
- return operate(function (source, subscriber) {
- var hasValue = false;
- var singleValue;
- var seenValue = false;
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- seenValue = true;
- if (!predicate || predicate(value, index++, source)) {
- hasValue && subscriber.error(new SequenceError('Too many matching values'));
- hasValue = true;
- singleValue = value;
- }
- }, function () {
- if (hasValue) {
- subscriber.next(singleValue);
- subscriber.complete();
- }
- else {
- subscriber.error(seenValue ? new NotFoundError('No matching values') : new EmptyError());
- }
- }));
- });
- }
- function skip(count) {
- return filter(function (_, index) { return count <= index; });
- }
- function skipLast(skipCount) {
- return skipCount <= 0
- ?
- identity
- : operate(function (source, subscriber) {
- var ring = new Array(skipCount);
- var seen = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var valueIndex = seen++;
- if (valueIndex < skipCount) {
- ring[valueIndex] = value;
- }
- else {
- var index = valueIndex % skipCount;
- var oldValue = ring[index];
- ring[index] = value;
- subscriber.next(oldValue);
- }
- }));
- return function () {
- ring = null;
- };
- });
- }
- function skipUntil(notifier) {
- return operate(function (source, subscriber) {
- var taking = false;
- var skipSubscriber = createOperatorSubscriber(subscriber, function () {
- skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe();
- taking = true;
- }, noop);
- innerFrom(notifier).subscribe(skipSubscriber);
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return taking && subscriber.next(value); }));
- });
- }
- function skipWhile(predicate) {
- return operate(function (source, subscriber) {
- var taking = false;
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); }));
- });
- }
- function startWith() {
- var values = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- values[_i] = arguments[_i];
- }
- var scheduler = popScheduler(values);
- return operate(function (source, subscriber) {
- (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);
- });
- }
- function switchMap(project, resultSelector) {
- return operate(function (source, subscriber) {
- var innerSubscriber = null;
- var index = 0;
- var isComplete = false;
- var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();
- var innerIndex = 0;
- var outerIndex = index++;
- innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {
- innerSubscriber = null;
- checkComplete();
- })));
- }, function () {
- isComplete = true;
- checkComplete();
- }));
- });
- }
- function switchAll() {
- return switchMap(identity);
- }
- function switchMapTo(innerObservable, resultSelector) {
- return isFunction(resultSelector) ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });
- }
- function switchScan(accumulator, seed) {
- return operate(function (source, subscriber) {
- var state = seed;
- switchMap(function (value, index) { return accumulator(state, value, index); }, function (_, innerValue) { return ((state = innerValue), innerValue); })(source).subscribe(subscriber);
- return function () {
- state = null;
- };
- });
- }
- function takeUntil(notifier) {
- return operate(function (source, subscriber) {
- innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop));
- !subscriber.closed && source.subscribe(subscriber);
- });
- }
- function takeWhile(predicate, inclusive) {
- if (inclusive === void 0) { inclusive = false; }
- return operate(function (source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var result = predicate(value, index++);
- (result || inclusive) && subscriber.next(value);
- !result && subscriber.complete();
- }));
- });
- }
- function tap(observerOrNext, error, complete) {
- var tapObserver = isFunction(observerOrNext) || error || complete
- ?
- { next: observerOrNext, error: error, complete: complete }
- : observerOrNext;
- return tapObserver
- ? operate(function (source, subscriber) {
- var _a;
- (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
- var isUnsub = true;
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var _a;
- (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);
- subscriber.next(value);
- }, function () {
- var _a;
- isUnsub = false;
- (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
- subscriber.complete();
- }, function (err) {
- var _a;
- isUnsub = false;
- (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);
- subscriber.error(err);
- }, function () {
- var _a, _b;
- if (isUnsub) {
- (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
- }
- (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);
- }));
- })
- :
- identity;
- }
- function throttle(durationSelector, config) {
- return operate(function (source, subscriber) {
- var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c;
- var hasValue = false;
- var sendValue = null;
- var throttled = null;
- var isComplete = false;
- var endThrottling = function () {
- throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();
- throttled = null;
- if (trailing) {
- send();
- isComplete && subscriber.complete();
- }
- };
- var cleanupThrottling = function () {
- throttled = null;
- isComplete && subscriber.complete();
- };
- var startThrottle = function (value) {
- return (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));
- };
- var send = function () {
- if (hasValue) {
- hasValue = false;
- var value = sendValue;
- sendValue = null;
- subscriber.next(value);
- !isComplete && startThrottle(value);
- }
- };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- hasValue = true;
- sendValue = value;
- !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));
- }, function () {
- isComplete = true;
- !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();
- }));
- });
- }
- function throttleTime(duration, scheduler, config) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- var duration$ = timer(duration, scheduler);
- return throttle(function () { return duration$; }, config);
- }
- function timeInterval(scheduler) {
- if (scheduler === void 0) { scheduler = asyncScheduler; }
- return operate(function (source, subscriber) {
- var last = scheduler.now();
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var now = scheduler.now();
- var interval = now - last;
- last = now;
- subscriber.next(new TimeInterval(value, interval));
- }));
- });
- }
- var TimeInterval = (function () {
- function TimeInterval(value, interval) {
- this.value = value;
- this.interval = interval;
- }
- return TimeInterval;
- }());
- function timeoutWith(due, withObservable, scheduler) {
- var first;
- var each;
- var _with;
- scheduler = scheduler !== null && scheduler !== void 0 ? scheduler : async;
- if (isValidDate(due)) {
- first = due;
- }
- else if (typeof due === 'number') {
- each = due;
- }
- if (withObservable) {
- _with = function () { return withObservable; };
- }
- else {
- throw new TypeError('No observable provided to switch to');
- }
- if (first == null && each == null) {
- throw new TypeError('No timeout provided.');
- }
- return timeout({
- first: first,
- each: each,
- scheduler: scheduler,
- with: _with,
- });
- }
- function timestamp(timestampProvider) {
- if (timestampProvider === void 0) { timestampProvider = dateTimestampProvider; }
- return map(function (value) { return ({ value: value, timestamp: timestampProvider.now() }); });
- }
- function window(windowBoundaries) {
- return operate(function (source, subscriber) {
- var windowSubject = new Subject();
- subscriber.next(windowSubject.asObservable());
- var errorHandler = function (err) {
- windowSubject.error(err);
- subscriber.error(err);
- };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.next(value); }, function () {
- windowSubject.complete();
- subscriber.complete();
- }, errorHandler));
- innerFrom(windowBoundaries).subscribe(createOperatorSubscriber(subscriber, function () {
- windowSubject.complete();
- subscriber.next((windowSubject = new Subject()));
- }, noop, errorHandler));
- return function () {
- windowSubject === null || windowSubject === void 0 ? void 0 : windowSubject.unsubscribe();
- windowSubject = null;
- };
- });
- }
- function windowCount(windowSize, startWindowEvery) {
- if (startWindowEvery === void 0) { startWindowEvery = 0; }
- var startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize;
- return operate(function (source, subscriber) {
- var windows = [new Subject()];
- var count = 0;
- subscriber.next(windows[0].asObservable());
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var e_1, _a;
- try {
- for (var windows_1 = __values(windows), windows_1_1 = windows_1.next(); !windows_1_1.done; windows_1_1 = windows_1.next()) {
- var window_1 = windows_1_1.value;
- window_1.next(value);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (windows_1_1 && !windows_1_1.done && (_a = windows_1.return)) _a.call(windows_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- var c = count - windowSize + 1;
- if (c >= 0 && c % startEvery === 0) {
- windows.shift().complete();
- }
- if (++count % startEvery === 0) {
- var window_2 = new Subject();
- windows.push(window_2);
- subscriber.next(window_2.asObservable());
- }
- }, function () {
- while (windows.length > 0) {
- windows.shift().complete();
- }
- subscriber.complete();
- }, function (err) {
- while (windows.length > 0) {
- windows.shift().error(err);
- }
- subscriber.error(err);
- }, function () {
- windows = null;
- }));
- });
- }
- function windowTime(windowTimeSpan) {
- var _a, _b;
- var otherArgs = [];
- for (var _i = 1; _i < arguments.length; _i++) {
- otherArgs[_i - 1] = arguments[_i];
- }
- var scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;
- var windowCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;
- var maxWindowSize = otherArgs[1] || Infinity;
- return operate(function (source, subscriber) {
- var windowRecords = [];
- var restartOnClose = false;
- var closeWindow = function (record) {
- var window = record.window, subs = record.subs;
- window.complete();
- subs.unsubscribe();
- arrRemove(windowRecords, record);
- restartOnClose && startWindow();
- };
- var startWindow = function () {
- if (windowRecords) {
- var subs = new Subscription();
- subscriber.add(subs);
- var window_1 = new Subject();
- var record_1 = {
- window: window_1,
- subs: subs,
- seen: 0,
- };
- windowRecords.push(record_1);
- subscriber.next(window_1.asObservable());
- executeSchedule(subs, scheduler, function () { return closeWindow(record_1); }, windowTimeSpan);
- }
- };
- if (windowCreationInterval !== null && windowCreationInterval >= 0) {
- executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true);
- }
- else {
- restartOnClose = true;
- }
- startWindow();
- var loop = function (cb) { return windowRecords.slice().forEach(cb); };
- var terminate = function (cb) {
- loop(function (_a) {
- var window = _a.window;
- return cb(window);
- });
- cb(subscriber);
- subscriber.unsubscribe();
- };
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- loop(function (record) {
- record.window.next(value);
- maxWindowSize <= ++record.seen && closeWindow(record);
- });
- }, function () { return terminate(function (consumer) { return consumer.complete(); }); }, function (err) { return terminate(function (consumer) { return consumer.error(err); }); }));
- return function () {
- windowRecords = null;
- };
- });
- }
- function windowToggle(openings, closingSelector) {
- return operate(function (source, subscriber) {
- var windows = [];
- var handleError = function (err) {
- while (0 < windows.length) {
- windows.shift().error(err);
- }
- subscriber.error(err);
- };
- innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, function (openValue) {
- var window = new Subject();
- windows.push(window);
- var closingSubscription = new Subscription();
- var closeWindow = function () {
- arrRemove(windows, window);
- window.complete();
- closingSubscription.unsubscribe();
- };
- var closingNotifier;
- try {
- closingNotifier = innerFrom(closingSelector(openValue));
- }
- catch (err) {
- handleError(err);
- return;
- }
- subscriber.next(window.asObservable());
- closingSubscription.add(closingNotifier.subscribe(createOperatorSubscriber(subscriber, closeWindow, noop, handleError)));
- }, noop));
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- var e_1, _a;
- var windowsCopy = windows.slice();
- try {
- for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) {
- var window_1 = windowsCopy_1_1.value;
- window_1.next(value);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) _a.call(windowsCopy_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- }, function () {
- while (0 < windows.length) {
- windows.shift().complete();
- }
- subscriber.complete();
- }, handleError, function () {
- while (0 < windows.length) {
- windows.shift().unsubscribe();
- }
- }));
- });
- }
- function windowWhen(closingSelector) {
- return operate(function (source, subscriber) {
- var window;
- var closingSubscriber;
- var handleError = function (err) {
- window.error(err);
- subscriber.error(err);
- };
- var openWindow = function () {
- closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();
- window === null || window === void 0 ? void 0 : window.complete();
- window = new Subject();
- subscriber.next(window.asObservable());
- var closingNotifier;
- try {
- closingNotifier = innerFrom(closingSelector());
- }
- catch (err) {
- handleError(err);
- return;
- }
- closingNotifier.subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openWindow, openWindow, handleError)));
- };
- openWindow();
- source.subscribe(createOperatorSubscriber(subscriber, function (value) { return window.next(value); }, function () {
- window.complete();
- subscriber.complete();
- }, handleError, function () {
- closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();
- window = null;
- }));
- });
- }
- function withLatestFrom() {
- var inputs = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- inputs[_i] = arguments[_i];
- }
- var project = popResultSelector(inputs);
- return operate(function (source, subscriber) {
- var len = inputs.length;
- var otherValues = new Array(len);
- var hasValue = inputs.map(function () { return false; });
- var ready = false;
- var _loop_1 = function (i) {
- innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {
- otherValues[i] = value;
- if (!ready && !hasValue[i]) {
- hasValue[i] = true;
- (ready = hasValue.every(identity)) && (hasValue = null);
- }
- }, noop));
- };
- for (var i = 0; i < len; i++) {
- _loop_1(i);
- }
- source.subscribe(createOperatorSubscriber(subscriber, function (value) {
- if (ready) {
- var values = __spreadArray([value], __read(otherValues));
- subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values);
- }
- }));
- });
- }
- function zipAll(project) {
- return joinAllInternals(zip, project);
- }
- function zip$1() {
- var sources = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- sources[_i] = arguments[_i];
- }
- return operate(function (source, subscriber) {
- zip.apply(void 0, __spreadArray([source], __read(sources))).subscribe(subscriber);
- });
- }
- function zipWith() {
- var otherInputs = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- otherInputs[_i] = arguments[_i];
- }
- return zip$1.apply(void 0, __spreadArray([], __read(otherInputs)));
- }
- function partition$1(predicate, thisArg) {
- return function (source) {
- return [filter(predicate, thisArg)(source), filter(not(predicate, thisArg))(source)];
- };
- }
- function race$1() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return raceWith.apply(void 0, __spreadArray([], __read(argsOrArgArray(args))));
- }
- var _operators = /*#__PURE__*/Object.freeze({
- audit: audit,
- auditTime: auditTime,
- buffer: buffer,
- bufferCount: bufferCount,
- bufferTime: bufferTime,
- bufferToggle: bufferToggle,
- bufferWhen: bufferWhen,
- catchError: catchError,
- combineAll: combineAll,
- combineLatestAll: combineLatestAll,
- combineLatest: combineLatest$1,
- combineLatestWith: combineLatestWith,
- concat: concat$1,
- concatAll: concatAll,
- concatMap: concatMap,
- concatMapTo: concatMapTo,
- concatWith: concatWith,
- connect: connect,
- count: count,
- debounce: debounce,
- debounceTime: debounceTime,
- defaultIfEmpty: defaultIfEmpty,
- delay: delay,
- delayWhen: delayWhen,
- dematerialize: dematerialize,
- distinct: distinct,
- distinctUntilChanged: distinctUntilChanged,
- distinctUntilKeyChanged: distinctUntilKeyChanged,
- elementAt: elementAt,
- endWith: endWith,
- every: every,
- exhaust: exhaust,
- exhaustAll: exhaustAll,
- exhaustMap: exhaustMap,
- expand: expand,
- filter: filter,
- finalize: finalize,
- find: find,
- findIndex: findIndex,
- first: first,
- groupBy: groupBy,
- ignoreElements: ignoreElements,
- isEmpty: isEmpty,
- last: last$1,
- map: map,
- mapTo: mapTo,
- materialize: materialize,
- max: max,
- merge: merge$1,
- mergeAll: mergeAll,
- flatMap: flatMap,
- mergeMap: mergeMap,
- mergeMapTo: mergeMapTo,
- mergeScan: mergeScan,
- mergeWith: mergeWith,
- min: min,
- multicast: multicast,
- observeOn: observeOn,
- onErrorResumeNext: onErrorResumeNext$1,
- pairwise: pairwise,
- partition: partition$1,
- pluck: pluck,
- publish: publish,
- publishBehavior: publishBehavior,
- publishLast: publishLast,
- publishReplay: publishReplay,
- race: race$1,
- raceWith: raceWith,
- reduce: reduce,
- repeat: repeat,
- repeatWhen: repeatWhen,
- retry: retry,
- retryWhen: retryWhen,
- refCount: refCount,
- sample: sample,
- sampleTime: sampleTime,
- scan: scan,
- sequenceEqual: sequenceEqual,
- share: share,
- shareReplay: shareReplay,
- single: single,
- skip: skip,
- skipLast: skipLast,
- skipUntil: skipUntil,
- skipWhile: skipWhile,
- startWith: startWith,
- subscribeOn: subscribeOn,
- switchAll: switchAll,
- switchMap: switchMap,
- switchMapTo: switchMapTo,
- switchScan: switchScan,
- take: take,
- takeLast: takeLast,
- takeUntil: takeUntil,
- takeWhile: takeWhile,
- tap: tap,
- throttle: throttle,
- throttleTime: throttleTime,
- throwIfEmpty: throwIfEmpty,
- timeInterval: timeInterval,
- timeout: timeout,
- timeoutWith: timeoutWith,
- timestamp: timestamp,
- toArray: toArray,
- window: window,
- windowCount: windowCount,
- windowTime: windowTime,
- windowToggle: windowToggle,
- windowWhen: windowWhen,
- withLatestFrom: withLatestFrom,
- zip: zip$1,
- zipAll: zipAll,
- zipWith: zipWith
- });
- var SubscriptionLog = (function () {
- function SubscriptionLog(subscribedFrame, unsubscribedFrame) {
- if (unsubscribedFrame === void 0) { unsubscribedFrame = Infinity; }
- this.subscribedFrame = subscribedFrame;
- this.unsubscribedFrame = unsubscribedFrame;
- }
- return SubscriptionLog;
- }());
- var SubscriptionLoggable = (function () {
- function SubscriptionLoggable() {
- this.subscriptions = [];
- }
- SubscriptionLoggable.prototype.logSubscribedFrame = function () {
- this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));
- return this.subscriptions.length - 1;
- };
- SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {
- var subscriptionLogs = this.subscriptions;
- var oldSubscriptionLog = subscriptionLogs[index];
- subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());
- };
- return SubscriptionLoggable;
- }());
- function applyMixins(derivedCtor, baseCtors) {
- for (var i = 0, len = baseCtors.length; i < len; i++) {
- var baseCtor = baseCtors[i];
- var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);
- for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {
- var name_1 = propertyKeys[j];
- derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];
- }
- }
- }
- var ColdObservable = (function (_super) {
- __extends(ColdObservable, _super);
- function ColdObservable(messages, scheduler) {
- var _this = _super.call(this, function (subscriber) {
- var observable = this;
- var index = observable.logSubscribedFrame();
- var subscription = new Subscription();
- subscription.add(new Subscription(function () {
- observable.logUnsubscribedFrame(index);
- }));
- observable.scheduleMessages(subscriber);
- return subscription;
- }) || this;
- _this.messages = messages;
- _this.subscriptions = [];
- _this.scheduler = scheduler;
- return _this;
- }
- ColdObservable.prototype.scheduleMessages = function (subscriber) {
- var messagesLength = this.messages.length;
- for (var i = 0; i < messagesLength; i++) {
- var message = this.messages[i];
- subscriber.add(this.scheduler.schedule(function (state) {
- var _a = state, notification = _a.message.notification, destination = _a.subscriber;
- observeNotification(notification, destination);
- }, message.frame, { message: message, subscriber: subscriber }));
- }
- };
- return ColdObservable;
- }(Observable));
- applyMixins(ColdObservable, [SubscriptionLoggable]);
- var HotObservable = (function (_super) {
- __extends(HotObservable, _super);
- function HotObservable(messages, scheduler) {
- var _this = _super.call(this) || this;
- _this.messages = messages;
- _this.subscriptions = [];
- _this.scheduler = scheduler;
- return _this;
- }
- HotObservable.prototype._subscribe = function (subscriber) {
- var subject = this;
- var index = subject.logSubscribedFrame();
- var subscription = new Subscription();
- subscription.add(new Subscription(function () {
- subject.logUnsubscribedFrame(index);
- }));
- subscription.add(_super.prototype._subscribe.call(this, subscriber));
- return subscription;
- };
- HotObservable.prototype.setup = function () {
- var subject = this;
- var messagesLength = subject.messages.length;
- var _loop_1 = function (i) {
- (function () {
- var _a = subject.messages[i], notification = _a.notification, frame = _a.frame;
- subject.scheduler.schedule(function () {
- observeNotification(notification, subject);
- }, frame);
- })();
- };
- for (var i = 0; i < messagesLength; i++) {
- _loop_1(i);
- }
- };
- return HotObservable;
- }(Subject));
- applyMixins(HotObservable, [SubscriptionLoggable]);
- var defaultMaxFrame = 750;
- var TestScheduler = (function (_super) {
- __extends(TestScheduler, _super);
- function TestScheduler(assertDeepEqual) {
- var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;
- _this.assertDeepEqual = assertDeepEqual;
- _this.hotObservables = [];
- _this.coldObservables = [];
- _this.flushTests = [];
- _this.runMode = false;
- return _this;
- }
- TestScheduler.prototype.createTime = function (marbles) {
- var indexOf = this.runMode ? marbles.trim().indexOf('|') : marbles.indexOf('|');
- if (indexOf === -1) {
- throw new Error('marble diagram for time should have a completion marker "|"');
- }
- return indexOf * TestScheduler.frameTimeFactor;
- };
- TestScheduler.prototype.createColdObservable = function (marbles, values, error) {
- if (marbles.indexOf('^') !== -1) {
- throw new Error('cold observable cannot have subscription offset "^"');
- }
- if (marbles.indexOf('!') !== -1) {
- throw new Error('cold observable cannot have unsubscription marker "!"');
- }
- var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
- var cold = new ColdObservable(messages, this);
- this.coldObservables.push(cold);
- return cold;
- };
- TestScheduler.prototype.createHotObservable = function (marbles, values, error) {
- if (marbles.indexOf('!') !== -1) {
- throw new Error('hot observable cannot have unsubscription marker "!"');
- }
- var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);
- var subject = new HotObservable(messages, this);
- this.hotObservables.push(subject);
- return subject;
- };
- TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {
- var _this = this;
- var messages = [];
- observable.subscribe({
- next: function (value) {
- messages.push({ frame: _this.frame - outerFrame, notification: nextNotification(value) });
- },
- error: function (error) {
- messages.push({ frame: _this.frame - outerFrame, notification: errorNotification(error) });
- },
- complete: function () {
- messages.push({ frame: _this.frame - outerFrame, notification: COMPLETE_NOTIFICATION });
- },
- });
- return messages;
- };
- TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {
- var _this = this;
- if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }
- var actual = [];
- var flushTest = { actual: actual, ready: false };
- var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);
- var subscriptionFrame = subscriptionParsed.subscribedFrame === Infinity ? 0 : subscriptionParsed.subscribedFrame;
- var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;
- var subscription;
- this.schedule(function () {
- subscription = observable.subscribe({
- next: function (x) {
- var value = x instanceof Observable ? _this.materializeInnerObservable(x, _this.frame) : x;
- actual.push({ frame: _this.frame, notification: nextNotification(value) });
- },
- error: function (error) {
- actual.push({ frame: _this.frame, notification: errorNotification(error) });
- },
- complete: function () {
- actual.push({ frame: _this.frame, notification: COMPLETE_NOTIFICATION });
- },
- });
- }, subscriptionFrame);
- if (unsubscriptionFrame !== Infinity) {
- this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);
- }
- this.flushTests.push(flushTest);
- var runMode = this.runMode;
- return {
- toBe: function (marbles, values, errorValue) {
- flushTest.ready = true;
- flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);
- },
- toEqual: function (other) {
- flushTest.ready = true;
- flushTest.expected = [];
- _this.schedule(function () {
- subscription = other.subscribe({
- next: function (x) {
- var value = x instanceof Observable ? _this.materializeInnerObservable(x, _this.frame) : x;
- flushTest.expected.push({ frame: _this.frame, notification: nextNotification(value) });
- },
- error: function (error) {
- flushTest.expected.push({ frame: _this.frame, notification: errorNotification(error) });
- },
- complete: function () {
- flushTest.expected.push({ frame: _this.frame, notification: COMPLETE_NOTIFICATION });
- },
- });
- }, subscriptionFrame);
- },
- };
- };
- TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {
- var flushTest = { actual: actualSubscriptionLogs, ready: false };
- this.flushTests.push(flushTest);
- var runMode = this.runMode;
- return {
- toBe: function (marblesOrMarblesArray) {
- var marblesArray = typeof marblesOrMarblesArray === 'string' ? [marblesOrMarblesArray] : marblesOrMarblesArray;
- flushTest.ready = true;
- flushTest.expected = marblesArray
- .map(function (marbles) { return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode); })
- .filter(function (marbles) { return marbles.subscribedFrame !== Infinity; });
- },
- };
- };
- TestScheduler.prototype.flush = function () {
- var _this = this;
- var hotObservables = this.hotObservables;
- while (hotObservables.length > 0) {
- hotObservables.shift().setup();
- }
- _super.prototype.flush.call(this);
- this.flushTests = this.flushTests.filter(function (test) {
- if (test.ready) {
- _this.assertDeepEqual(test.actual, test.expected);
- return false;
- }
- return true;
- });
- };
- TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {
- var _this = this;
- if (runMode === void 0) { runMode = false; }
- if (typeof marbles !== 'string') {
- return new SubscriptionLog(Infinity);
- }
- var characters = __spreadArray([], __read(marbles));
- var len = characters.length;
- var groupStart = -1;
- var subscriptionFrame = Infinity;
- var unsubscriptionFrame = Infinity;
- var frame = 0;
- var _loop_1 = function (i) {
- var nextFrame = frame;
- var advanceFrameBy = function (count) {
- nextFrame += count * _this.frameTimeFactor;
- };
- var c = characters[i];
- switch (c) {
- case ' ':
- if (!runMode) {
- advanceFrameBy(1);
- }
- break;
- case '-':
- advanceFrameBy(1);
- break;
- case '(':
- groupStart = frame;
- advanceFrameBy(1);
- break;
- case ')':
- groupStart = -1;
- advanceFrameBy(1);
- break;
- case '^':
- if (subscriptionFrame !== Infinity) {
- throw new Error("found a second subscription point '^' in a " + 'subscription marble diagram. There can only be one.');
- }
- subscriptionFrame = groupStart > -1 ? groupStart : frame;
- advanceFrameBy(1);
- break;
- case '!':
- if (unsubscriptionFrame !== Infinity) {
- throw new Error("found a second unsubscription point '!' in a " + 'subscription marble diagram. There can only be one.');
- }
- unsubscriptionFrame = groupStart > -1 ? groupStart : frame;
- break;
- default:
- if (runMode && c.match(/^[0-9]$/)) {
- if (i === 0 || characters[i - 1] === ' ') {
- var buffer = characters.slice(i).join('');
- var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
- if (match) {
- i += match[0].length - 1;
- var duration = parseFloat(match[1]);
- var unit = match[2];
- var durationInMs = void 0;
- switch (unit) {
- case 'ms':
- durationInMs = duration;
- break;
- case 's':
- durationInMs = duration * 1000;
- break;
- case 'm':
- durationInMs = duration * 1000 * 60;
- break;
- default:
- break;
- }
- advanceFrameBy(durationInMs / this_1.frameTimeFactor);
- break;
- }
- }
- }
- throw new Error("there can only be '^' and '!' markers in a " + "subscription marble diagram. Found instead '" + c + "'.");
- }
- frame = nextFrame;
- out_i_1 = i;
- };
- var this_1 = this, out_i_1;
- for (var i = 0; i < len; i++) {
- _loop_1(i);
- i = out_i_1;
- }
- if (unsubscriptionFrame < 0) {
- return new SubscriptionLog(subscriptionFrame);
- }
- else {
- return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);
- }
- };
- TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {
- var _this = this;
- if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }
- if (runMode === void 0) { runMode = false; }
- if (marbles.indexOf('!') !== -1) {
- throw new Error('conventional marble diagrams cannot have the ' + 'unsubscription marker "!"');
- }
- var characters = __spreadArray([], __read(marbles));
- var len = characters.length;
- var testMessages = [];
- var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');
- var frame = subIndex === -1 ? 0 : subIndex * -this.frameTimeFactor;
- var getValue = typeof values !== 'object'
- ? function (x) { return x; }
- : function (x) {
- if (materializeInnerObservables && values[x] instanceof ColdObservable) {
- return values[x].messages;
- }
- return values[x];
- };
- var groupStart = -1;
- var _loop_2 = function (i) {
- var nextFrame = frame;
- var advanceFrameBy = function (count) {
- nextFrame += count * _this.frameTimeFactor;
- };
- var notification = void 0;
- var c = characters[i];
- switch (c) {
- case ' ':
- if (!runMode) {
- advanceFrameBy(1);
- }
- break;
- case '-':
- advanceFrameBy(1);
- break;
- case '(':
- groupStart = frame;
- advanceFrameBy(1);
- break;
- case ')':
- groupStart = -1;
- advanceFrameBy(1);
- break;
- case '|':
- notification = COMPLETE_NOTIFICATION;
- advanceFrameBy(1);
- break;
- case '^':
- advanceFrameBy(1);
- break;
- case '#':
- notification = errorNotification(errorValue || 'error');
- advanceFrameBy(1);
- break;
- default:
- if (runMode && c.match(/^[0-9]$/)) {
- if (i === 0 || characters[i - 1] === ' ') {
- var buffer = characters.slice(i).join('');
- var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);
- if (match) {
- i += match[0].length - 1;
- var duration = parseFloat(match[1]);
- var unit = match[2];
- var durationInMs = void 0;
- switch (unit) {
- case 'ms':
- durationInMs = duration;
- break;
- case 's':
- durationInMs = duration * 1000;
- break;
- case 'm':
- durationInMs = duration * 1000 * 60;
- break;
- default:
- break;
- }
- advanceFrameBy(durationInMs / this_2.frameTimeFactor);
- break;
- }
- }
- }
- notification = nextNotification(getValue(c));
- advanceFrameBy(1);
- break;
- }
- if (notification) {
- testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });
- }
- frame = nextFrame;
- out_i_2 = i;
- };
- var this_2 = this, out_i_2;
- for (var i = 0; i < len; i++) {
- _loop_2(i);
- i = out_i_2;
- }
- return testMessages;
- };
- TestScheduler.prototype.createAnimator = function () {
- var _this = this;
- if (!this.runMode) {
- throw new Error('animate() must only be used in run mode');
- }
- var lastHandle = 0;
- var map;
- var delegate = {
- requestAnimationFrame: function (callback) {
- if (!map) {
- throw new Error('animate() was not called within run()');
- }
- var handle = ++lastHandle;
- map.set(handle, callback);
- return handle;
- },
- cancelAnimationFrame: function (handle) {
- if (!map) {
- throw new Error('animate() was not called within run()');
- }
- map.delete(handle);
- },
- };
- var animate = function (marbles) {
- var e_1, _a;
- if (map) {
- throw new Error('animate() must not be called more than once within run()');
- }
- if (/[|#]/.test(marbles)) {
- throw new Error('animate() must not complete or error');
- }
- map = new Map();
- var messages = TestScheduler.parseMarbles(marbles, undefined, undefined, undefined, true);
- try {
- for (var messages_1 = __values(messages), messages_1_1 = messages_1.next(); !messages_1_1.done; messages_1_1 = messages_1.next()) {
- var message = messages_1_1.value;
- _this.schedule(function () {
- var e_2, _a;
- var now = _this.now();
- var callbacks = Array.from(map.values());
- map.clear();
- try {
- for (var callbacks_1 = (e_2 = void 0, __values(callbacks)), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) {
- var callback = callbacks_1_1.value;
- callback(now);
- }
- }
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
- finally {
- try {
- if (callbacks_1_1 && !callbacks_1_1.done && (_a = callbacks_1.return)) _a.call(callbacks_1);
- }
- finally { if (e_2) throw e_2.error; }
- }
- }, message.frame);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (messages_1_1 && !messages_1_1.done && (_a = messages_1.return)) _a.call(messages_1);
- }
- finally { if (e_1) throw e_1.error; }
- }
- };
- return { animate: animate, delegate: delegate };
- };
- TestScheduler.prototype.createDelegates = function () {
- var _this = this;
- var lastHandle = 0;
- var scheduleLookup = new Map();
- var run = function () {
- var now = _this.now();
- var scheduledRecords = Array.from(scheduleLookup.values());
- var scheduledRecordsDue = scheduledRecords.filter(function (_a) {
- var due = _a.due;
- return due <= now;
- });
- var dueImmediates = scheduledRecordsDue.filter(function (_a) {
- var type = _a.type;
- return type === 'immediate';
- });
- if (dueImmediates.length > 0) {
- var _a = dueImmediates[0], handle = _a.handle, handler = _a.handler;
- scheduleLookup.delete(handle);
- handler();
- return;
- }
- var dueIntervals = scheduledRecordsDue.filter(function (_a) {
- var type = _a.type;
- return type === 'interval';
- });
- if (dueIntervals.length > 0) {
- var firstDueInterval = dueIntervals[0];
- var duration = firstDueInterval.duration, handler = firstDueInterval.handler;
- firstDueInterval.due = now + duration;
- firstDueInterval.subscription = _this.schedule(run, duration);
- handler();
- return;
- }
- var dueTimeouts = scheduledRecordsDue.filter(function (_a) {
- var type = _a.type;
- return type === 'timeout';
- });
- if (dueTimeouts.length > 0) {
- var _b = dueTimeouts[0], handle = _b.handle, handler = _b.handler;
- scheduleLookup.delete(handle);
- handler();
- return;
- }
- throw new Error('Expected a due immediate or interval');
- };
- var immediate = {
- setImmediate: function (handler) {
- var handle = ++lastHandle;
- scheduleLookup.set(handle, {
- due: _this.now(),
- duration: 0,
- handle: handle,
- handler: handler,
- subscription: _this.schedule(run, 0),
- type: 'immediate',
- });
- return handle;
- },
- clearImmediate: function (handle) {
- var value = scheduleLookup.get(handle);
- if (value) {
- value.subscription.unsubscribe();
- scheduleLookup.delete(handle);
- }
- },
- };
- var interval = {
- setInterval: function (handler, duration) {
- if (duration === void 0) { duration = 0; }
- var handle = ++lastHandle;
- scheduleLookup.set(handle, {
- due: _this.now() + duration,
- duration: duration,
- handle: handle,
- handler: handler,
- subscription: _this.schedule(run, duration),
- type: 'interval',
- });
- return handle;
- },
- clearInterval: function (handle) {
- var value = scheduleLookup.get(handle);
- if (value) {
- value.subscription.unsubscribe();
- scheduleLookup.delete(handle);
- }
- },
- };
- var timeout = {
- setTimeout: function (handler, duration) {
- if (duration === void 0) { duration = 0; }
- var handle = ++lastHandle;
- scheduleLookup.set(handle, {
- due: _this.now() + duration,
- duration: duration,
- handle: handle,
- handler: handler,
- subscription: _this.schedule(run, duration),
- type: 'timeout',
- });
- return handle;
- },
- clearTimeout: function (handle) {
- var value = scheduleLookup.get(handle);
- if (value) {
- value.subscription.unsubscribe();
- scheduleLookup.delete(handle);
- }
- },
- };
- return { immediate: immediate, interval: interval, timeout: timeout };
- };
- TestScheduler.prototype.run = function (callback) {
- var prevFrameTimeFactor = TestScheduler.frameTimeFactor;
- var prevMaxFrames = this.maxFrames;
- TestScheduler.frameTimeFactor = 1;
- this.maxFrames = Infinity;
- this.runMode = true;
- var animator = this.createAnimator();
- var delegates = this.createDelegates();
- animationFrameProvider.delegate = animator.delegate;
- dateTimestampProvider.delegate = this;
- immediateProvider.delegate = delegates.immediate;
- intervalProvider.delegate = delegates.interval;
- timeoutProvider.delegate = delegates.timeout;
- performanceTimestampProvider.delegate = this;
- var helpers = {
- cold: this.createColdObservable.bind(this),
- hot: this.createHotObservable.bind(this),
- flush: this.flush.bind(this),
- time: this.createTime.bind(this),
- expectObservable: this.expectObservable.bind(this),
- expectSubscriptions: this.expectSubscriptions.bind(this),
- animate: animator.animate,
- };
- try {
- var ret = callback(helpers);
- this.flush();
- return ret;
- }
- finally {
- TestScheduler.frameTimeFactor = prevFrameTimeFactor;
- this.maxFrames = prevMaxFrames;
- this.runMode = false;
- animationFrameProvider.delegate = undefined;
- dateTimestampProvider.delegate = undefined;
- immediateProvider.delegate = undefined;
- intervalProvider.delegate = undefined;
- timeoutProvider.delegate = undefined;
- performanceTimestampProvider.delegate = undefined;
- }
- };
- TestScheduler.frameTimeFactor = 10;
- return TestScheduler;
- }(VirtualTimeScheduler));
- var _testing = /*#__PURE__*/Object.freeze({
- TestScheduler: TestScheduler
- });
- function getXHRResponse(xhr) {
- switch (xhr.responseType) {
- case 'json': {
- if ('response' in xhr) {
- return xhr.response;
- }
- else {
- var ieXHR = xhr;
- return JSON.parse(ieXHR.responseText);
- }
- }
- case 'document':
- return xhr.responseXML;
- case 'text':
- default: {
- if ('response' in xhr) {
- return xhr.response;
- }
- else {
- var ieXHR = xhr;
- return ieXHR.responseText;
- }
- }
- }
- }
- var AjaxResponse = (function () {
- function AjaxResponse(originalEvent, xhr, request, type) {
- if (type === void 0) { type = 'download_load'; }
- this.originalEvent = originalEvent;
- this.xhr = xhr;
- this.request = request;
- this.type = type;
- var status = xhr.status, responseType = xhr.responseType;
- this.status = status !== null && status !== void 0 ? status : 0;
- this.responseType = responseType !== null && responseType !== void 0 ? responseType : '';
- var allHeaders = xhr.getAllResponseHeaders();
- this.responseHeaders = allHeaders
- ?
- allHeaders.split('\n').reduce(function (headers, line) {
- var index = line.indexOf(': ');
- headers[line.slice(0, index)] = line.slice(index + 2);
- return headers;
- }, {})
- : {};
- this.response = getXHRResponse(xhr);
- var loaded = originalEvent.loaded, total = originalEvent.total;
- this.loaded = loaded;
- this.total = total;
- }
- return AjaxResponse;
- }());
- var AjaxError = createErrorClass(function (_super) {
- return function AjaxErrorImpl(message, xhr, request) {
- this.message = message;
- this.name = 'AjaxError';
- this.xhr = xhr;
- this.request = request;
- this.status = xhr.status;
- this.responseType = xhr.responseType;
- var response;
- try {
- response = getXHRResponse(xhr);
- }
- catch (err) {
- response = xhr.responseText;
- }
- this.response = response;
- };
- });
- var AjaxTimeoutError = (function () {
- function AjaxTimeoutErrorImpl(xhr, request) {
- AjaxError.call(this, 'ajax timeout', xhr, request);
- this.name = 'AjaxTimeoutError';
- return this;
- }
- AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);
- return AjaxTimeoutErrorImpl;
- })();
- function ajaxGet(url, headers) {
- return ajax({ method: 'GET', url: url, headers: headers });
- }
- function ajaxPost(url, body, headers) {
- return ajax({ method: 'POST', url: url, body: body, headers: headers });
- }
- function ajaxDelete(url, headers) {
- return ajax({ method: 'DELETE', url: url, headers: headers });
- }
- function ajaxPut(url, body, headers) {
- return ajax({ method: 'PUT', url: url, body: body, headers: headers });
- }
- function ajaxPatch(url, body, headers) {
- return ajax({ method: 'PATCH', url: url, body: body, headers: headers });
- }
- var mapResponse = map(function (x) { return x.response; });
- function ajaxGetJSON(url, headers) {
- return mapResponse(ajax({
- method: 'GET',
- url: url,
- headers: headers,
- }));
- }
- var ajax = (function () {
- var create = function (urlOrConfig) {
- var config = typeof urlOrConfig === 'string'
- ? {
- url: urlOrConfig,
- }
- : urlOrConfig;
- return fromAjax(config);
- };
- create.get = ajaxGet;
- create.post = ajaxPost;
- create.delete = ajaxDelete;
- create.put = ajaxPut;
- create.patch = ajaxPatch;
- create.getJSON = ajaxGetJSON;
- return create;
- })();
- var UPLOAD = 'upload';
- var DOWNLOAD = 'download';
- var LOADSTART = 'loadstart';
- var PROGRESS = 'progress';
- var LOAD = 'load';
- function fromAjax(init) {
- return new Observable(function (destination) {
- var _a, _b;
- var config = __assign({ async: true, crossDomain: false, withCredentials: false, method: 'GET', timeout: 0, responseType: 'json' }, init);
- var queryParams = config.queryParams, configuredBody = config.body, configuredHeaders = config.headers;
- var url = config.url;
- if (!url) {
- throw new TypeError('url is required');
- }
- if (queryParams) {
- var searchParams_1;
- if (url.includes('?')) {
- var parts = url.split('?');
- if (2 < parts.length) {
- throw new TypeError('invalid url');
- }
- searchParams_1 = new URLSearchParams(parts[1]);
- new URLSearchParams(queryParams).forEach(function (value, key) { return searchParams_1.set(key, value); });
- url = parts[0] + '?' + searchParams_1;
- }
- else {
- searchParams_1 = new URLSearchParams(queryParams);
- url = url + '?' + searchParams_1;
- }
- }
- var headers = {};
- if (configuredHeaders) {
- for (var key in configuredHeaders) {
- if (configuredHeaders.hasOwnProperty(key)) {
- headers[key.toLowerCase()] = configuredHeaders[key];
- }
- }
- }
- var crossDomain = config.crossDomain;
- if (!crossDomain && !('x-requested-with' in headers)) {
- headers['x-requested-with'] = 'XMLHttpRequest';
- }
- var withCredentials = config.withCredentials, xsrfCookieName = config.xsrfCookieName, xsrfHeaderName = config.xsrfHeaderName;
- if ((withCredentials || !crossDomain) && xsrfCookieName && xsrfHeaderName) {
- var xsrfCookie = (_b = (_a = document === null || document === void 0 ? void 0 : document.cookie.match(new RegExp("(^|;\\s*)(" + xsrfCookieName + ")=([^;]*)"))) === null || _a === void 0 ? void 0 : _a.pop()) !== null && _b !== void 0 ? _b : '';
- if (xsrfCookie) {
- headers[xsrfHeaderName] = xsrfCookie;
- }
- }
- var body = extractContentTypeAndMaybeSerializeBody(configuredBody, headers);
- var _request = __assign(__assign({}, config), { url: url,
- headers: headers,
- body: body });
- var xhr;
- xhr = init.createXHR ? init.createXHR() : new XMLHttpRequest();
- {
- var progressSubscriber_1 = init.progressSubscriber, _c = init.includeDownloadProgress, includeDownloadProgress = _c === void 0 ? false : _c, _d = init.includeUploadProgress, includeUploadProgress = _d === void 0 ? false : _d;
- var addErrorEvent = function (type, errorFactory) {
- xhr.addEventListener(type, function () {
- var _a;
- var error = errorFactory();
- (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, error);
- destination.error(error);
- });
- };
- addErrorEvent('timeout', function () { return new AjaxTimeoutError(xhr, _request); });
- addErrorEvent('abort', function () { return new AjaxError('aborted', xhr, _request); });
- var createResponse_1 = function (direction, event) {
- return new AjaxResponse(event, xhr, _request, direction + "_" + event.type);
- };
- var addProgressEvent_1 = function (target, type, direction) {
- target.addEventListener(type, function (event) {
- destination.next(createResponse_1(direction, event));
- });
- };
- if (includeUploadProgress) {
- [LOADSTART, PROGRESS, LOAD].forEach(function (type) { return addProgressEvent_1(xhr.upload, type, UPLOAD); });
- }
- if (progressSubscriber_1) {
- [LOADSTART, PROGRESS].forEach(function (type) { return xhr.upload.addEventListener(type, function (e) { var _a; return (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.next) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, e); }); });
- }
- if (includeDownloadProgress) {
- [LOADSTART, PROGRESS].forEach(function (type) { return addProgressEvent_1(xhr, type, DOWNLOAD); });
- }
- var emitError_1 = function (status) {
- var msg = 'ajax error' + (status ? ' ' + status : '');
- destination.error(new AjaxError(msg, xhr, _request));
- };
- xhr.addEventListener('error', function (e) {
- var _a;
- (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1, e);
- emitError_1();
- });
- xhr.addEventListener(LOAD, function (event) {
- var _a, _b;
- var status = xhr.status;
- if (status < 400) {
- (_a = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.complete) === null || _a === void 0 ? void 0 : _a.call(progressSubscriber_1);
- var response = void 0;
- try {
- response = createResponse_1(DOWNLOAD, event);
- }
- catch (err) {
- destination.error(err);
- return;
- }
- destination.next(response);
- destination.complete();
- }
- else {
- (_b = progressSubscriber_1 === null || progressSubscriber_1 === void 0 ? void 0 : progressSubscriber_1.error) === null || _b === void 0 ? void 0 : _b.call(progressSubscriber_1, event);
- emitError_1(status);
- }
- });
- }
- var user = _request.user, method = _request.method, async = _request.async;
- if (user) {
- xhr.open(method, url, async, user, _request.password);
- }
- else {
- xhr.open(method, url, async);
- }
- if (async) {
- xhr.timeout = _request.timeout;
- xhr.responseType = _request.responseType;
- }
- if ('withCredentials' in xhr) {
- xhr.withCredentials = _request.withCredentials;
- }
- for (var key in headers) {
- if (headers.hasOwnProperty(key)) {
- xhr.setRequestHeader(key, headers[key]);
- }
- }
- if (body) {
- xhr.send(body);
- }
- else {
- xhr.send();
- }
- return function () {
- if (xhr && xhr.readyState !== 4) {
- xhr.abort();
- }
- };
- });
- }
- function extractContentTypeAndMaybeSerializeBody(body, headers) {
- var _a;
- if (!body ||
- typeof body === 'string' ||
- isFormData(body) ||
- isURLSearchParams(body) ||
- isArrayBuffer(body) ||
- isFile(body) ||
- isBlob(body) ||
- isReadableStream(body)) {
- return body;
- }
- if (isArrayBufferView(body)) {
- return body.buffer;
- }
- if (typeof body === 'object') {
- headers['content-type'] = (_a = headers['content-type']) !== null && _a !== void 0 ? _a : 'application/json;charset=utf-8';
- return JSON.stringify(body);
- }
- throw new TypeError('Unknown body type');
- }
- var _toString = Object.prototype.toString;
- function toStringCheck(obj, name) {
- return _toString.call(obj) === "[object " + name + "]";
- }
- function isArrayBuffer(body) {
- return toStringCheck(body, 'ArrayBuffer');
- }
- function isFile(body) {
- return toStringCheck(body, 'File');
- }
- function isBlob(body) {
- return toStringCheck(body, 'Blob');
- }
- function isArrayBufferView(body) {
- return typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(body);
- }
- function isFormData(body) {
- return typeof FormData !== 'undefined' && body instanceof FormData;
- }
- function isURLSearchParams(body) {
- return typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams;
- }
- function isReadableStream(body) {
- return typeof ReadableStream !== 'undefined' && body instanceof ReadableStream;
- }
- var _ajax = /*#__PURE__*/Object.freeze({
- ajax: ajax,
- AjaxError: AjaxError,
- AjaxTimeoutError: AjaxTimeoutError,
- AjaxResponse: AjaxResponse
- });
- var DEFAULT_WEBSOCKET_CONFIG = {
- url: '',
- deserializer: function (e) { return JSON.parse(e.data); },
- serializer: function (value) { return JSON.stringify(value); },
- };
- var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';
- var WebSocketSubject = (function (_super) {
- __extends(WebSocketSubject, _super);
- function WebSocketSubject(urlConfigOrSource, destination) {
- var _this = _super.call(this) || this;
- _this._socket = null;
- if (urlConfigOrSource instanceof Observable) {
- _this.destination = destination;
- _this.source = urlConfigOrSource;
- }
- else {
- var config = (_this._config = __assign({}, DEFAULT_WEBSOCKET_CONFIG));
- _this._output = new Subject();
- if (typeof urlConfigOrSource === 'string') {
- config.url = urlConfigOrSource;
- }
- else {
- for (var key in urlConfigOrSource) {
- if (urlConfigOrSource.hasOwnProperty(key)) {
- config[key] = urlConfigOrSource[key];
- }
- }
- }
- if (!config.WebSocketCtor && WebSocket) {
- config.WebSocketCtor = WebSocket;
- }
- else if (!config.WebSocketCtor) {
- throw new Error('no WebSocket constructor can be found');
- }
- _this.destination = new ReplaySubject();
- }
- return _this;
- }
- WebSocketSubject.prototype.lift = function (operator) {
- var sock = new WebSocketSubject(this._config, this.destination);
- sock.operator = operator;
- sock.source = this;
- return sock;
- };
- WebSocketSubject.prototype._resetState = function () {
- this._socket = null;
- if (!this.source) {
- this.destination = new ReplaySubject();
- }
- this._output = new Subject();
- };
- WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {
- var self = this;
- return new Observable(function (observer) {
- try {
- self.next(subMsg());
- }
- catch (err) {
- observer.error(err);
- }
- var subscription = self.subscribe({
- next: function (x) {
- try {
- if (messageFilter(x)) {
- observer.next(x);
- }
- }
- catch (err) {
- observer.error(err);
- }
- },
- error: function (err) { return observer.error(err); },
- complete: function () { return observer.complete(); },
- });
- return function () {
- try {
- self.next(unsubMsg());
- }
- catch (err) {
- observer.error(err);
- }
- subscription.unsubscribe();
- };
- });
- };
- WebSocketSubject.prototype._connectSocket = function () {
- var _this = this;
- var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;
- var observer = this._output;
- var socket = null;
- try {
- socket = protocol ? new WebSocketCtor(url, protocol) : new WebSocketCtor(url);
- this._socket = socket;
- if (binaryType) {
- this._socket.binaryType = binaryType;
- }
- }
- catch (e) {
- observer.error(e);
- return;
- }
- var subscription = new Subscription(function () {
- _this._socket = null;
- if (socket && socket.readyState === 1) {
- socket.close();
- }
- });
- socket.onopen = function (evt) {
- var _socket = _this._socket;
- if (!_socket) {
- socket.close();
- _this._resetState();
- return;
- }
- var openObserver = _this._config.openObserver;
- if (openObserver) {
- openObserver.next(evt);
- }
- var queue = _this.destination;
- _this.destination = Subscriber.create(function (x) {
- if (socket.readyState === 1) {
- try {
- var serializer = _this._config.serializer;
- socket.send(serializer(x));
- }
- catch (e) {
- _this.destination.error(e);
- }
- }
- }, function (err) {
- var closingObserver = _this._config.closingObserver;
- if (closingObserver) {
- closingObserver.next(undefined);
- }
- if (err && err.code) {
- socket.close(err.code, err.reason);
- }
- else {
- observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));
- }
- _this._resetState();
- }, function () {
- var closingObserver = _this._config.closingObserver;
- if (closingObserver) {
- closingObserver.next(undefined);
- }
- socket.close();
- _this._resetState();
- });
- if (queue && queue instanceof ReplaySubject) {
- subscription.add(queue.subscribe(_this.destination));
- }
- };
- socket.onerror = function (e) {
- _this._resetState();
- observer.error(e);
- };
- socket.onclose = function (e) {
- if (socket === _this._socket) {
- _this._resetState();
- }
- var closeObserver = _this._config.closeObserver;
- if (closeObserver) {
- closeObserver.next(e);
- }
- if (e.wasClean) {
- observer.complete();
- }
- else {
- observer.error(e);
- }
- };
- socket.onmessage = function (e) {
- try {
- var deserializer = _this._config.deserializer;
- observer.next(deserializer(e));
- }
- catch (err) {
- observer.error(err);
- }
- };
- };
- WebSocketSubject.prototype._subscribe = function (subscriber) {
- var _this = this;
- var source = this.source;
- if (source) {
- return source.subscribe(subscriber);
- }
- if (!this._socket) {
- this._connectSocket();
- }
- this._output.subscribe(subscriber);
- subscriber.add(function () {
- var _socket = _this._socket;
- if (_this._output.observers.length === 0) {
- if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) {
- _socket.close();
- }
- _this._resetState();
- }
- });
- return subscriber;
- };
- WebSocketSubject.prototype.unsubscribe = function () {
- var _socket = this._socket;
- if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) {
- _socket.close();
- }
- this._resetState();
- _super.prototype.unsubscribe.call(this);
- };
- return WebSocketSubject;
- }(AnonymousSubject));
- function webSocket(urlConfigOrSource) {
- return new WebSocketSubject(urlConfigOrSource);
- }
- var _webSocket = /*#__PURE__*/Object.freeze({
- webSocket: webSocket,
- WebSocketSubject: WebSocketSubject
- });
- function fromFetch(input, initWithSelector) {
- if (initWithSelector === void 0) { initWithSelector = {}; }
- var selector = initWithSelector.selector, init = __rest(initWithSelector, ["selector"]);
- return new Observable(function (subscriber) {
- var controller = new AbortController();
- var signal = controller.signal;
- var abortable = true;
- var outerSignal = init.signal;
- if (outerSignal) {
- if (outerSignal.aborted) {
- controller.abort();
- }
- else {
- var outerSignalHandler_1 = function () {
- if (!signal.aborted) {
- controller.abort();
- }
- };
- outerSignal.addEventListener('abort', outerSignalHandler_1);
- subscriber.add(function () { return outerSignal.removeEventListener('abort', outerSignalHandler_1); });
- }
- }
- var perSubscriberInit = __assign(__assign({}, init), { signal: signal });
- var handleError = function (err) {
- abortable = false;
- subscriber.error(err);
- };
- fetch(input, perSubscriberInit)
- .then(function (response) {
- if (selector) {
- innerFrom(selector(response)).subscribe(createOperatorSubscriber(subscriber, undefined, function () {
- abortable = false;
- subscriber.complete();
- }, handleError));
- }
- else {
- abortable = false;
- subscriber.next(response);
- subscriber.complete();
- }
- })
- .catch(handleError);
- return function () {
- if (abortable) {
- controller.abort();
- }
- };
- });
- }
- var _fetch = /*#__PURE__*/Object.freeze({
- fromFetch: fromFetch
- });
- var operators = _operators;
- var testing = _testing;
- var ajax$1 = _ajax;
- var webSocket$1 = _webSocket;
- var fetch$1 = _fetch;
- exports.operators = operators;
- exports.testing = testing;
- exports.ajax = ajax$1;
- exports.webSocket = webSocket$1;
- exports.fetch = fetch$1;
- exports.Observable = Observable;
- exports.ConnectableObservable = ConnectableObservable;
- exports.observable = observable;
- exports.animationFrames = animationFrames;
- exports.Subject = Subject;
- exports.BehaviorSubject = BehaviorSubject;
- exports.ReplaySubject = ReplaySubject;
- exports.AsyncSubject = AsyncSubject;
- exports.asap = asap;
- exports.asapScheduler = asapScheduler;
- exports.async = async;
- exports.asyncScheduler = asyncScheduler;
- exports.queue = queue;
- exports.queueScheduler = queueScheduler;
- exports.animationFrame = animationFrame;
- exports.animationFrameScheduler = animationFrameScheduler;
- exports.VirtualTimeScheduler = VirtualTimeScheduler;
- exports.VirtualAction = VirtualAction;
- exports.Scheduler = Scheduler;
- exports.Subscription = Subscription;
- exports.Subscriber = Subscriber;
- exports.Notification = Notification;
- exports.pipe = pipe;
- exports.noop = noop;
- exports.identity = identity;
- exports.isObservable = isObservable;
- exports.lastValueFrom = lastValueFrom;
- exports.firstValueFrom = firstValueFrom;
- exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;
- exports.EmptyError = EmptyError;
- exports.NotFoundError = NotFoundError;
- exports.ObjectUnsubscribedError = ObjectUnsubscribedError;
- exports.SequenceError = SequenceError;
- exports.TimeoutError = TimeoutError;
- exports.UnsubscriptionError = UnsubscriptionError;
- exports.bindCallback = bindCallback;
- exports.bindNodeCallback = bindNodeCallback;
- exports.combineLatest = combineLatest;
- exports.concat = concat;
- exports.connectable = connectable;
- exports.defer = defer;
- exports.empty = empty;
- exports.forkJoin = forkJoin;
- exports.from = from;
- exports.fromEvent = fromEvent;
- exports.fromEventPattern = fromEventPattern;
- exports.generate = generate;
- exports.iif = iif;
- exports.interval = interval;
- exports.merge = merge;
- exports.never = never;
- exports.of = of;
- exports.onErrorResumeNext = onErrorResumeNext;
- exports.pairs = pairs;
- exports.partition = partition;
- exports.race = race;
- exports.range = range;
- exports.throwError = throwError;
- exports.timer = timer;
- exports.using = using;
- exports.zip = zip;
- exports.scheduled = scheduled;
- exports.EMPTY = EMPTY;
- exports.NEVER = NEVER;
- exports.config = config;
- exports.audit = audit;
- exports.auditTime = auditTime;
- exports.buffer = buffer;
- exports.bufferCount = bufferCount;
- exports.bufferTime = bufferTime;
- exports.bufferToggle = bufferToggle;
- exports.bufferWhen = bufferWhen;
- exports.catchError = catchError;
- exports.combineAll = combineAll;
- exports.combineLatestAll = combineLatestAll;
- exports.combineLatestWith = combineLatestWith;
- exports.concatAll = concatAll;
- exports.concatMap = concatMap;
- exports.concatMapTo = concatMapTo;
- exports.concatWith = concatWith;
- exports.connect = connect;
- exports.count = count;
- exports.debounce = debounce;
- exports.debounceTime = debounceTime;
- exports.defaultIfEmpty = defaultIfEmpty;
- exports.delay = delay;
- exports.delayWhen = delayWhen;
- exports.dematerialize = dematerialize;
- exports.distinct = distinct;
- exports.distinctUntilChanged = distinctUntilChanged;
- exports.distinctUntilKeyChanged = distinctUntilKeyChanged;
- exports.elementAt = elementAt;
- exports.endWith = endWith;
- exports.every = every;
- exports.exhaust = exhaust;
- exports.exhaustAll = exhaustAll;
- exports.exhaustMap = exhaustMap;
- exports.expand = expand;
- exports.filter = filter;
- exports.finalize = finalize;
- exports.find = find;
- exports.findIndex = findIndex;
- exports.first = first;
- exports.groupBy = groupBy;
- exports.ignoreElements = ignoreElements;
- exports.isEmpty = isEmpty;
- exports.last = last$1;
- exports.map = map;
- exports.mapTo = mapTo;
- exports.materialize = materialize;
- exports.max = max;
- exports.mergeAll = mergeAll;
- exports.flatMap = flatMap;
- exports.mergeMap = mergeMap;
- exports.mergeMapTo = mergeMapTo;
- exports.mergeScan = mergeScan;
- exports.mergeWith = mergeWith;
- exports.min = min;
- exports.multicast = multicast;
- exports.observeOn = observeOn;
- exports.onErrorResumeNextWith = onErrorResumeNextWith;
- exports.pairwise = pairwise;
- exports.pluck = pluck;
- exports.publish = publish;
- exports.publishBehavior = publishBehavior;
- exports.publishLast = publishLast;
- exports.publishReplay = publishReplay;
- exports.raceWith = raceWith;
- exports.reduce = reduce;
- exports.repeat = repeat;
- exports.repeatWhen = repeatWhen;
- exports.retry = retry;
- exports.retryWhen = retryWhen;
- exports.refCount = refCount;
- exports.sample = sample;
- exports.sampleTime = sampleTime;
- exports.scan = scan;
- exports.sequenceEqual = sequenceEqual;
- exports.share = share;
- exports.shareReplay = shareReplay;
- exports.single = single;
- exports.skip = skip;
- exports.skipLast = skipLast;
- exports.skipUntil = skipUntil;
- exports.skipWhile = skipWhile;
- exports.startWith = startWith;
- exports.subscribeOn = subscribeOn;
- exports.switchAll = switchAll;
- exports.switchMap = switchMap;
- exports.switchMapTo = switchMapTo;
- exports.switchScan = switchScan;
- exports.take = take;
- exports.takeLast = takeLast;
- exports.takeUntil = takeUntil;
- exports.takeWhile = takeWhile;
- exports.tap = tap;
- exports.throttle = throttle;
- exports.throttleTime = throttleTime;
- exports.throwIfEmpty = throwIfEmpty;
- exports.timeInterval = timeInterval;
- exports.timeout = timeout;
- exports.timeoutWith = timeoutWith;
- exports.timestamp = timestamp;
- exports.toArray = toArray;
- exports.window = window;
- exports.windowCount = windowCount;
- exports.windowTime = windowTime;
- exports.windowToggle = windowToggle;
- exports.windowWhen = windowWhen;
- exports.withLatestFrom = withLatestFrom;
- exports.zipAll = zipAll;
- exports.zipWith = zipWith;
- Object.defineProperty(exports, '__esModule', { value: true });
- })));
- //# sourceMappingURL=rxjs.umd.js.map
|