moment-with-locales.js 462 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289
  1. ;(function (global, factory) {
  2. typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  3. typeof define === 'function' && define.amd ? define(factory) :
  4. global.moment = factory()
  5. }(this, (function () { 'use strict';
  6. var hookCallback;
  7. function hooks () {
  8. return hookCallback.apply(null, arguments);
  9. }
  10. // This is done to register the method called with moment()
  11. // without creating circular dependencies.
  12. function setHookCallback (callback) {
  13. hookCallback = callback;
  14. }
  15. function isArray(input) {
  16. return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
  17. }
  18. function isObject(input) {
  19. // IE8 will treat undefined and null as object if it wasn't for
  20. // input != null
  21. return input != null && Object.prototype.toString.call(input) === '[object Object]';
  22. }
  23. function isObjectEmpty(obj) {
  24. if (Object.getOwnPropertyNames) {
  25. return (Object.getOwnPropertyNames(obj).length === 0);
  26. } else {
  27. var k;
  28. for (k in obj) {
  29. if (obj.hasOwnProperty(k)) {
  30. return false;
  31. }
  32. }
  33. return true;
  34. }
  35. }
  36. function isUndefined(input) {
  37. return input === void 0;
  38. }
  39. function isNumber(input) {
  40. return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
  41. }
  42. function isDate(input) {
  43. return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
  44. }
  45. function map(arr, fn) {
  46. var res = [], i;
  47. for (i = 0; i < arr.length; ++i) {
  48. res.push(fn(arr[i], i));
  49. }
  50. return res;
  51. }
  52. function hasOwnProp(a, b) {
  53. return Object.prototype.hasOwnProperty.call(a, b);
  54. }
  55. function extend(a, b) {
  56. for (var i in b) {
  57. if (hasOwnProp(b, i)) {
  58. a[i] = b[i];
  59. }
  60. }
  61. if (hasOwnProp(b, 'toString')) {
  62. a.toString = b.toString;
  63. }
  64. if (hasOwnProp(b, 'valueOf')) {
  65. a.valueOf = b.valueOf;
  66. }
  67. return a;
  68. }
  69. function createUTC (input, format, locale, strict) {
  70. return createLocalOrUTC(input, format, locale, strict, true).utc();
  71. }
  72. function defaultParsingFlags() {
  73. // We need to deep clone this object.
  74. return {
  75. empty : false,
  76. unusedTokens : [],
  77. unusedInput : [],
  78. overflow : -2,
  79. charsLeftOver : 0,
  80. nullInput : false,
  81. invalidMonth : null,
  82. invalidFormat : false,
  83. userInvalidated : false,
  84. iso : false,
  85. parsedDateParts : [],
  86. meridiem : null,
  87. rfc2822 : false,
  88. weekdayMismatch : false
  89. };
  90. }
  91. function getParsingFlags(m) {
  92. if (m._pf == null) {
  93. m._pf = defaultParsingFlags();
  94. }
  95. return m._pf;
  96. }
  97. var some;
  98. if (Array.prototype.some) {
  99. some = Array.prototype.some;
  100. } else {
  101. some = function (fun) {
  102. var t = Object(this);
  103. var len = t.length >>> 0;
  104. for (var i = 0; i < len; i++) {
  105. if (i in t && fun.call(this, t[i], i, t)) {
  106. return true;
  107. }
  108. }
  109. return false;
  110. };
  111. }
  112. function isValid(m) {
  113. if (m._isValid == null) {
  114. var flags = getParsingFlags(m);
  115. var parsedParts = some.call(flags.parsedDateParts, function (i) {
  116. return i != null;
  117. });
  118. var isNowValid = !isNaN(m._d.getTime()) &&
  119. flags.overflow < 0 &&
  120. !flags.empty &&
  121. !flags.invalidMonth &&
  122. !flags.invalidWeekday &&
  123. !flags.weekdayMismatch &&
  124. !flags.nullInput &&
  125. !flags.invalidFormat &&
  126. !flags.userInvalidated &&
  127. (!flags.meridiem || (flags.meridiem && parsedParts));
  128. if (m._strict) {
  129. isNowValid = isNowValid &&
  130. flags.charsLeftOver === 0 &&
  131. flags.unusedTokens.length === 0 &&
  132. flags.bigHour === undefined;
  133. }
  134. if (Object.isFrozen == null || !Object.isFrozen(m)) {
  135. m._isValid = isNowValid;
  136. }
  137. else {
  138. return isNowValid;
  139. }
  140. }
  141. return m._isValid;
  142. }
  143. function createInvalid (flags) {
  144. var m = createUTC(NaN);
  145. if (flags != null) {
  146. extend(getParsingFlags(m), flags);
  147. }
  148. else {
  149. getParsingFlags(m).userInvalidated = true;
  150. }
  151. return m;
  152. }
  153. // Plugins that add properties should also add the key here (null value),
  154. // so we can properly clone ourselves.
  155. var momentProperties = hooks.momentProperties = [];
  156. function copyConfig(to, from) {
  157. var i, prop, val;
  158. if (!isUndefined(from._isAMomentObject)) {
  159. to._isAMomentObject = from._isAMomentObject;
  160. }
  161. if (!isUndefined(from._i)) {
  162. to._i = from._i;
  163. }
  164. if (!isUndefined(from._f)) {
  165. to._f = from._f;
  166. }
  167. if (!isUndefined(from._l)) {
  168. to._l = from._l;
  169. }
  170. if (!isUndefined(from._strict)) {
  171. to._strict = from._strict;
  172. }
  173. if (!isUndefined(from._tzm)) {
  174. to._tzm = from._tzm;
  175. }
  176. if (!isUndefined(from._isUTC)) {
  177. to._isUTC = from._isUTC;
  178. }
  179. if (!isUndefined(from._offset)) {
  180. to._offset = from._offset;
  181. }
  182. if (!isUndefined(from._pf)) {
  183. to._pf = getParsingFlags(from);
  184. }
  185. if (!isUndefined(from._locale)) {
  186. to._locale = from._locale;
  187. }
  188. if (momentProperties.length > 0) {
  189. for (i = 0; i < momentProperties.length; i++) {
  190. prop = momentProperties[i];
  191. val = from[prop];
  192. if (!isUndefined(val)) {
  193. to[prop] = val;
  194. }
  195. }
  196. }
  197. return to;
  198. }
  199. var updateInProgress = false;
  200. // Moment prototype object
  201. function Moment(config) {
  202. copyConfig(this, config);
  203. this._d = new Date(config._d != null ? config._d.getTime() : NaN);
  204. if (!this.isValid()) {
  205. this._d = new Date(NaN);
  206. }
  207. // Prevent infinite loop in case updateOffset creates new moment
  208. // objects.
  209. if (updateInProgress === false) {
  210. updateInProgress = true;
  211. hooks.updateOffset(this);
  212. updateInProgress = false;
  213. }
  214. }
  215. function isMoment (obj) {
  216. return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
  217. }
  218. function absFloor (number) {
  219. if (number < 0) {
  220. // -0 -> 0
  221. return Math.ceil(number) || 0;
  222. } else {
  223. return Math.floor(number);
  224. }
  225. }
  226. function toInt(argumentForCoercion) {
  227. var coercedNumber = +argumentForCoercion,
  228. value = 0;
  229. if (coercedNumber !== 0 && isFinite(coercedNumber)) {
  230. value = absFloor(coercedNumber);
  231. }
  232. return value;
  233. }
  234. // compare two arrays, return the number of differences
  235. function compareArrays(array1, array2, dontConvert) {
  236. var len = Math.min(array1.length, array2.length),
  237. lengthDiff = Math.abs(array1.length - array2.length),
  238. diffs = 0,
  239. i;
  240. for (i = 0; i < len; i++) {
  241. if ((dontConvert && array1[i] !== array2[i]) ||
  242. (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
  243. diffs++;
  244. }
  245. }
  246. return diffs + lengthDiff;
  247. }
  248. function warn(msg) {
  249. if (hooks.suppressDeprecationWarnings === false &&
  250. (typeof console !== 'undefined') && console.warn) {
  251. console.warn('Deprecation warning: ' + msg);
  252. }
  253. }
  254. function deprecate(msg, fn) {
  255. var firstTime = true;
  256. return extend(function () {
  257. if (hooks.deprecationHandler != null) {
  258. hooks.deprecationHandler(null, msg);
  259. }
  260. if (firstTime) {
  261. var args = [];
  262. var arg;
  263. for (var i = 0; i < arguments.length; i++) {
  264. arg = '';
  265. if (typeof arguments[i] === 'object') {
  266. arg += '\n[' + i + '] ';
  267. for (var key in arguments[0]) {
  268. arg += key + ': ' + arguments[0][key] + ', ';
  269. }
  270. arg = arg.slice(0, -2); // Remove trailing comma and space
  271. } else {
  272. arg = arguments[i];
  273. }
  274. args.push(arg);
  275. }
  276. warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
  277. firstTime = false;
  278. }
  279. return fn.apply(this, arguments);
  280. }, fn);
  281. }
  282. var deprecations = {};
  283. function deprecateSimple(name, msg) {
  284. if (hooks.deprecationHandler != null) {
  285. hooks.deprecationHandler(name, msg);
  286. }
  287. if (!deprecations[name]) {
  288. warn(msg);
  289. deprecations[name] = true;
  290. }
  291. }
  292. hooks.suppressDeprecationWarnings = false;
  293. hooks.deprecationHandler = null;
  294. function isFunction(input) {
  295. return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
  296. }
  297. function set (config) {
  298. var prop, i;
  299. for (i in config) {
  300. prop = config[i];
  301. if (isFunction(prop)) {
  302. this[i] = prop;
  303. } else {
  304. this['_' + i] = prop;
  305. }
  306. }
  307. this._config = config;
  308. // Lenient ordinal parsing accepts just a number in addition to
  309. // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
  310. // TODO: Remove "ordinalParse" fallback in next major release.
  311. this._dayOfMonthOrdinalParseLenient = new RegExp(
  312. (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
  313. '|' + (/\d{1,2}/).source);
  314. }
  315. function mergeConfigs(parentConfig, childConfig) {
  316. var res = extend({}, parentConfig), prop;
  317. for (prop in childConfig) {
  318. if (hasOwnProp(childConfig, prop)) {
  319. if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
  320. res[prop] = {};
  321. extend(res[prop], parentConfig[prop]);
  322. extend(res[prop], childConfig[prop]);
  323. } else if (childConfig[prop] != null) {
  324. res[prop] = childConfig[prop];
  325. } else {
  326. delete res[prop];
  327. }
  328. }
  329. }
  330. for (prop in parentConfig) {
  331. if (hasOwnProp(parentConfig, prop) &&
  332. !hasOwnProp(childConfig, prop) &&
  333. isObject(parentConfig[prop])) {
  334. // make sure changes to properties don't modify parent config
  335. res[prop] = extend({}, res[prop]);
  336. }
  337. }
  338. return res;
  339. }
  340. function Locale(config) {
  341. if (config != null) {
  342. this.set(config);
  343. }
  344. }
  345. var keys;
  346. if (Object.keys) {
  347. keys = Object.keys;
  348. } else {
  349. keys = function (obj) {
  350. var i, res = [];
  351. for (i in obj) {
  352. if (hasOwnProp(obj, i)) {
  353. res.push(i);
  354. }
  355. }
  356. return res;
  357. };
  358. }
  359. var defaultCalendar = {
  360. sameDay : '[Today at] LT',
  361. nextDay : '[Tomorrow at] LT',
  362. nextWeek : 'dddd [at] LT',
  363. lastDay : '[Yesterday at] LT',
  364. lastWeek : '[Last] dddd [at] LT',
  365. sameElse : 'L'
  366. };
  367. function calendar (key, mom, now) {
  368. var output = this._calendar[key] || this._calendar['sameElse'];
  369. return isFunction(output) ? output.call(mom, now) : output;
  370. }
  371. var defaultLongDateFormat = {
  372. LTS : 'h:mm:ss A',
  373. LT : 'h:mm A',
  374. L : 'MM/DD/YYYY',
  375. LL : 'MMMM D, YYYY',
  376. LLL : 'MMMM D, YYYY h:mm A',
  377. LLLL : 'dddd, MMMM D, YYYY h:mm A'
  378. };
  379. function longDateFormat (key) {
  380. var format = this._longDateFormat[key],
  381. formatUpper = this._longDateFormat[key.toUpperCase()];
  382. if (format || !formatUpper) {
  383. return format;
  384. }
  385. this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
  386. return val.slice(1);
  387. });
  388. return this._longDateFormat[key];
  389. }
  390. var defaultInvalidDate = 'Invalid date';
  391. function invalidDate () {
  392. return this._invalidDate;
  393. }
  394. var defaultOrdinal = '%d';
  395. var defaultDayOfMonthOrdinalParse = /\d{1,2}/;
  396. function ordinal (number) {
  397. return this._ordinal.replace('%d', number);
  398. }
  399. var defaultRelativeTime = {
  400. future : 'in %s',
  401. past : '%s ago',
  402. s : 'a few seconds',
  403. ss : '%d seconds',
  404. m : 'a minute',
  405. mm : '%d minutes',
  406. h : 'an hour',
  407. hh : '%d hours',
  408. d : 'a day',
  409. dd : '%d days',
  410. M : 'a month',
  411. MM : '%d months',
  412. y : 'a year',
  413. yy : '%d years'
  414. };
  415. function relativeTime (number, withoutSuffix, string, isFuture) {
  416. var output = this._relativeTime[string];
  417. return (isFunction(output)) ?
  418. output(number, withoutSuffix, string, isFuture) :
  419. output.replace(/%d/i, number);
  420. }
  421. function pastFuture (diff, output) {
  422. var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
  423. return isFunction(format) ? format(output) : format.replace(/%s/i, output);
  424. }
  425. var aliases = {};
  426. function addUnitAlias (unit, shorthand) {
  427. var lowerCase = unit.toLowerCase();
  428. aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
  429. }
  430. function normalizeUnits(units) {
  431. return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
  432. }
  433. function normalizeObjectUnits(inputObject) {
  434. var normalizedInput = {},
  435. normalizedProp,
  436. prop;
  437. for (prop in inputObject) {
  438. if (hasOwnProp(inputObject, prop)) {
  439. normalizedProp = normalizeUnits(prop);
  440. if (normalizedProp) {
  441. normalizedInput[normalizedProp] = inputObject[prop];
  442. }
  443. }
  444. }
  445. return normalizedInput;
  446. }
  447. var priorities = {};
  448. function addUnitPriority(unit, priority) {
  449. priorities[unit] = priority;
  450. }
  451. function getPrioritizedUnits(unitsObj) {
  452. var units = [];
  453. for (var u in unitsObj) {
  454. units.push({unit: u, priority: priorities[u]});
  455. }
  456. units.sort(function (a, b) {
  457. return a.priority - b.priority;
  458. });
  459. return units;
  460. }
  461. function zeroFill(number, targetLength, forceSign) {
  462. var absNumber = '' + Math.abs(number),
  463. zerosToFill = targetLength - absNumber.length,
  464. sign = number >= 0;
  465. return (sign ? (forceSign ? '+' : '') : '-') +
  466. Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
  467. }
  468. var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
  469. var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
  470. var formatFunctions = {};
  471. var formatTokenFunctions = {};
  472. // token: 'M'
  473. // padded: ['MM', 2]
  474. // ordinal: 'Mo'
  475. // callback: function () { this.month() + 1 }
  476. function addFormatToken (token, padded, ordinal, callback) {
  477. var func = callback;
  478. if (typeof callback === 'string') {
  479. func = function () {
  480. return this[callback]();
  481. };
  482. }
  483. if (token) {
  484. formatTokenFunctions[token] = func;
  485. }
  486. if (padded) {
  487. formatTokenFunctions[padded[0]] = function () {
  488. return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
  489. };
  490. }
  491. if (ordinal) {
  492. formatTokenFunctions[ordinal] = function () {
  493. return this.localeData().ordinal(func.apply(this, arguments), token);
  494. };
  495. }
  496. }
  497. function removeFormattingTokens(input) {
  498. if (input.match(/\[[\s\S]/)) {
  499. return input.replace(/^\[|\]$/g, '');
  500. }
  501. return input.replace(/\\/g, '');
  502. }
  503. function makeFormatFunction(format) {
  504. var array = format.match(formattingTokens), i, length;
  505. for (i = 0, length = array.length; i < length; i++) {
  506. if (formatTokenFunctions[array[i]]) {
  507. array[i] = formatTokenFunctions[array[i]];
  508. } else {
  509. array[i] = removeFormattingTokens(array[i]);
  510. }
  511. }
  512. return function (mom) {
  513. var output = '', i;
  514. for (i = 0; i < length; i++) {
  515. output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
  516. }
  517. return output;
  518. };
  519. }
  520. // format date using native date object
  521. function formatMoment(m, format) {
  522. if (!m.isValid()) {
  523. return m.localeData().invalidDate();
  524. }
  525. format = expandFormat(format, m.localeData());
  526. formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
  527. return formatFunctions[format](m);
  528. }
  529. function expandFormat(format, locale) {
  530. var i = 5;
  531. function replaceLongDateFormatTokens(input) {
  532. return locale.longDateFormat(input) || input;
  533. }
  534. localFormattingTokens.lastIndex = 0;
  535. while (i >= 0 && localFormattingTokens.test(format)) {
  536. format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
  537. localFormattingTokens.lastIndex = 0;
  538. i -= 1;
  539. }
  540. return format;
  541. }
  542. var match1 = /\d/; // 0 - 9
  543. var match2 = /\d\d/; // 00 - 99
  544. var match3 = /\d{3}/; // 000 - 999
  545. var match4 = /\d{4}/; // 0000 - 9999
  546. var match6 = /[+-]?\d{6}/; // -999999 - 999999
  547. var match1to2 = /\d\d?/; // 0 - 99
  548. var match3to4 = /\d\d\d\d?/; // 999 - 9999
  549. var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999
  550. var match1to3 = /\d{1,3}/; // 0 - 999
  551. var match1to4 = /\d{1,4}/; // 0 - 9999
  552. var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999
  553. var matchUnsigned = /\d+/; // 0 - inf
  554. var matchSigned = /[+-]?\d+/; // -inf - inf
  555. var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
  556. var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z
  557. var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
  558. // any word (or two) characters or numbers including two/three word month in arabic.
  559. // includes scottish gaelic two word and hyphenated months
  560. var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;
  561. var regexes = {};
  562. function addRegexToken (token, regex, strictRegex) {
  563. regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
  564. return (isStrict && strictRegex) ? strictRegex : regex;
  565. };
  566. }
  567. function getParseRegexForToken (token, config) {
  568. if (!hasOwnProp(regexes, token)) {
  569. return new RegExp(unescapeFormat(token));
  570. }
  571. return regexes[token](config._strict, config._locale);
  572. }
  573. // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
  574. function unescapeFormat(s) {
  575. return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
  576. return p1 || p2 || p3 || p4;
  577. }));
  578. }
  579. function regexEscape(s) {
  580. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  581. }
  582. var tokens = {};
  583. function addParseToken (token, callback) {
  584. var i, func = callback;
  585. if (typeof token === 'string') {
  586. token = [token];
  587. }
  588. if (isNumber(callback)) {
  589. func = function (input, array) {
  590. array[callback] = toInt(input);
  591. };
  592. }
  593. for (i = 0; i < token.length; i++) {
  594. tokens[token[i]] = func;
  595. }
  596. }
  597. function addWeekParseToken (token, callback) {
  598. addParseToken(token, function (input, array, config, token) {
  599. config._w = config._w || {};
  600. callback(input, config._w, config, token);
  601. });
  602. }
  603. function addTimeToArrayFromToken(token, input, config) {
  604. if (input != null && hasOwnProp(tokens, token)) {
  605. tokens[token](input, config._a, config, token);
  606. }
  607. }
  608. var YEAR = 0;
  609. var MONTH = 1;
  610. var DATE = 2;
  611. var HOUR = 3;
  612. var MINUTE = 4;
  613. var SECOND = 5;
  614. var MILLISECOND = 6;
  615. var WEEK = 7;
  616. var WEEKDAY = 8;
  617. // FORMATTING
  618. addFormatToken('Y', 0, 0, function () {
  619. var y = this.year();
  620. return y <= 9999 ? '' + y : '+' + y;
  621. });
  622. addFormatToken(0, ['YY', 2], 0, function () {
  623. return this.year() % 100;
  624. });
  625. addFormatToken(0, ['YYYY', 4], 0, 'year');
  626. addFormatToken(0, ['YYYYY', 5], 0, 'year');
  627. addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
  628. // ALIASES
  629. addUnitAlias('year', 'y');
  630. // PRIORITIES
  631. addUnitPriority('year', 1);
  632. // PARSING
  633. addRegexToken('Y', matchSigned);
  634. addRegexToken('YY', match1to2, match2);
  635. addRegexToken('YYYY', match1to4, match4);
  636. addRegexToken('YYYYY', match1to6, match6);
  637. addRegexToken('YYYYYY', match1to6, match6);
  638. addParseToken(['YYYYY', 'YYYYYY'], YEAR);
  639. addParseToken('YYYY', function (input, array) {
  640. array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
  641. });
  642. addParseToken('YY', function (input, array) {
  643. array[YEAR] = hooks.parseTwoDigitYear(input);
  644. });
  645. addParseToken('Y', function (input, array) {
  646. array[YEAR] = parseInt(input, 10);
  647. });
  648. // HELPERS
  649. function daysInYear(year) {
  650. return isLeapYear(year) ? 366 : 365;
  651. }
  652. function isLeapYear(year) {
  653. return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
  654. }
  655. // HOOKS
  656. hooks.parseTwoDigitYear = function (input) {
  657. return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
  658. };
  659. // MOMENTS
  660. var getSetYear = makeGetSet('FullYear', true);
  661. function getIsLeapYear () {
  662. return isLeapYear(this.year());
  663. }
  664. function makeGetSet (unit, keepTime) {
  665. return function (value) {
  666. if (value != null) {
  667. set$1(this, unit, value);
  668. hooks.updateOffset(this, keepTime);
  669. return this;
  670. } else {
  671. return get(this, unit);
  672. }
  673. };
  674. }
  675. function get (mom, unit) {
  676. return mom.isValid() ?
  677. mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
  678. }
  679. function set$1 (mom, unit, value) {
  680. if (mom.isValid() && !isNaN(value)) {
  681. if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
  682. mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
  683. }
  684. else {
  685. mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  686. }
  687. }
  688. }
  689. // MOMENTS
  690. function stringGet (units) {
  691. units = normalizeUnits(units);
  692. if (isFunction(this[units])) {
  693. return this[units]();
  694. }
  695. return this;
  696. }
  697. function stringSet (units, value) {
  698. if (typeof units === 'object') {
  699. units = normalizeObjectUnits(units);
  700. var prioritized = getPrioritizedUnits(units);
  701. for (var i = 0; i < prioritized.length; i++) {
  702. this[prioritized[i].unit](units[prioritized[i].unit]);
  703. }
  704. } else {
  705. units = normalizeUnits(units);
  706. if (isFunction(this[units])) {
  707. return this[units](value);
  708. }
  709. }
  710. return this;
  711. }
  712. function mod(n, x) {
  713. return ((n % x) + x) % x;
  714. }
  715. var indexOf;
  716. if (Array.prototype.indexOf) {
  717. indexOf = Array.prototype.indexOf;
  718. } else {
  719. indexOf = function (o) {
  720. // I know
  721. var i;
  722. for (i = 0; i < this.length; ++i) {
  723. if (this[i] === o) {
  724. return i;
  725. }
  726. }
  727. return -1;
  728. };
  729. }
  730. function daysInMonth(year, month) {
  731. if (isNaN(year) || isNaN(month)) {
  732. return NaN;
  733. }
  734. var modMonth = mod(month, 12);
  735. year += (month - modMonth) / 12;
  736. return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
  737. }
  738. // FORMATTING
  739. addFormatToken('M', ['MM', 2], 'Mo', function () {
  740. return this.month() + 1;
  741. });
  742. addFormatToken('MMM', 0, 0, function (format) {
  743. return this.localeData().monthsShort(this, format);
  744. });
  745. addFormatToken('MMMM', 0, 0, function (format) {
  746. return this.localeData().months(this, format);
  747. });
  748. // ALIASES
  749. addUnitAlias('month', 'M');
  750. // PRIORITY
  751. addUnitPriority('month', 8);
  752. // PARSING
  753. addRegexToken('M', match1to2);
  754. addRegexToken('MM', match1to2, match2);
  755. addRegexToken('MMM', function (isStrict, locale) {
  756. return locale.monthsShortRegex(isStrict);
  757. });
  758. addRegexToken('MMMM', function (isStrict, locale) {
  759. return locale.monthsRegex(isStrict);
  760. });
  761. addParseToken(['M', 'MM'], function (input, array) {
  762. array[MONTH] = toInt(input) - 1;
  763. });
  764. addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
  765. var month = config._locale.monthsParse(input, token, config._strict);
  766. // if we didn't find a month name, mark the date as invalid.
  767. if (month != null) {
  768. array[MONTH] = month;
  769. } else {
  770. getParsingFlags(config).invalidMonth = input;
  771. }
  772. });
  773. // LOCALES
  774. var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
  775. var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
  776. function localeMonths (m, format) {
  777. if (!m) {
  778. return isArray(this._months) ? this._months :
  779. this._months['standalone'];
  780. }
  781. return isArray(this._months) ? this._months[m.month()] :
  782. this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
  783. }
  784. var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
  785. function localeMonthsShort (m, format) {
  786. if (!m) {
  787. return isArray(this._monthsShort) ? this._monthsShort :
  788. this._monthsShort['standalone'];
  789. }
  790. return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
  791. this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
  792. }
  793. function handleStrictParse(monthName, format, strict) {
  794. var i, ii, mom, llc = monthName.toLocaleLowerCase();
  795. if (!this._monthsParse) {
  796. // this is not used
  797. this._monthsParse = [];
  798. this._longMonthsParse = [];
  799. this._shortMonthsParse = [];
  800. for (i = 0; i < 12; ++i) {
  801. mom = createUTC([2000, i]);
  802. this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
  803. this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
  804. }
  805. }
  806. if (strict) {
  807. if (format === 'MMM') {
  808. ii = indexOf.call(this._shortMonthsParse, llc);
  809. return ii !== -1 ? ii : null;
  810. } else {
  811. ii = indexOf.call(this._longMonthsParse, llc);
  812. return ii !== -1 ? ii : null;
  813. }
  814. } else {
  815. if (format === 'MMM') {
  816. ii = indexOf.call(this._shortMonthsParse, llc);
  817. if (ii !== -1) {
  818. return ii;
  819. }
  820. ii = indexOf.call(this._longMonthsParse, llc);
  821. return ii !== -1 ? ii : null;
  822. } else {
  823. ii = indexOf.call(this._longMonthsParse, llc);
  824. if (ii !== -1) {
  825. return ii;
  826. }
  827. ii = indexOf.call(this._shortMonthsParse, llc);
  828. return ii !== -1 ? ii : null;
  829. }
  830. }
  831. }
  832. function localeMonthsParse (monthName, format, strict) {
  833. var i, mom, regex;
  834. if (this._monthsParseExact) {
  835. return handleStrictParse.call(this, monthName, format, strict);
  836. }
  837. if (!this._monthsParse) {
  838. this._monthsParse = [];
  839. this._longMonthsParse = [];
  840. this._shortMonthsParse = [];
  841. }
  842. // TODO: add sorting
  843. // Sorting makes sure if one month (or abbr) is a prefix of another
  844. // see sorting in computeMonthsParse
  845. for (i = 0; i < 12; i++) {
  846. // make the regex if we don't have it already
  847. mom = createUTC([2000, i]);
  848. if (strict && !this._longMonthsParse[i]) {
  849. this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
  850. this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
  851. }
  852. if (!strict && !this._monthsParse[i]) {
  853. regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
  854. this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
  855. }
  856. // test the regex
  857. if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
  858. return i;
  859. } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
  860. return i;
  861. } else if (!strict && this._monthsParse[i].test(monthName)) {
  862. return i;
  863. }
  864. }
  865. }
  866. // MOMENTS
  867. function setMonth (mom, value) {
  868. var dayOfMonth;
  869. if (!mom.isValid()) {
  870. // No op
  871. return mom;
  872. }
  873. if (typeof value === 'string') {
  874. if (/^\d+$/.test(value)) {
  875. value = toInt(value);
  876. } else {
  877. value = mom.localeData().monthsParse(value);
  878. // TODO: Another silent failure?
  879. if (!isNumber(value)) {
  880. return mom;
  881. }
  882. }
  883. }
  884. dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
  885. mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
  886. return mom;
  887. }
  888. function getSetMonth (value) {
  889. if (value != null) {
  890. setMonth(this, value);
  891. hooks.updateOffset(this, true);
  892. return this;
  893. } else {
  894. return get(this, 'Month');
  895. }
  896. }
  897. function getDaysInMonth () {
  898. return daysInMonth(this.year(), this.month());
  899. }
  900. var defaultMonthsShortRegex = matchWord;
  901. function monthsShortRegex (isStrict) {
  902. if (this._monthsParseExact) {
  903. if (!hasOwnProp(this, '_monthsRegex')) {
  904. computeMonthsParse.call(this);
  905. }
  906. if (isStrict) {
  907. return this._monthsShortStrictRegex;
  908. } else {
  909. return this._monthsShortRegex;
  910. }
  911. } else {
  912. if (!hasOwnProp(this, '_monthsShortRegex')) {
  913. this._monthsShortRegex = defaultMonthsShortRegex;
  914. }
  915. return this._monthsShortStrictRegex && isStrict ?
  916. this._monthsShortStrictRegex : this._monthsShortRegex;
  917. }
  918. }
  919. var defaultMonthsRegex = matchWord;
  920. function monthsRegex (isStrict) {
  921. if (this._monthsParseExact) {
  922. if (!hasOwnProp(this, '_monthsRegex')) {
  923. computeMonthsParse.call(this);
  924. }
  925. if (isStrict) {
  926. return this._monthsStrictRegex;
  927. } else {
  928. return this._monthsRegex;
  929. }
  930. } else {
  931. if (!hasOwnProp(this, '_monthsRegex')) {
  932. this._monthsRegex = defaultMonthsRegex;
  933. }
  934. return this._monthsStrictRegex && isStrict ?
  935. this._monthsStrictRegex : this._monthsRegex;
  936. }
  937. }
  938. function computeMonthsParse () {
  939. function cmpLenRev(a, b) {
  940. return b.length - a.length;
  941. }
  942. var shortPieces = [], longPieces = [], mixedPieces = [],
  943. i, mom;
  944. for (i = 0; i < 12; i++) {
  945. // make the regex if we don't have it already
  946. mom = createUTC([2000, i]);
  947. shortPieces.push(this.monthsShort(mom, ''));
  948. longPieces.push(this.months(mom, ''));
  949. mixedPieces.push(this.months(mom, ''));
  950. mixedPieces.push(this.monthsShort(mom, ''));
  951. }
  952. // Sorting makes sure if one month (or abbr) is a prefix of another it
  953. // will match the longer piece.
  954. shortPieces.sort(cmpLenRev);
  955. longPieces.sort(cmpLenRev);
  956. mixedPieces.sort(cmpLenRev);
  957. for (i = 0; i < 12; i++) {
  958. shortPieces[i] = regexEscape(shortPieces[i]);
  959. longPieces[i] = regexEscape(longPieces[i]);
  960. }
  961. for (i = 0; i < 24; i++) {
  962. mixedPieces[i] = regexEscape(mixedPieces[i]);
  963. }
  964. this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
  965. this._monthsShortRegex = this._monthsRegex;
  966. this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
  967. this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
  968. }
  969. function createDate (y, m, d, h, M, s, ms) {
  970. // can't just apply() to create a date:
  971. // https://stackoverflow.com/q/181348
  972. var date = new Date(y, m, d, h, M, s, ms);
  973. // the date constructor remaps years 0-99 to 1900-1999
  974. if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
  975. date.setFullYear(y);
  976. }
  977. return date;
  978. }
  979. function createUTCDate (y) {
  980. var date = new Date(Date.UTC.apply(null, arguments));
  981. // the Date.UTC function remaps years 0-99 to 1900-1999
  982. if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
  983. date.setUTCFullYear(y);
  984. }
  985. return date;
  986. }
  987. // start-of-first-week - start-of-year
  988. function firstWeekOffset(year, dow, doy) {
  989. var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
  990. fwd = 7 + dow - doy,
  991. // first-week day local weekday -- which local weekday is fwd
  992. fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
  993. return -fwdlw + fwd - 1;
  994. }
  995. // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
  996. function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
  997. var localWeekday = (7 + weekday - dow) % 7,
  998. weekOffset = firstWeekOffset(year, dow, doy),
  999. dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
  1000. resYear, resDayOfYear;
  1001. if (dayOfYear <= 0) {
  1002. resYear = year - 1;
  1003. resDayOfYear = daysInYear(resYear) + dayOfYear;
  1004. } else if (dayOfYear > daysInYear(year)) {
  1005. resYear = year + 1;
  1006. resDayOfYear = dayOfYear - daysInYear(year);
  1007. } else {
  1008. resYear = year;
  1009. resDayOfYear = dayOfYear;
  1010. }
  1011. return {
  1012. year: resYear,
  1013. dayOfYear: resDayOfYear
  1014. };
  1015. }
  1016. function weekOfYear(mom, dow, doy) {
  1017. var weekOffset = firstWeekOffset(mom.year(), dow, doy),
  1018. week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
  1019. resWeek, resYear;
  1020. if (week < 1) {
  1021. resYear = mom.year() - 1;
  1022. resWeek = week + weeksInYear(resYear, dow, doy);
  1023. } else if (week > weeksInYear(mom.year(), dow, doy)) {
  1024. resWeek = week - weeksInYear(mom.year(), dow, doy);
  1025. resYear = mom.year() + 1;
  1026. } else {
  1027. resYear = mom.year();
  1028. resWeek = week;
  1029. }
  1030. return {
  1031. week: resWeek,
  1032. year: resYear
  1033. };
  1034. }
  1035. function weeksInYear(year, dow, doy) {
  1036. var weekOffset = firstWeekOffset(year, dow, doy),
  1037. weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
  1038. return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
  1039. }
  1040. // FORMATTING
  1041. addFormatToken('w', ['ww', 2], 'wo', 'week');
  1042. addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
  1043. // ALIASES
  1044. addUnitAlias('week', 'w');
  1045. addUnitAlias('isoWeek', 'W');
  1046. // PRIORITIES
  1047. addUnitPriority('week', 5);
  1048. addUnitPriority('isoWeek', 5);
  1049. // PARSING
  1050. addRegexToken('w', match1to2);
  1051. addRegexToken('ww', match1to2, match2);
  1052. addRegexToken('W', match1to2);
  1053. addRegexToken('WW', match1to2, match2);
  1054. addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
  1055. week[token.substr(0, 1)] = toInt(input);
  1056. });
  1057. // HELPERS
  1058. // LOCALES
  1059. function localeWeek (mom) {
  1060. return weekOfYear(mom, this._week.dow, this._week.doy).week;
  1061. }
  1062. var defaultLocaleWeek = {
  1063. dow : 0, // Sunday is the first day of the week.
  1064. doy : 6 // The week that contains Jan 1st is the first week of the year.
  1065. };
  1066. function localeFirstDayOfWeek () {
  1067. return this._week.dow;
  1068. }
  1069. function localeFirstDayOfYear () {
  1070. return this._week.doy;
  1071. }
  1072. // MOMENTS
  1073. function getSetWeek (input) {
  1074. var week = this.localeData().week(this);
  1075. return input == null ? week : this.add((input - week) * 7, 'd');
  1076. }
  1077. function getSetISOWeek (input) {
  1078. var week = weekOfYear(this, 1, 4).week;
  1079. return input == null ? week : this.add((input - week) * 7, 'd');
  1080. }
  1081. // FORMATTING
  1082. addFormatToken('d', 0, 'do', 'day');
  1083. addFormatToken('dd', 0, 0, function (format) {
  1084. return this.localeData().weekdaysMin(this, format);
  1085. });
  1086. addFormatToken('ddd', 0, 0, function (format) {
  1087. return this.localeData().weekdaysShort(this, format);
  1088. });
  1089. addFormatToken('dddd', 0, 0, function (format) {
  1090. return this.localeData().weekdays(this, format);
  1091. });
  1092. addFormatToken('e', 0, 0, 'weekday');
  1093. addFormatToken('E', 0, 0, 'isoWeekday');
  1094. // ALIASES
  1095. addUnitAlias('day', 'd');
  1096. addUnitAlias('weekday', 'e');
  1097. addUnitAlias('isoWeekday', 'E');
  1098. // PRIORITY
  1099. addUnitPriority('day', 11);
  1100. addUnitPriority('weekday', 11);
  1101. addUnitPriority('isoWeekday', 11);
  1102. // PARSING
  1103. addRegexToken('d', match1to2);
  1104. addRegexToken('e', match1to2);
  1105. addRegexToken('E', match1to2);
  1106. addRegexToken('dd', function (isStrict, locale) {
  1107. return locale.weekdaysMinRegex(isStrict);
  1108. });
  1109. addRegexToken('ddd', function (isStrict, locale) {
  1110. return locale.weekdaysShortRegex(isStrict);
  1111. });
  1112. addRegexToken('dddd', function (isStrict, locale) {
  1113. return locale.weekdaysRegex(isStrict);
  1114. });
  1115. addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
  1116. var weekday = config._locale.weekdaysParse(input, token, config._strict);
  1117. // if we didn't get a weekday name, mark the date as invalid
  1118. if (weekday != null) {
  1119. week.d = weekday;
  1120. } else {
  1121. getParsingFlags(config).invalidWeekday = input;
  1122. }
  1123. });
  1124. addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
  1125. week[token] = toInt(input);
  1126. });
  1127. // HELPERS
  1128. function parseWeekday(input, locale) {
  1129. if (typeof input !== 'string') {
  1130. return input;
  1131. }
  1132. if (!isNaN(input)) {
  1133. return parseInt(input, 10);
  1134. }
  1135. input = locale.weekdaysParse(input);
  1136. if (typeof input === 'number') {
  1137. return input;
  1138. }
  1139. return null;
  1140. }
  1141. function parseIsoWeekday(input, locale) {
  1142. if (typeof input === 'string') {
  1143. return locale.weekdaysParse(input) % 7 || 7;
  1144. }
  1145. return isNaN(input) ? null : input;
  1146. }
  1147. // LOCALES
  1148. var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
  1149. function localeWeekdays (m, format) {
  1150. if (!m) {
  1151. return isArray(this._weekdays) ? this._weekdays :
  1152. this._weekdays['standalone'];
  1153. }
  1154. return isArray(this._weekdays) ? this._weekdays[m.day()] :
  1155. this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
  1156. }
  1157. var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
  1158. function localeWeekdaysShort (m) {
  1159. return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
  1160. }
  1161. var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
  1162. function localeWeekdaysMin (m) {
  1163. return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
  1164. }
  1165. function handleStrictParse$1(weekdayName, format, strict) {
  1166. var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
  1167. if (!this._weekdaysParse) {
  1168. this._weekdaysParse = [];
  1169. this._shortWeekdaysParse = [];
  1170. this._minWeekdaysParse = [];
  1171. for (i = 0; i < 7; ++i) {
  1172. mom = createUTC([2000, 1]).day(i);
  1173. this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
  1174. this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
  1175. this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
  1176. }
  1177. }
  1178. if (strict) {
  1179. if (format === 'dddd') {
  1180. ii = indexOf.call(this._weekdaysParse, llc);
  1181. return ii !== -1 ? ii : null;
  1182. } else if (format === 'ddd') {
  1183. ii = indexOf.call(this._shortWeekdaysParse, llc);
  1184. return ii !== -1 ? ii : null;
  1185. } else {
  1186. ii = indexOf.call(this._minWeekdaysParse, llc);
  1187. return ii !== -1 ? ii : null;
  1188. }
  1189. } else {
  1190. if (format === 'dddd') {
  1191. ii = indexOf.call(this._weekdaysParse, llc);
  1192. if (ii !== -1) {
  1193. return ii;
  1194. }
  1195. ii = indexOf.call(this._shortWeekdaysParse, llc);
  1196. if (ii !== -1) {
  1197. return ii;
  1198. }
  1199. ii = indexOf.call(this._minWeekdaysParse, llc);
  1200. return ii !== -1 ? ii : null;
  1201. } else if (format === 'ddd') {
  1202. ii = indexOf.call(this._shortWeekdaysParse, llc);
  1203. if (ii !== -1) {
  1204. return ii;
  1205. }
  1206. ii = indexOf.call(this._weekdaysParse, llc);
  1207. if (ii !== -1) {
  1208. return ii;
  1209. }
  1210. ii = indexOf.call(this._minWeekdaysParse, llc);
  1211. return ii !== -1 ? ii : null;
  1212. } else {
  1213. ii = indexOf.call(this._minWeekdaysParse, llc);
  1214. if (ii !== -1) {
  1215. return ii;
  1216. }
  1217. ii = indexOf.call(this._weekdaysParse, llc);
  1218. if (ii !== -1) {
  1219. return ii;
  1220. }
  1221. ii = indexOf.call(this._shortWeekdaysParse, llc);
  1222. return ii !== -1 ? ii : null;
  1223. }
  1224. }
  1225. }
  1226. function localeWeekdaysParse (weekdayName, format, strict) {
  1227. var i, mom, regex;
  1228. if (this._weekdaysParseExact) {
  1229. return handleStrictParse$1.call(this, weekdayName, format, strict);
  1230. }
  1231. if (!this._weekdaysParse) {
  1232. this._weekdaysParse = [];
  1233. this._minWeekdaysParse = [];
  1234. this._shortWeekdaysParse = [];
  1235. this._fullWeekdaysParse = [];
  1236. }
  1237. for (i = 0; i < 7; i++) {
  1238. // make the regex if we don't have it already
  1239. mom = createUTC([2000, 1]).day(i);
  1240. if (strict && !this._fullWeekdaysParse[i]) {
  1241. this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i');
  1242. this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i');
  1243. this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i');
  1244. }
  1245. if (!this._weekdaysParse[i]) {
  1246. regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
  1247. this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
  1248. }
  1249. // test the regex
  1250. if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
  1251. return i;
  1252. } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
  1253. return i;
  1254. } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
  1255. return i;
  1256. } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
  1257. return i;
  1258. }
  1259. }
  1260. }
  1261. // MOMENTS
  1262. function getSetDayOfWeek (input) {
  1263. if (!this.isValid()) {
  1264. return input != null ? this : NaN;
  1265. }
  1266. var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
  1267. if (input != null) {
  1268. input = parseWeekday(input, this.localeData());
  1269. return this.add(input - day, 'd');
  1270. } else {
  1271. return day;
  1272. }
  1273. }
  1274. function getSetLocaleDayOfWeek (input) {
  1275. if (!this.isValid()) {
  1276. return input != null ? this : NaN;
  1277. }
  1278. var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
  1279. return input == null ? weekday : this.add(input - weekday, 'd');
  1280. }
  1281. function getSetISODayOfWeek (input) {
  1282. if (!this.isValid()) {
  1283. return input != null ? this : NaN;
  1284. }
  1285. // behaves the same as moment#day except
  1286. // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
  1287. // as a setter, sunday should belong to the previous week.
  1288. if (input != null) {
  1289. var weekday = parseIsoWeekday(input, this.localeData());
  1290. return this.day(this.day() % 7 ? weekday : weekday - 7);
  1291. } else {
  1292. return this.day() || 7;
  1293. }
  1294. }
  1295. var defaultWeekdaysRegex = matchWord;
  1296. function weekdaysRegex (isStrict) {
  1297. if (this._weekdaysParseExact) {
  1298. if (!hasOwnProp(this, '_weekdaysRegex')) {
  1299. computeWeekdaysParse.call(this);
  1300. }
  1301. if (isStrict) {
  1302. return this._weekdaysStrictRegex;
  1303. } else {
  1304. return this._weekdaysRegex;
  1305. }
  1306. } else {
  1307. if (!hasOwnProp(this, '_weekdaysRegex')) {
  1308. this._weekdaysRegex = defaultWeekdaysRegex;
  1309. }
  1310. return this._weekdaysStrictRegex && isStrict ?
  1311. this._weekdaysStrictRegex : this._weekdaysRegex;
  1312. }
  1313. }
  1314. var defaultWeekdaysShortRegex = matchWord;
  1315. function weekdaysShortRegex (isStrict) {
  1316. if (this._weekdaysParseExact) {
  1317. if (!hasOwnProp(this, '_weekdaysRegex')) {
  1318. computeWeekdaysParse.call(this);
  1319. }
  1320. if (isStrict) {
  1321. return this._weekdaysShortStrictRegex;
  1322. } else {
  1323. return this._weekdaysShortRegex;
  1324. }
  1325. } else {
  1326. if (!hasOwnProp(this, '_weekdaysShortRegex')) {
  1327. this._weekdaysShortRegex = defaultWeekdaysShortRegex;
  1328. }
  1329. return this._weekdaysShortStrictRegex && isStrict ?
  1330. this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
  1331. }
  1332. }
  1333. var defaultWeekdaysMinRegex = matchWord;
  1334. function weekdaysMinRegex (isStrict) {
  1335. if (this._weekdaysParseExact) {
  1336. if (!hasOwnProp(this, '_weekdaysRegex')) {
  1337. computeWeekdaysParse.call(this);
  1338. }
  1339. if (isStrict) {
  1340. return this._weekdaysMinStrictRegex;
  1341. } else {
  1342. return this._weekdaysMinRegex;
  1343. }
  1344. } else {
  1345. if (!hasOwnProp(this, '_weekdaysMinRegex')) {
  1346. this._weekdaysMinRegex = defaultWeekdaysMinRegex;
  1347. }
  1348. return this._weekdaysMinStrictRegex && isStrict ?
  1349. this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
  1350. }
  1351. }
  1352. function computeWeekdaysParse () {
  1353. function cmpLenRev(a, b) {
  1354. return b.length - a.length;
  1355. }
  1356. var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
  1357. i, mom, minp, shortp, longp;
  1358. for (i = 0; i < 7; i++) {
  1359. // make the regex if we don't have it already
  1360. mom = createUTC([2000, 1]).day(i);
  1361. minp = this.weekdaysMin(mom, '');
  1362. shortp = this.weekdaysShort(mom, '');
  1363. longp = this.weekdays(mom, '');
  1364. minPieces.push(minp);
  1365. shortPieces.push(shortp);
  1366. longPieces.push(longp);
  1367. mixedPieces.push(minp);
  1368. mixedPieces.push(shortp);
  1369. mixedPieces.push(longp);
  1370. }
  1371. // Sorting makes sure if one weekday (or abbr) is a prefix of another it
  1372. // will match the longer piece.
  1373. minPieces.sort(cmpLenRev);
  1374. shortPieces.sort(cmpLenRev);
  1375. longPieces.sort(cmpLenRev);
  1376. mixedPieces.sort(cmpLenRev);
  1377. for (i = 0; i < 7; i++) {
  1378. shortPieces[i] = regexEscape(shortPieces[i]);
  1379. longPieces[i] = regexEscape(longPieces[i]);
  1380. mixedPieces[i] = regexEscape(mixedPieces[i]);
  1381. }
  1382. this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
  1383. this._weekdaysShortRegex = this._weekdaysRegex;
  1384. this._weekdaysMinRegex = this._weekdaysRegex;
  1385. this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
  1386. this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
  1387. this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
  1388. }
  1389. // FORMATTING
  1390. function hFormat() {
  1391. return this.hours() % 12 || 12;
  1392. }
  1393. function kFormat() {
  1394. return this.hours() || 24;
  1395. }
  1396. addFormatToken('H', ['HH', 2], 0, 'hour');
  1397. addFormatToken('h', ['hh', 2], 0, hFormat);
  1398. addFormatToken('k', ['kk', 2], 0, kFormat);
  1399. addFormatToken('hmm', 0, 0, function () {
  1400. return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
  1401. });
  1402. addFormatToken('hmmss', 0, 0, function () {
  1403. return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
  1404. zeroFill(this.seconds(), 2);
  1405. });
  1406. addFormatToken('Hmm', 0, 0, function () {
  1407. return '' + this.hours() + zeroFill(this.minutes(), 2);
  1408. });
  1409. addFormatToken('Hmmss', 0, 0, function () {
  1410. return '' + this.hours() + zeroFill(this.minutes(), 2) +
  1411. zeroFill(this.seconds(), 2);
  1412. });
  1413. function meridiem (token, lowercase) {
  1414. addFormatToken(token, 0, 0, function () {
  1415. return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
  1416. });
  1417. }
  1418. meridiem('a', true);
  1419. meridiem('A', false);
  1420. // ALIASES
  1421. addUnitAlias('hour', 'h');
  1422. // PRIORITY
  1423. addUnitPriority('hour', 13);
  1424. // PARSING
  1425. function matchMeridiem (isStrict, locale) {
  1426. return locale._meridiemParse;
  1427. }
  1428. addRegexToken('a', matchMeridiem);
  1429. addRegexToken('A', matchMeridiem);
  1430. addRegexToken('H', match1to2);
  1431. addRegexToken('h', match1to2);
  1432. addRegexToken('k', match1to2);
  1433. addRegexToken('HH', match1to2, match2);
  1434. addRegexToken('hh', match1to2, match2);
  1435. addRegexToken('kk', match1to2, match2);
  1436. addRegexToken('hmm', match3to4);
  1437. addRegexToken('hmmss', match5to6);
  1438. addRegexToken('Hmm', match3to4);
  1439. addRegexToken('Hmmss', match5to6);
  1440. addParseToken(['H', 'HH'], HOUR);
  1441. addParseToken(['k', 'kk'], function (input, array, config) {
  1442. var kInput = toInt(input);
  1443. array[HOUR] = kInput === 24 ? 0 : kInput;
  1444. });
  1445. addParseToken(['a', 'A'], function (input, array, config) {
  1446. config._isPm = config._locale.isPM(input);
  1447. config._meridiem = input;
  1448. });
  1449. addParseToken(['h', 'hh'], function (input, array, config) {
  1450. array[HOUR] = toInt(input);
  1451. getParsingFlags(config).bigHour = true;
  1452. });
  1453. addParseToken('hmm', function (input, array, config) {
  1454. var pos = input.length - 2;
  1455. array[HOUR] = toInt(input.substr(0, pos));
  1456. array[MINUTE] = toInt(input.substr(pos));
  1457. getParsingFlags(config).bigHour = true;
  1458. });
  1459. addParseToken('hmmss', function (input, array, config) {
  1460. var pos1 = input.length - 4;
  1461. var pos2 = input.length - 2;
  1462. array[HOUR] = toInt(input.substr(0, pos1));
  1463. array[MINUTE] = toInt(input.substr(pos1, 2));
  1464. array[SECOND] = toInt(input.substr(pos2));
  1465. getParsingFlags(config).bigHour = true;
  1466. });
  1467. addParseToken('Hmm', function (input, array, config) {
  1468. var pos = input.length - 2;
  1469. array[HOUR] = toInt(input.substr(0, pos));
  1470. array[MINUTE] = toInt(input.substr(pos));
  1471. });
  1472. addParseToken('Hmmss', function (input, array, config) {
  1473. var pos1 = input.length - 4;
  1474. var pos2 = input.length - 2;
  1475. array[HOUR] = toInt(input.substr(0, pos1));
  1476. array[MINUTE] = toInt(input.substr(pos1, 2));
  1477. array[SECOND] = toInt(input.substr(pos2));
  1478. });
  1479. // LOCALES
  1480. function localeIsPM (input) {
  1481. // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
  1482. // Using charAt should be more compatible.
  1483. return ((input + '').toLowerCase().charAt(0) === 'p');
  1484. }
  1485. var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
  1486. function localeMeridiem (hours, minutes, isLower) {
  1487. if (hours > 11) {
  1488. return isLower ? 'pm' : 'PM';
  1489. } else {
  1490. return isLower ? 'am' : 'AM';
  1491. }
  1492. }
  1493. // MOMENTS
  1494. // Setting the hour should keep the time, because the user explicitly
  1495. // specified which hour he wants. So trying to maintain the same hour (in
  1496. // a new timezone) makes sense. Adding/subtracting hours does not follow
  1497. // this rule.
  1498. var getSetHour = makeGetSet('Hours', true);
  1499. // months
  1500. // week
  1501. // weekdays
  1502. // meridiem
  1503. var baseConfig = {
  1504. calendar: defaultCalendar,
  1505. longDateFormat: defaultLongDateFormat,
  1506. invalidDate: defaultInvalidDate,
  1507. ordinal: defaultOrdinal,
  1508. dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
  1509. relativeTime: defaultRelativeTime,
  1510. months: defaultLocaleMonths,
  1511. monthsShort: defaultLocaleMonthsShort,
  1512. week: defaultLocaleWeek,
  1513. weekdays: defaultLocaleWeekdays,
  1514. weekdaysMin: defaultLocaleWeekdaysMin,
  1515. weekdaysShort: defaultLocaleWeekdaysShort,
  1516. meridiemParse: defaultLocaleMeridiemParse
  1517. };
  1518. // internal storage for locale config files
  1519. var locales = {};
  1520. var localeFamilies = {};
  1521. var globalLocale;
  1522. function normalizeLocale(key) {
  1523. return key ? key.toLowerCase().replace('_', '-') : key;
  1524. }
  1525. // pick the locale from the array
  1526. // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
  1527. // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
  1528. function chooseLocale(names) {
  1529. var i = 0, j, next, locale, split;
  1530. while (i < names.length) {
  1531. split = normalizeLocale(names[i]).split('-');
  1532. j = split.length;
  1533. next = normalizeLocale(names[i + 1]);
  1534. next = next ? next.split('-') : null;
  1535. while (j > 0) {
  1536. locale = loadLocale(split.slice(0, j).join('-'));
  1537. if (locale) {
  1538. return locale;
  1539. }
  1540. if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
  1541. //the next array item is better than a shallower substring of this one
  1542. break;
  1543. }
  1544. j--;
  1545. }
  1546. i++;
  1547. }
  1548. return null;
  1549. }
  1550. function loadLocale(name) {
  1551. var oldLocale = null;
  1552. // TODO: Find a better way to register and load all the locales in Node
  1553. if (!locales[name] && (typeof module !== 'undefined') &&
  1554. module && module.exports) {
  1555. try {
  1556. oldLocale = globalLocale._abbr;
  1557. var aliasedRequire = require;
  1558. aliasedRequire('./locale/' + name);
  1559. getSetGlobalLocale(oldLocale);
  1560. } catch (e) {}
  1561. }
  1562. return locales[name];
  1563. }
  1564. // This function will load locale and then set the global locale. If
  1565. // no arguments are passed in, it will simply return the current global
  1566. // locale key.
  1567. function getSetGlobalLocale (key, values) {
  1568. var data;
  1569. if (key) {
  1570. if (isUndefined(values)) {
  1571. data = getLocale(key);
  1572. }
  1573. else {
  1574. data = defineLocale(key, values);
  1575. }
  1576. if (data) {
  1577. // moment.duration._locale = moment._locale = data;
  1578. globalLocale = data;
  1579. }
  1580. }
  1581. return globalLocale._abbr;
  1582. }
  1583. function defineLocale (name, config) {
  1584. if (config !== null) {
  1585. var parentConfig = baseConfig;
  1586. config.abbr = name;
  1587. if (locales[name] != null) {
  1588. deprecateSimple('defineLocaleOverride',
  1589. 'use moment.updateLocale(localeName, config) to change ' +
  1590. 'an existing locale. moment.defineLocale(localeName, ' +
  1591. 'config) should only be used for creating a new locale ' +
  1592. 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
  1593. parentConfig = locales[name]._config;
  1594. } else if (config.parentLocale != null) {
  1595. if (locales[config.parentLocale] != null) {
  1596. parentConfig = locales[config.parentLocale]._config;
  1597. } else {
  1598. if (!localeFamilies[config.parentLocale]) {
  1599. localeFamilies[config.parentLocale] = [];
  1600. }
  1601. localeFamilies[config.parentLocale].push({
  1602. name: name,
  1603. config: config
  1604. });
  1605. return null;
  1606. }
  1607. }
  1608. locales[name] = new Locale(mergeConfigs(parentConfig, config));
  1609. if (localeFamilies[name]) {
  1610. localeFamilies[name].forEach(function (x) {
  1611. defineLocale(x.name, x.config);
  1612. });
  1613. }
  1614. // backwards compat for now: also set the locale
  1615. // make sure we set the locale AFTER all child locales have been
  1616. // created, so we won't end up with the child locale set.
  1617. getSetGlobalLocale(name);
  1618. return locales[name];
  1619. } else {
  1620. // useful for testing
  1621. delete locales[name];
  1622. return null;
  1623. }
  1624. }
  1625. function updateLocale(name, config) {
  1626. if (config != null) {
  1627. var locale, tmpLocale, parentConfig = baseConfig;
  1628. // MERGE
  1629. tmpLocale = loadLocale(name);
  1630. if (tmpLocale != null) {
  1631. parentConfig = tmpLocale._config;
  1632. }
  1633. config = mergeConfigs(parentConfig, config);
  1634. locale = new Locale(config);
  1635. locale.parentLocale = locales[name];
  1636. locales[name] = locale;
  1637. // backwards compat for now: also set the locale
  1638. getSetGlobalLocale(name);
  1639. } else {
  1640. // pass null for config to unupdate, useful for tests
  1641. if (locales[name] != null) {
  1642. if (locales[name].parentLocale != null) {
  1643. locales[name] = locales[name].parentLocale;
  1644. } else if (locales[name] != null) {
  1645. delete locales[name];
  1646. }
  1647. }
  1648. }
  1649. return locales[name];
  1650. }
  1651. // returns locale data
  1652. function getLocale (key) {
  1653. var locale;
  1654. if (key && key._locale && key._locale._abbr) {
  1655. key = key._locale._abbr;
  1656. }
  1657. if (!key) {
  1658. return globalLocale;
  1659. }
  1660. if (!isArray(key)) {
  1661. //short-circuit everything else
  1662. locale = loadLocale(key);
  1663. if (locale) {
  1664. return locale;
  1665. }
  1666. key = [key];
  1667. }
  1668. return chooseLocale(key);
  1669. }
  1670. function listLocales() {
  1671. return keys(locales);
  1672. }
  1673. function checkOverflow (m) {
  1674. var overflow;
  1675. var a = m._a;
  1676. if (a && getParsingFlags(m).overflow === -2) {
  1677. overflow =
  1678. a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
  1679. a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
  1680. a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
  1681. a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :
  1682. a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :
  1683. a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
  1684. -1;
  1685. if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
  1686. overflow = DATE;
  1687. }
  1688. if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
  1689. overflow = WEEK;
  1690. }
  1691. if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
  1692. overflow = WEEKDAY;
  1693. }
  1694. getParsingFlags(m).overflow = overflow;
  1695. }
  1696. return m;
  1697. }
  1698. // Pick the first defined of two or three arguments.
  1699. function defaults(a, b, c) {
  1700. if (a != null) {
  1701. return a;
  1702. }
  1703. if (b != null) {
  1704. return b;
  1705. }
  1706. return c;
  1707. }
  1708. function currentDateArray(config) {
  1709. // hooks is actually the exported moment object
  1710. var nowValue = new Date(hooks.now());
  1711. if (config._useUTC) {
  1712. return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
  1713. }
  1714. return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
  1715. }
  1716. // convert an array to a date.
  1717. // the array should mirror the parameters below
  1718. // note: all values past the year are optional and will default to the lowest possible value.
  1719. // [year, month, day , hour, minute, second, millisecond]
  1720. function configFromArray (config) {
  1721. var i, date, input = [], currentDate, expectedWeekday, yearToUse;
  1722. if (config._d) {
  1723. return;
  1724. }
  1725. currentDate = currentDateArray(config);
  1726. //compute day of the year from weeks and weekdays
  1727. if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
  1728. dayOfYearFromWeekInfo(config);
  1729. }
  1730. //if the day of the year is set, figure out what it is
  1731. if (config._dayOfYear != null) {
  1732. yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
  1733. if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
  1734. getParsingFlags(config)._overflowDayOfYear = true;
  1735. }
  1736. date = createUTCDate(yearToUse, 0, config._dayOfYear);
  1737. config._a[MONTH] = date.getUTCMonth();
  1738. config._a[DATE] = date.getUTCDate();
  1739. }
  1740. // Default to current date.
  1741. // * if no year, month, day of month are given, default to today
  1742. // * if day of month is given, default month and year
  1743. // * if month is given, default only year
  1744. // * if year is given, don't default anything
  1745. for (i = 0; i < 3 && config._a[i] == null; ++i) {
  1746. config._a[i] = input[i] = currentDate[i];
  1747. }
  1748. // Zero out whatever was not defaulted, including time
  1749. for (; i < 7; i++) {
  1750. config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
  1751. }
  1752. // Check for 24:00:00.000
  1753. if (config._a[HOUR] === 24 &&
  1754. config._a[MINUTE] === 0 &&
  1755. config._a[SECOND] === 0 &&
  1756. config._a[MILLISECOND] === 0) {
  1757. config._nextDay = true;
  1758. config._a[HOUR] = 0;
  1759. }
  1760. config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
  1761. expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
  1762. // Apply timezone offset from input. The actual utcOffset can be changed
  1763. // with parseZone.
  1764. if (config._tzm != null) {
  1765. config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
  1766. }
  1767. if (config._nextDay) {
  1768. config._a[HOUR] = 24;
  1769. }
  1770. // check for mismatching day of week
  1771. if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
  1772. getParsingFlags(config).weekdayMismatch = true;
  1773. }
  1774. }
  1775. function dayOfYearFromWeekInfo(config) {
  1776. var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
  1777. w = config._w;
  1778. if (w.GG != null || w.W != null || w.E != null) {
  1779. dow = 1;
  1780. doy = 4;
  1781. // TODO: We need to take the current isoWeekYear, but that depends on
  1782. // how we interpret now (local, utc, fixed offset). So create
  1783. // a now version of current config (take local/utc/offset flags, and
  1784. // create now).
  1785. weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
  1786. week = defaults(w.W, 1);
  1787. weekday = defaults(w.E, 1);
  1788. if (weekday < 1 || weekday > 7) {
  1789. weekdayOverflow = true;
  1790. }
  1791. } else {
  1792. dow = config._locale._week.dow;
  1793. doy = config._locale._week.doy;
  1794. var curWeek = weekOfYear(createLocal(), dow, doy);
  1795. weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
  1796. // Default to current week.
  1797. week = defaults(w.w, curWeek.week);
  1798. if (w.d != null) {
  1799. // weekday -- low day numbers are considered next week
  1800. weekday = w.d;
  1801. if (weekday < 0 || weekday > 6) {
  1802. weekdayOverflow = true;
  1803. }
  1804. } else if (w.e != null) {
  1805. // local weekday -- counting starts from begining of week
  1806. weekday = w.e + dow;
  1807. if (w.e < 0 || w.e > 6) {
  1808. weekdayOverflow = true;
  1809. }
  1810. } else {
  1811. // default to begining of week
  1812. weekday = dow;
  1813. }
  1814. }
  1815. if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
  1816. getParsingFlags(config)._overflowWeeks = true;
  1817. } else if (weekdayOverflow != null) {
  1818. getParsingFlags(config)._overflowWeekday = true;
  1819. } else {
  1820. temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
  1821. config._a[YEAR] = temp.year;
  1822. config._dayOfYear = temp.dayOfYear;
  1823. }
  1824. }
  1825. // iso 8601 regex
  1826. // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
  1827. var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
  1828. var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
  1829. var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
  1830. var isoDates = [
  1831. ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
  1832. ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
  1833. ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
  1834. ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
  1835. ['YYYY-DDD', /\d{4}-\d{3}/],
  1836. ['YYYY-MM', /\d{4}-\d\d/, false],
  1837. ['YYYYYYMMDD', /[+-]\d{10}/],
  1838. ['YYYYMMDD', /\d{8}/],
  1839. // YYYYMM is NOT allowed by the standard
  1840. ['GGGG[W]WWE', /\d{4}W\d{3}/],
  1841. ['GGGG[W]WW', /\d{4}W\d{2}/, false],
  1842. ['YYYYDDD', /\d{7}/]
  1843. ];
  1844. // iso time formats and regexes
  1845. var isoTimes = [
  1846. ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
  1847. ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
  1848. ['HH:mm:ss', /\d\d:\d\d:\d\d/],
  1849. ['HH:mm', /\d\d:\d\d/],
  1850. ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
  1851. ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
  1852. ['HHmmss', /\d\d\d\d\d\d/],
  1853. ['HHmm', /\d\d\d\d/],
  1854. ['HH', /\d\d/]
  1855. ];
  1856. var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
  1857. // date from iso format
  1858. function configFromISO(config) {
  1859. var i, l,
  1860. string = config._i,
  1861. match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
  1862. allowTime, dateFormat, timeFormat, tzFormat;
  1863. if (match) {
  1864. getParsingFlags(config).iso = true;
  1865. for (i = 0, l = isoDates.length; i < l; i++) {
  1866. if (isoDates[i][1].exec(match[1])) {
  1867. dateFormat = isoDates[i][0];
  1868. allowTime = isoDates[i][2] !== false;
  1869. break;
  1870. }
  1871. }
  1872. if (dateFormat == null) {
  1873. config._isValid = false;
  1874. return;
  1875. }
  1876. if (match[3]) {
  1877. for (i = 0, l = isoTimes.length; i < l; i++) {
  1878. if (isoTimes[i][1].exec(match[3])) {
  1879. // match[2] should be 'T' or space
  1880. timeFormat = (match[2] || ' ') + isoTimes[i][0];
  1881. break;
  1882. }
  1883. }
  1884. if (timeFormat == null) {
  1885. config._isValid = false;
  1886. return;
  1887. }
  1888. }
  1889. if (!allowTime && timeFormat != null) {
  1890. config._isValid = false;
  1891. return;
  1892. }
  1893. if (match[4]) {
  1894. if (tzRegex.exec(match[4])) {
  1895. tzFormat = 'Z';
  1896. } else {
  1897. config._isValid = false;
  1898. return;
  1899. }
  1900. }
  1901. config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
  1902. configFromStringAndFormat(config);
  1903. } else {
  1904. config._isValid = false;
  1905. }
  1906. }
  1907. // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
  1908. var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
  1909. function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
  1910. var result = [
  1911. untruncateYear(yearStr),
  1912. defaultLocaleMonthsShort.indexOf(monthStr),
  1913. parseInt(dayStr, 10),
  1914. parseInt(hourStr, 10),
  1915. parseInt(minuteStr, 10)
  1916. ];
  1917. if (secondStr) {
  1918. result.push(parseInt(secondStr, 10));
  1919. }
  1920. return result;
  1921. }
  1922. function untruncateYear(yearStr) {
  1923. var year = parseInt(yearStr, 10);
  1924. if (year <= 49) {
  1925. return 2000 + year;
  1926. } else if (year <= 999) {
  1927. return 1900 + year;
  1928. }
  1929. return year;
  1930. }
  1931. function preprocessRFC2822(s) {
  1932. // Remove comments and folding whitespace and replace multiple-spaces with a single space
  1933. return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim();
  1934. }
  1935. function checkWeekday(weekdayStr, parsedInput, config) {
  1936. if (weekdayStr) {
  1937. // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
  1938. var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
  1939. weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
  1940. if (weekdayProvided !== weekdayActual) {
  1941. getParsingFlags(config).weekdayMismatch = true;
  1942. config._isValid = false;
  1943. return false;
  1944. }
  1945. }
  1946. return true;
  1947. }
  1948. var obsOffsets = {
  1949. UT: 0,
  1950. GMT: 0,
  1951. EDT: -4 * 60,
  1952. EST: -5 * 60,
  1953. CDT: -5 * 60,
  1954. CST: -6 * 60,
  1955. MDT: -6 * 60,
  1956. MST: -7 * 60,
  1957. PDT: -7 * 60,
  1958. PST: -8 * 60
  1959. };
  1960. function calculateOffset(obsOffset, militaryOffset, numOffset) {
  1961. if (obsOffset) {
  1962. return obsOffsets[obsOffset];
  1963. } else if (militaryOffset) {
  1964. // the only allowed military tz is Z
  1965. return 0;
  1966. } else {
  1967. var hm = parseInt(numOffset, 10);
  1968. var m = hm % 100, h = (hm - m) / 100;
  1969. return h * 60 + m;
  1970. }
  1971. }
  1972. // date and time from ref 2822 format
  1973. function configFromRFC2822(config) {
  1974. var match = rfc2822.exec(preprocessRFC2822(config._i));
  1975. if (match) {
  1976. var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
  1977. if (!checkWeekday(match[1], parsedArray, config)) {
  1978. return;
  1979. }
  1980. config._a = parsedArray;
  1981. config._tzm = calculateOffset(match[8], match[9], match[10]);
  1982. config._d = createUTCDate.apply(null, config._a);
  1983. config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
  1984. getParsingFlags(config).rfc2822 = true;
  1985. } else {
  1986. config._isValid = false;
  1987. }
  1988. }
  1989. // date from iso format or fallback
  1990. function configFromString(config) {
  1991. var matched = aspNetJsonRegex.exec(config._i);
  1992. if (matched !== null) {
  1993. config._d = new Date(+matched[1]);
  1994. return;
  1995. }
  1996. configFromISO(config);
  1997. if (config._isValid === false) {
  1998. delete config._isValid;
  1999. } else {
  2000. return;
  2001. }
  2002. configFromRFC2822(config);
  2003. if (config._isValid === false) {
  2004. delete config._isValid;
  2005. } else {
  2006. return;
  2007. }
  2008. // Final attempt, use Input Fallback
  2009. hooks.createFromInputFallback(config);
  2010. }
  2011. hooks.createFromInputFallback = deprecate(
  2012. 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
  2013. 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
  2014. 'discouraged and will be removed in an upcoming major release. Please refer to ' +
  2015. 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
  2016. function (config) {
  2017. config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
  2018. }
  2019. );
  2020. // constant that refers to the ISO standard
  2021. hooks.ISO_8601 = function () {};
  2022. // constant that refers to the RFC 2822 form
  2023. hooks.RFC_2822 = function () {};
  2024. // date from string and format string
  2025. function configFromStringAndFormat(config) {
  2026. // TODO: Move this to another part of the creation flow to prevent circular deps
  2027. if (config._f === hooks.ISO_8601) {
  2028. configFromISO(config);
  2029. return;
  2030. }
  2031. if (config._f === hooks.RFC_2822) {
  2032. configFromRFC2822(config);
  2033. return;
  2034. }
  2035. config._a = [];
  2036. getParsingFlags(config).empty = true;
  2037. // This array is used to make a Date, either with `new Date` or `Date.UTC`
  2038. var string = '' + config._i,
  2039. i, parsedInput, tokens, token, skipped,
  2040. stringLength = string.length,
  2041. totalParsedInputLength = 0;
  2042. tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
  2043. for (i = 0; i < tokens.length; i++) {
  2044. token = tokens[i];
  2045. parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
  2046. // console.log('token', token, 'parsedInput', parsedInput,
  2047. // 'regex', getParseRegexForToken(token, config));
  2048. if (parsedInput) {
  2049. skipped = string.substr(0, string.indexOf(parsedInput));
  2050. if (skipped.length > 0) {
  2051. getParsingFlags(config).unusedInput.push(skipped);
  2052. }
  2053. string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
  2054. totalParsedInputLength += parsedInput.length;
  2055. }
  2056. // don't parse if it's not a known token
  2057. if (formatTokenFunctions[token]) {
  2058. if (parsedInput) {
  2059. getParsingFlags(config).empty = false;
  2060. }
  2061. else {
  2062. getParsingFlags(config).unusedTokens.push(token);
  2063. }
  2064. addTimeToArrayFromToken(token, parsedInput, config);
  2065. }
  2066. else if (config._strict && !parsedInput) {
  2067. getParsingFlags(config).unusedTokens.push(token);
  2068. }
  2069. }
  2070. // add remaining unparsed input length to the string
  2071. getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
  2072. if (string.length > 0) {
  2073. getParsingFlags(config).unusedInput.push(string);
  2074. }
  2075. // clear _12h flag if hour is <= 12
  2076. if (config._a[HOUR] <= 12 &&
  2077. getParsingFlags(config).bigHour === true &&
  2078. config._a[HOUR] > 0) {
  2079. getParsingFlags(config).bigHour = undefined;
  2080. }
  2081. getParsingFlags(config).parsedDateParts = config._a.slice(0);
  2082. getParsingFlags(config).meridiem = config._meridiem;
  2083. // handle meridiem
  2084. config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
  2085. configFromArray(config);
  2086. checkOverflow(config);
  2087. }
  2088. function meridiemFixWrap (locale, hour, meridiem) {
  2089. var isPm;
  2090. if (meridiem == null) {
  2091. // nothing to do
  2092. return hour;
  2093. }
  2094. if (locale.meridiemHour != null) {
  2095. return locale.meridiemHour(hour, meridiem);
  2096. } else if (locale.isPM != null) {
  2097. // Fallback
  2098. isPm = locale.isPM(meridiem);
  2099. if (isPm && hour < 12) {
  2100. hour += 12;
  2101. }
  2102. if (!isPm && hour === 12) {
  2103. hour = 0;
  2104. }
  2105. return hour;
  2106. } else {
  2107. // this is not supposed to happen
  2108. return hour;
  2109. }
  2110. }
  2111. // date from string and array of format strings
  2112. function configFromStringAndArray(config) {
  2113. var tempConfig,
  2114. bestMoment,
  2115. scoreToBeat,
  2116. i,
  2117. currentScore;
  2118. if (config._f.length === 0) {
  2119. getParsingFlags(config).invalidFormat = true;
  2120. config._d = new Date(NaN);
  2121. return;
  2122. }
  2123. for (i = 0; i < config._f.length; i++) {
  2124. currentScore = 0;
  2125. tempConfig = copyConfig({}, config);
  2126. if (config._useUTC != null) {
  2127. tempConfig._useUTC = config._useUTC;
  2128. }
  2129. tempConfig._f = config._f[i];
  2130. configFromStringAndFormat(tempConfig);
  2131. if (!isValid(tempConfig)) {
  2132. continue;
  2133. }
  2134. // if there is any input that was not parsed add a penalty for that format
  2135. currentScore += getParsingFlags(tempConfig).charsLeftOver;
  2136. //or tokens
  2137. currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
  2138. getParsingFlags(tempConfig).score = currentScore;
  2139. if (scoreToBeat == null || currentScore < scoreToBeat) {
  2140. scoreToBeat = currentScore;
  2141. bestMoment = tempConfig;
  2142. }
  2143. }
  2144. extend(config, bestMoment || tempConfig);
  2145. }
  2146. function configFromObject(config) {
  2147. if (config._d) {
  2148. return;
  2149. }
  2150. var i = normalizeObjectUnits(config._i);
  2151. config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
  2152. return obj && parseInt(obj, 10);
  2153. });
  2154. configFromArray(config);
  2155. }
  2156. function createFromConfig (config) {
  2157. var res = new Moment(checkOverflow(prepareConfig(config)));
  2158. if (res._nextDay) {
  2159. // Adding is smart enough around DST
  2160. res.add(1, 'd');
  2161. res._nextDay = undefined;
  2162. }
  2163. return res;
  2164. }
  2165. function prepareConfig (config) {
  2166. var input = config._i,
  2167. format = config._f;
  2168. config._locale = config._locale || getLocale(config._l);
  2169. if (input === null || (format === undefined && input === '')) {
  2170. return createInvalid({nullInput: true});
  2171. }
  2172. if (typeof input === 'string') {
  2173. config._i = input = config._locale.preparse(input);
  2174. }
  2175. if (isMoment(input)) {
  2176. return new Moment(checkOverflow(input));
  2177. } else if (isDate(input)) {
  2178. config._d = input;
  2179. } else if (isArray(format)) {
  2180. configFromStringAndArray(config);
  2181. } else if (format) {
  2182. configFromStringAndFormat(config);
  2183. } else {
  2184. configFromInput(config);
  2185. }
  2186. if (!isValid(config)) {
  2187. config._d = null;
  2188. }
  2189. return config;
  2190. }
  2191. function configFromInput(config) {
  2192. var input = config._i;
  2193. if (isUndefined(input)) {
  2194. config._d = new Date(hooks.now());
  2195. } else if (isDate(input)) {
  2196. config._d = new Date(input.valueOf());
  2197. } else if (typeof input === 'string') {
  2198. configFromString(config);
  2199. } else if (isArray(input)) {
  2200. config._a = map(input.slice(0), function (obj) {
  2201. return parseInt(obj, 10);
  2202. });
  2203. configFromArray(config);
  2204. } else if (isObject(input)) {
  2205. configFromObject(config);
  2206. } else if (isNumber(input)) {
  2207. // from milliseconds
  2208. config._d = new Date(input);
  2209. } else {
  2210. hooks.createFromInputFallback(config);
  2211. }
  2212. }
  2213. function createLocalOrUTC (input, format, locale, strict, isUTC) {
  2214. var c = {};
  2215. if (locale === true || locale === false) {
  2216. strict = locale;
  2217. locale = undefined;
  2218. }
  2219. if ((isObject(input) && isObjectEmpty(input)) ||
  2220. (isArray(input) && input.length === 0)) {
  2221. input = undefined;
  2222. }
  2223. // object construction must be done this way.
  2224. // https://github.com/moment/moment/issues/1423
  2225. c._isAMomentObject = true;
  2226. c._useUTC = c._isUTC = isUTC;
  2227. c._l = locale;
  2228. c._i = input;
  2229. c._f = format;
  2230. c._strict = strict;
  2231. return createFromConfig(c);
  2232. }
  2233. function createLocal (input, format, locale, strict) {
  2234. return createLocalOrUTC(input, format, locale, strict, false);
  2235. }
  2236. var prototypeMin = deprecate(
  2237. 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
  2238. function () {
  2239. var other = createLocal.apply(null, arguments);
  2240. if (this.isValid() && other.isValid()) {
  2241. return other < this ? this : other;
  2242. } else {
  2243. return createInvalid();
  2244. }
  2245. }
  2246. );
  2247. var prototypeMax = deprecate(
  2248. 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
  2249. function () {
  2250. var other = createLocal.apply(null, arguments);
  2251. if (this.isValid() && other.isValid()) {
  2252. return other > this ? this : other;
  2253. } else {
  2254. return createInvalid();
  2255. }
  2256. }
  2257. );
  2258. // Pick a moment m from moments so that m[fn](other) is true for all
  2259. // other. This relies on the function fn to be transitive.
  2260. //
  2261. // moments should either be an array of moment objects or an array, whose
  2262. // first element is an array of moment objects.
  2263. function pickBy(fn, moments) {
  2264. var res, i;
  2265. if (moments.length === 1 && isArray(moments[0])) {
  2266. moments = moments[0];
  2267. }
  2268. if (!moments.length) {
  2269. return createLocal();
  2270. }
  2271. res = moments[0];
  2272. for (i = 1; i < moments.length; ++i) {
  2273. if (!moments[i].isValid() || moments[i][fn](res)) {
  2274. res = moments[i];
  2275. }
  2276. }
  2277. return res;
  2278. }
  2279. // TODO: Use [].sort instead?
  2280. function min () {
  2281. var args = [].slice.call(arguments, 0);
  2282. return pickBy('isBefore', args);
  2283. }
  2284. function max () {
  2285. var args = [].slice.call(arguments, 0);
  2286. return pickBy('isAfter', args);
  2287. }
  2288. var now = function () {
  2289. return Date.now ? Date.now() : +(new Date());
  2290. };
  2291. var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
  2292. function isDurationValid(m) {
  2293. for (var key in m) {
  2294. if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
  2295. return false;
  2296. }
  2297. }
  2298. var unitHasDecimal = false;
  2299. for (var i = 0; i < ordering.length; ++i) {
  2300. if (m[ordering[i]]) {
  2301. if (unitHasDecimal) {
  2302. return false; // only allow non-integers for smallest unit
  2303. }
  2304. if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
  2305. unitHasDecimal = true;
  2306. }
  2307. }
  2308. }
  2309. return true;
  2310. }
  2311. function isValid$1() {
  2312. return this._isValid;
  2313. }
  2314. function createInvalid$1() {
  2315. return createDuration(NaN);
  2316. }
  2317. function Duration (duration) {
  2318. var normalizedInput = normalizeObjectUnits(duration),
  2319. years = normalizedInput.year || 0,
  2320. quarters = normalizedInput.quarter || 0,
  2321. months = normalizedInput.month || 0,
  2322. weeks = normalizedInput.week || 0,
  2323. days = normalizedInput.day || 0,
  2324. hours = normalizedInput.hour || 0,
  2325. minutes = normalizedInput.minute || 0,
  2326. seconds = normalizedInput.second || 0,
  2327. milliseconds = normalizedInput.millisecond || 0;
  2328. this._isValid = isDurationValid(normalizedInput);
  2329. // representation for dateAddRemove
  2330. this._milliseconds = +milliseconds +
  2331. seconds * 1e3 + // 1000
  2332. minutes * 6e4 + // 1000 * 60
  2333. hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
  2334. // Because of dateAddRemove treats 24 hours as different from a
  2335. // day when working around DST, we need to store them separately
  2336. this._days = +days +
  2337. weeks * 7;
  2338. // It is impossible to translate months into days without knowing
  2339. // which months you are are talking about, so we have to store
  2340. // it separately.
  2341. this._months = +months +
  2342. quarters * 3 +
  2343. years * 12;
  2344. this._data = {};
  2345. this._locale = getLocale();
  2346. this._bubble();
  2347. }
  2348. function isDuration (obj) {
  2349. return obj instanceof Duration;
  2350. }
  2351. function absRound (number) {
  2352. if (number < 0) {
  2353. return Math.round(-1 * number) * -1;
  2354. } else {
  2355. return Math.round(number);
  2356. }
  2357. }
  2358. // FORMATTING
  2359. function offset (token, separator) {
  2360. addFormatToken(token, 0, 0, function () {
  2361. var offset = this.utcOffset();
  2362. var sign = '+';
  2363. if (offset < 0) {
  2364. offset = -offset;
  2365. sign = '-';
  2366. }
  2367. return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
  2368. });
  2369. }
  2370. offset('Z', ':');
  2371. offset('ZZ', '');
  2372. // PARSING
  2373. addRegexToken('Z', matchShortOffset);
  2374. addRegexToken('ZZ', matchShortOffset);
  2375. addParseToken(['Z', 'ZZ'], function (input, array, config) {
  2376. config._useUTC = true;
  2377. config._tzm = offsetFromString(matchShortOffset, input);
  2378. });
  2379. // HELPERS
  2380. // timezone chunker
  2381. // '+10:00' > ['10', '00']
  2382. // '-1530' > ['-15', '30']
  2383. var chunkOffset = /([\+\-]|\d\d)/gi;
  2384. function offsetFromString(matcher, string) {
  2385. var matches = (string || '').match(matcher);
  2386. if (matches === null) {
  2387. return null;
  2388. }
  2389. var chunk = matches[matches.length - 1] || [];
  2390. var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
  2391. var minutes = +(parts[1] * 60) + toInt(parts[2]);
  2392. return minutes === 0 ?
  2393. 0 :
  2394. parts[0] === '+' ? minutes : -minutes;
  2395. }
  2396. // Return a moment from input, that is local/utc/zone equivalent to model.
  2397. function cloneWithOffset(input, model) {
  2398. var res, diff;
  2399. if (model._isUTC) {
  2400. res = model.clone();
  2401. diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
  2402. // Use low-level api, because this fn is low-level api.
  2403. res._d.setTime(res._d.valueOf() + diff);
  2404. hooks.updateOffset(res, false);
  2405. return res;
  2406. } else {
  2407. return createLocal(input).local();
  2408. }
  2409. }
  2410. function getDateOffset (m) {
  2411. // On Firefox.24 Date#getTimezoneOffset returns a floating point.
  2412. // https://github.com/moment/moment/pull/1871
  2413. return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
  2414. }
  2415. // HOOKS
  2416. // This function will be called whenever a moment is mutated.
  2417. // It is intended to keep the offset in sync with the timezone.
  2418. hooks.updateOffset = function () {};
  2419. // MOMENTS
  2420. // keepLocalTime = true means only change the timezone, without
  2421. // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
  2422. // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
  2423. // +0200, so we adjust the time as needed, to be valid.
  2424. //
  2425. // Keeping the time actually adds/subtracts (one hour)
  2426. // from the actual represented time. That is why we call updateOffset
  2427. // a second time. In case it wants us to change the offset again
  2428. // _changeInProgress == true case, then we have to adjust, because
  2429. // there is no such time in the given timezone.
  2430. function getSetOffset (input, keepLocalTime, keepMinutes) {
  2431. var offset = this._offset || 0,
  2432. localAdjust;
  2433. if (!this.isValid()) {
  2434. return input != null ? this : NaN;
  2435. }
  2436. if (input != null) {
  2437. if (typeof input === 'string') {
  2438. input = offsetFromString(matchShortOffset, input);
  2439. if (input === null) {
  2440. return this;
  2441. }
  2442. } else if (Math.abs(input) < 16 && !keepMinutes) {
  2443. input = input * 60;
  2444. }
  2445. if (!this._isUTC && keepLocalTime) {
  2446. localAdjust = getDateOffset(this);
  2447. }
  2448. this._offset = input;
  2449. this._isUTC = true;
  2450. if (localAdjust != null) {
  2451. this.add(localAdjust, 'm');
  2452. }
  2453. if (offset !== input) {
  2454. if (!keepLocalTime || this._changeInProgress) {
  2455. addSubtract(this, createDuration(input - offset, 'm'), 1, false);
  2456. } else if (!this._changeInProgress) {
  2457. this._changeInProgress = true;
  2458. hooks.updateOffset(this, true);
  2459. this._changeInProgress = null;
  2460. }
  2461. }
  2462. return this;
  2463. } else {
  2464. return this._isUTC ? offset : getDateOffset(this);
  2465. }
  2466. }
  2467. function getSetZone (input, keepLocalTime) {
  2468. if (input != null) {
  2469. if (typeof input !== 'string') {
  2470. input = -input;
  2471. }
  2472. this.utcOffset(input, keepLocalTime);
  2473. return this;
  2474. } else {
  2475. return -this.utcOffset();
  2476. }
  2477. }
  2478. function setOffsetToUTC (keepLocalTime) {
  2479. return this.utcOffset(0, keepLocalTime);
  2480. }
  2481. function setOffsetToLocal (keepLocalTime) {
  2482. if (this._isUTC) {
  2483. this.utcOffset(0, keepLocalTime);
  2484. this._isUTC = false;
  2485. if (keepLocalTime) {
  2486. this.subtract(getDateOffset(this), 'm');
  2487. }
  2488. }
  2489. return this;
  2490. }
  2491. function setOffsetToParsedOffset () {
  2492. if (this._tzm != null) {
  2493. this.utcOffset(this._tzm, false, true);
  2494. } else if (typeof this._i === 'string') {
  2495. var tZone = offsetFromString(matchOffset, this._i);
  2496. if (tZone != null) {
  2497. this.utcOffset(tZone);
  2498. }
  2499. else {
  2500. this.utcOffset(0, true);
  2501. }
  2502. }
  2503. return this;
  2504. }
  2505. function hasAlignedHourOffset (input) {
  2506. if (!this.isValid()) {
  2507. return false;
  2508. }
  2509. input = input ? createLocal(input).utcOffset() : 0;
  2510. return (this.utcOffset() - input) % 60 === 0;
  2511. }
  2512. function isDaylightSavingTime () {
  2513. return (
  2514. this.utcOffset() > this.clone().month(0).utcOffset() ||
  2515. this.utcOffset() > this.clone().month(5).utcOffset()
  2516. );
  2517. }
  2518. function isDaylightSavingTimeShifted () {
  2519. if (!isUndefined(this._isDSTShifted)) {
  2520. return this._isDSTShifted;
  2521. }
  2522. var c = {};
  2523. copyConfig(c, this);
  2524. c = prepareConfig(c);
  2525. if (c._a) {
  2526. var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
  2527. this._isDSTShifted = this.isValid() &&
  2528. compareArrays(c._a, other.toArray()) > 0;
  2529. } else {
  2530. this._isDSTShifted = false;
  2531. }
  2532. return this._isDSTShifted;
  2533. }
  2534. function isLocal () {
  2535. return this.isValid() ? !this._isUTC : false;
  2536. }
  2537. function isUtcOffset () {
  2538. return this.isValid() ? this._isUTC : false;
  2539. }
  2540. function isUtc () {
  2541. return this.isValid() ? this._isUTC && this._offset === 0 : false;
  2542. }
  2543. // ASP.NET json date format regex
  2544. var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
  2545. // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
  2546. // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
  2547. // and further modified to allow for strings containing both week and day
  2548. var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
  2549. function createDuration (input, key) {
  2550. var duration = input,
  2551. // matching against regexp is expensive, do it on demand
  2552. match = null,
  2553. sign,
  2554. ret,
  2555. diffRes;
  2556. if (isDuration(input)) {
  2557. duration = {
  2558. ms : input._milliseconds,
  2559. d : input._days,
  2560. M : input._months
  2561. };
  2562. } else if (isNumber(input)) {
  2563. duration = {};
  2564. if (key) {
  2565. duration[key] = input;
  2566. } else {
  2567. duration.milliseconds = input;
  2568. }
  2569. } else if (!!(match = aspNetRegex.exec(input))) {
  2570. sign = (match[1] === '-') ? -1 : 1;
  2571. duration = {
  2572. y : 0,
  2573. d : toInt(match[DATE]) * sign,
  2574. h : toInt(match[HOUR]) * sign,
  2575. m : toInt(match[MINUTE]) * sign,
  2576. s : toInt(match[SECOND]) * sign,
  2577. ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
  2578. };
  2579. } else if (!!(match = isoRegex.exec(input))) {
  2580. sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
  2581. duration = {
  2582. y : parseIso(match[2], sign),
  2583. M : parseIso(match[3], sign),
  2584. w : parseIso(match[4], sign),
  2585. d : parseIso(match[5], sign),
  2586. h : parseIso(match[6], sign),
  2587. m : parseIso(match[7], sign),
  2588. s : parseIso(match[8], sign)
  2589. };
  2590. } else if (duration == null) {// checks for null or undefined
  2591. duration = {};
  2592. } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
  2593. diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
  2594. duration = {};
  2595. duration.ms = diffRes.milliseconds;
  2596. duration.M = diffRes.months;
  2597. }
  2598. ret = new Duration(duration);
  2599. if (isDuration(input) && hasOwnProp(input, '_locale')) {
  2600. ret._locale = input._locale;
  2601. }
  2602. return ret;
  2603. }
  2604. createDuration.fn = Duration.prototype;
  2605. createDuration.invalid = createInvalid$1;
  2606. function parseIso (inp, sign) {
  2607. // We'd normally use ~~inp for this, but unfortunately it also
  2608. // converts floats to ints.
  2609. // inp may be undefined, so careful calling replace on it.
  2610. var res = inp && parseFloat(inp.replace(',', '.'));
  2611. // apply sign while we're at it
  2612. return (isNaN(res) ? 0 : res) * sign;
  2613. }
  2614. function positiveMomentsDifference(base, other) {
  2615. var res = {milliseconds: 0, months: 0};
  2616. res.months = other.month() - base.month() +
  2617. (other.year() - base.year()) * 12;
  2618. if (base.clone().add(res.months, 'M').isAfter(other)) {
  2619. --res.months;
  2620. }
  2621. res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
  2622. return res;
  2623. }
  2624. function momentsDifference(base, other) {
  2625. var res;
  2626. if (!(base.isValid() && other.isValid())) {
  2627. return {milliseconds: 0, months: 0};
  2628. }
  2629. other = cloneWithOffset(other, base);
  2630. if (base.isBefore(other)) {
  2631. res = positiveMomentsDifference(base, other);
  2632. } else {
  2633. res = positiveMomentsDifference(other, base);
  2634. res.milliseconds = -res.milliseconds;
  2635. res.months = -res.months;
  2636. }
  2637. return res;
  2638. }
  2639. // TODO: remove 'name' arg after deprecation is removed
  2640. function createAdder(direction, name) {
  2641. return function (val, period) {
  2642. var dur, tmp;
  2643. //invert the arguments, but complain about it
  2644. if (period !== null && !isNaN(+period)) {
  2645. deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
  2646. 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
  2647. tmp = val; val = period; period = tmp;
  2648. }
  2649. val = typeof val === 'string' ? +val : val;
  2650. dur = createDuration(val, period);
  2651. addSubtract(this, dur, direction);
  2652. return this;
  2653. };
  2654. }
  2655. function addSubtract (mom, duration, isAdding, updateOffset) {
  2656. var milliseconds = duration._milliseconds,
  2657. days = absRound(duration._days),
  2658. months = absRound(duration._months);
  2659. if (!mom.isValid()) {
  2660. // No op
  2661. return;
  2662. }
  2663. updateOffset = updateOffset == null ? true : updateOffset;
  2664. if (months) {
  2665. setMonth(mom, get(mom, 'Month') + months * isAdding);
  2666. }
  2667. if (days) {
  2668. set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
  2669. }
  2670. if (milliseconds) {
  2671. mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
  2672. }
  2673. if (updateOffset) {
  2674. hooks.updateOffset(mom, days || months);
  2675. }
  2676. }
  2677. var add = createAdder(1, 'add');
  2678. var subtract = createAdder(-1, 'subtract');
  2679. function getCalendarFormat(myMoment, now) {
  2680. var diff = myMoment.diff(now, 'days', true);
  2681. return diff < -6 ? 'sameElse' :
  2682. diff < -1 ? 'lastWeek' :
  2683. diff < 0 ? 'lastDay' :
  2684. diff < 1 ? 'sameDay' :
  2685. diff < 2 ? 'nextDay' :
  2686. diff < 7 ? 'nextWeek' : 'sameElse';
  2687. }
  2688. function calendar$1 (time, formats) {
  2689. // We want to compare the start of today, vs this.
  2690. // Getting start-of-today depends on whether we're local/utc/offset or not.
  2691. var now = time || createLocal(),
  2692. sod = cloneWithOffset(now, this).startOf('day'),
  2693. format = hooks.calendarFormat(this, sod) || 'sameElse';
  2694. var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
  2695. return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
  2696. }
  2697. function clone () {
  2698. return new Moment(this);
  2699. }
  2700. function isAfter (input, units) {
  2701. var localInput = isMoment(input) ? input : createLocal(input);
  2702. if (!(this.isValid() && localInput.isValid())) {
  2703. return false;
  2704. }
  2705. units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
  2706. if (units === 'millisecond') {
  2707. return this.valueOf() > localInput.valueOf();
  2708. } else {
  2709. return localInput.valueOf() < this.clone().startOf(units).valueOf();
  2710. }
  2711. }
  2712. function isBefore (input, units) {
  2713. var localInput = isMoment(input) ? input : createLocal(input);
  2714. if (!(this.isValid() && localInput.isValid())) {
  2715. return false;
  2716. }
  2717. units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
  2718. if (units === 'millisecond') {
  2719. return this.valueOf() < localInput.valueOf();
  2720. } else {
  2721. return this.clone().endOf(units).valueOf() < localInput.valueOf();
  2722. }
  2723. }
  2724. function isBetween (from, to, units, inclusivity) {
  2725. inclusivity = inclusivity || '()';
  2726. return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
  2727. (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
  2728. }
  2729. function isSame (input, units) {
  2730. var localInput = isMoment(input) ? input : createLocal(input),
  2731. inputMs;
  2732. if (!(this.isValid() && localInput.isValid())) {
  2733. return false;
  2734. }
  2735. units = normalizeUnits(units || 'millisecond');
  2736. if (units === 'millisecond') {
  2737. return this.valueOf() === localInput.valueOf();
  2738. } else {
  2739. inputMs = localInput.valueOf();
  2740. return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
  2741. }
  2742. }
  2743. function isSameOrAfter (input, units) {
  2744. return this.isSame(input, units) || this.isAfter(input,units);
  2745. }
  2746. function isSameOrBefore (input, units) {
  2747. return this.isSame(input, units) || this.isBefore(input,units);
  2748. }
  2749. function diff (input, units, asFloat) {
  2750. var that,
  2751. zoneDelta,
  2752. delta, output;
  2753. if (!this.isValid()) {
  2754. return NaN;
  2755. }
  2756. that = cloneWithOffset(input, this);
  2757. if (!that.isValid()) {
  2758. return NaN;
  2759. }
  2760. zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
  2761. units = normalizeUnits(units);
  2762. switch (units) {
  2763. case 'year': output = monthDiff(this, that) / 12; break;
  2764. case 'month': output = monthDiff(this, that); break;
  2765. case 'quarter': output = monthDiff(this, that) / 3; break;
  2766. case 'second': output = (this - that) / 1e3; break; // 1000
  2767. case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
  2768. case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
  2769. case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
  2770. case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
  2771. default: output = this - that;
  2772. }
  2773. return asFloat ? output : absFloor(output);
  2774. }
  2775. function monthDiff (a, b) {
  2776. // difference in months
  2777. var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
  2778. // b is in (anchor - 1 month, anchor + 1 month)
  2779. anchor = a.clone().add(wholeMonthDiff, 'months'),
  2780. anchor2, adjust;
  2781. if (b - anchor < 0) {
  2782. anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
  2783. // linear across the month
  2784. adjust = (b - anchor) / (anchor - anchor2);
  2785. } else {
  2786. anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
  2787. // linear across the month
  2788. adjust = (b - anchor) / (anchor2 - anchor);
  2789. }
  2790. //check for negative zero, return zero if negative zero
  2791. return -(wholeMonthDiff + adjust) || 0;
  2792. }
  2793. hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
  2794. hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
  2795. function toString () {
  2796. return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
  2797. }
  2798. function toISOString(keepOffset) {
  2799. if (!this.isValid()) {
  2800. return null;
  2801. }
  2802. var utc = keepOffset !== true;
  2803. var m = utc ? this.clone().utc() : this;
  2804. if (m.year() < 0 || m.year() > 9999) {
  2805. return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
  2806. }
  2807. if (isFunction(Date.prototype.toISOString)) {
  2808. // native implementation is ~50x faster, use it when we can
  2809. if (utc) {
  2810. return this.toDate().toISOString();
  2811. } else {
  2812. return new Date(this._d.valueOf()).toISOString().replace('Z', formatMoment(m, 'Z'));
  2813. }
  2814. }
  2815. return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
  2816. }
  2817. /**
  2818. * Return a human readable representation of a moment that can
  2819. * also be evaluated to get a new moment which is the same
  2820. *
  2821. * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
  2822. */
  2823. function inspect () {
  2824. if (!this.isValid()) {
  2825. return 'moment.invalid(/* ' + this._i + ' */)';
  2826. }
  2827. var func = 'moment';
  2828. var zone = '';
  2829. if (!this.isLocal()) {
  2830. func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
  2831. zone = 'Z';
  2832. }
  2833. var prefix = '[' + func + '("]';
  2834. var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
  2835. var datetime = '-MM-DD[T]HH:mm:ss.SSS';
  2836. var suffix = zone + '[")]';
  2837. return this.format(prefix + year + datetime + suffix);
  2838. }
  2839. function format (inputString) {
  2840. if (!inputString) {
  2841. inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
  2842. }
  2843. var output = formatMoment(this, inputString);
  2844. return this.localeData().postformat(output);
  2845. }
  2846. function from (time, withoutSuffix) {
  2847. if (this.isValid() &&
  2848. ((isMoment(time) && time.isValid()) ||
  2849. createLocal(time).isValid())) {
  2850. return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
  2851. } else {
  2852. return this.localeData().invalidDate();
  2853. }
  2854. }
  2855. function fromNow (withoutSuffix) {
  2856. return this.from(createLocal(), withoutSuffix);
  2857. }
  2858. function to (time, withoutSuffix) {
  2859. if (this.isValid() &&
  2860. ((isMoment(time) && time.isValid()) ||
  2861. createLocal(time).isValid())) {
  2862. return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
  2863. } else {
  2864. return this.localeData().invalidDate();
  2865. }
  2866. }
  2867. function toNow (withoutSuffix) {
  2868. return this.to(createLocal(), withoutSuffix);
  2869. }
  2870. // If passed a locale key, it will set the locale for this
  2871. // instance. Otherwise, it will return the locale configuration
  2872. // variables for this instance.
  2873. function locale (key) {
  2874. var newLocaleData;
  2875. if (key === undefined) {
  2876. return this._locale._abbr;
  2877. } else {
  2878. newLocaleData = getLocale(key);
  2879. if (newLocaleData != null) {
  2880. this._locale = newLocaleData;
  2881. }
  2882. return this;
  2883. }
  2884. }
  2885. var lang = deprecate(
  2886. 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
  2887. function (key) {
  2888. if (key === undefined) {
  2889. return this.localeData();
  2890. } else {
  2891. return this.locale(key);
  2892. }
  2893. }
  2894. );
  2895. function localeData () {
  2896. return this._locale;
  2897. }
  2898. function startOf (units) {
  2899. units = normalizeUnits(units);
  2900. // the following switch intentionally omits break keywords
  2901. // to utilize falling through the cases.
  2902. switch (units) {
  2903. case 'year':
  2904. this.month(0);
  2905. /* falls through */
  2906. case 'quarter':
  2907. case 'month':
  2908. this.date(1);
  2909. /* falls through */
  2910. case 'week':
  2911. case 'isoWeek':
  2912. case 'day':
  2913. case 'date':
  2914. this.hours(0);
  2915. /* falls through */
  2916. case 'hour':
  2917. this.minutes(0);
  2918. /* falls through */
  2919. case 'minute':
  2920. this.seconds(0);
  2921. /* falls through */
  2922. case 'second':
  2923. this.milliseconds(0);
  2924. }
  2925. // weeks are a special case
  2926. if (units === 'week') {
  2927. this.weekday(0);
  2928. }
  2929. if (units === 'isoWeek') {
  2930. this.isoWeekday(1);
  2931. }
  2932. // quarters are also special
  2933. if (units === 'quarter') {
  2934. this.month(Math.floor(this.month() / 3) * 3);
  2935. }
  2936. return this;
  2937. }
  2938. function endOf (units) {
  2939. units = normalizeUnits(units);
  2940. if (units === undefined || units === 'millisecond') {
  2941. return this;
  2942. }
  2943. // 'date' is an alias for 'day', so it should be considered as such.
  2944. if (units === 'date') {
  2945. units = 'day';
  2946. }
  2947. return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
  2948. }
  2949. function valueOf () {
  2950. return this._d.valueOf() - ((this._offset || 0) * 60000);
  2951. }
  2952. function unix () {
  2953. return Math.floor(this.valueOf() / 1000);
  2954. }
  2955. function toDate () {
  2956. return new Date(this.valueOf());
  2957. }
  2958. function toArray () {
  2959. var m = this;
  2960. return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
  2961. }
  2962. function toObject () {
  2963. var m = this;
  2964. return {
  2965. years: m.year(),
  2966. months: m.month(),
  2967. date: m.date(),
  2968. hours: m.hours(),
  2969. minutes: m.minutes(),
  2970. seconds: m.seconds(),
  2971. milliseconds: m.milliseconds()
  2972. };
  2973. }
  2974. function toJSON () {
  2975. // new Date(NaN).toJSON() === null
  2976. return this.isValid() ? this.toISOString() : null;
  2977. }
  2978. function isValid$2 () {
  2979. return isValid(this);
  2980. }
  2981. function parsingFlags () {
  2982. return extend({}, getParsingFlags(this));
  2983. }
  2984. function invalidAt () {
  2985. return getParsingFlags(this).overflow;
  2986. }
  2987. function creationData() {
  2988. return {
  2989. input: this._i,
  2990. format: this._f,
  2991. locale: this._locale,
  2992. isUTC: this._isUTC,
  2993. strict: this._strict
  2994. };
  2995. }
  2996. // FORMATTING
  2997. addFormatToken(0, ['gg', 2], 0, function () {
  2998. return this.weekYear() % 100;
  2999. });
  3000. addFormatToken(0, ['GG', 2], 0, function () {
  3001. return this.isoWeekYear() % 100;
  3002. });
  3003. function addWeekYearFormatToken (token, getter) {
  3004. addFormatToken(0, [token, token.length], 0, getter);
  3005. }
  3006. addWeekYearFormatToken('gggg', 'weekYear');
  3007. addWeekYearFormatToken('ggggg', 'weekYear');
  3008. addWeekYearFormatToken('GGGG', 'isoWeekYear');
  3009. addWeekYearFormatToken('GGGGG', 'isoWeekYear');
  3010. // ALIASES
  3011. addUnitAlias('weekYear', 'gg');
  3012. addUnitAlias('isoWeekYear', 'GG');
  3013. // PRIORITY
  3014. addUnitPriority('weekYear', 1);
  3015. addUnitPriority('isoWeekYear', 1);
  3016. // PARSING
  3017. addRegexToken('G', matchSigned);
  3018. addRegexToken('g', matchSigned);
  3019. addRegexToken('GG', match1to2, match2);
  3020. addRegexToken('gg', match1to2, match2);
  3021. addRegexToken('GGGG', match1to4, match4);
  3022. addRegexToken('gggg', match1to4, match4);
  3023. addRegexToken('GGGGG', match1to6, match6);
  3024. addRegexToken('ggggg', match1to6, match6);
  3025. addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
  3026. week[token.substr(0, 2)] = toInt(input);
  3027. });
  3028. addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
  3029. week[token] = hooks.parseTwoDigitYear(input);
  3030. });
  3031. // MOMENTS
  3032. function getSetWeekYear (input) {
  3033. return getSetWeekYearHelper.call(this,
  3034. input,
  3035. this.week(),
  3036. this.weekday(),
  3037. this.localeData()._week.dow,
  3038. this.localeData()._week.doy);
  3039. }
  3040. function getSetISOWeekYear (input) {
  3041. return getSetWeekYearHelper.call(this,
  3042. input, this.isoWeek(), this.isoWeekday(), 1, 4);
  3043. }
  3044. function getISOWeeksInYear () {
  3045. return weeksInYear(this.year(), 1, 4);
  3046. }
  3047. function getWeeksInYear () {
  3048. var weekInfo = this.localeData()._week;
  3049. return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
  3050. }
  3051. function getSetWeekYearHelper(input, week, weekday, dow, doy) {
  3052. var weeksTarget;
  3053. if (input == null) {
  3054. return weekOfYear(this, dow, doy).year;
  3055. } else {
  3056. weeksTarget = weeksInYear(input, dow, doy);
  3057. if (week > weeksTarget) {
  3058. week = weeksTarget;
  3059. }
  3060. return setWeekAll.call(this, input, week, weekday, dow, doy);
  3061. }
  3062. }
  3063. function setWeekAll(weekYear, week, weekday, dow, doy) {
  3064. var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
  3065. date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
  3066. this.year(date.getUTCFullYear());
  3067. this.month(date.getUTCMonth());
  3068. this.date(date.getUTCDate());
  3069. return this;
  3070. }
  3071. // FORMATTING
  3072. addFormatToken('Q', 0, 'Qo', 'quarter');
  3073. // ALIASES
  3074. addUnitAlias('quarter', 'Q');
  3075. // PRIORITY
  3076. addUnitPriority('quarter', 7);
  3077. // PARSING
  3078. addRegexToken('Q', match1);
  3079. addParseToken('Q', function (input, array) {
  3080. array[MONTH] = (toInt(input) - 1) * 3;
  3081. });
  3082. // MOMENTS
  3083. function getSetQuarter (input) {
  3084. return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
  3085. }
  3086. // FORMATTING
  3087. addFormatToken('D', ['DD', 2], 'Do', 'date');
  3088. // ALIASES
  3089. addUnitAlias('date', 'D');
  3090. // PRIOROITY
  3091. addUnitPriority('date', 9);
  3092. // PARSING
  3093. addRegexToken('D', match1to2);
  3094. addRegexToken('DD', match1to2, match2);
  3095. addRegexToken('Do', function (isStrict, locale) {
  3096. // TODO: Remove "ordinalParse" fallback in next major release.
  3097. return isStrict ?
  3098. (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
  3099. locale._dayOfMonthOrdinalParseLenient;
  3100. });
  3101. addParseToken(['D', 'DD'], DATE);
  3102. addParseToken('Do', function (input, array) {
  3103. array[DATE] = toInt(input.match(match1to2)[0]);
  3104. });
  3105. // MOMENTS
  3106. var getSetDayOfMonth = makeGetSet('Date', true);
  3107. // FORMATTING
  3108. addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
  3109. // ALIASES
  3110. addUnitAlias('dayOfYear', 'DDD');
  3111. // PRIORITY
  3112. addUnitPriority('dayOfYear', 4);
  3113. // PARSING
  3114. addRegexToken('DDD', match1to3);
  3115. addRegexToken('DDDD', match3);
  3116. addParseToken(['DDD', 'DDDD'], function (input, array, config) {
  3117. config._dayOfYear = toInt(input);
  3118. });
  3119. // HELPERS
  3120. // MOMENTS
  3121. function getSetDayOfYear (input) {
  3122. var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
  3123. return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
  3124. }
  3125. // FORMATTING
  3126. addFormatToken('m', ['mm', 2], 0, 'minute');
  3127. // ALIASES
  3128. addUnitAlias('minute', 'm');
  3129. // PRIORITY
  3130. addUnitPriority('minute', 14);
  3131. // PARSING
  3132. addRegexToken('m', match1to2);
  3133. addRegexToken('mm', match1to2, match2);
  3134. addParseToken(['m', 'mm'], MINUTE);
  3135. // MOMENTS
  3136. var getSetMinute = makeGetSet('Minutes', false);
  3137. // FORMATTING
  3138. addFormatToken('s', ['ss', 2], 0, 'second');
  3139. // ALIASES
  3140. addUnitAlias('second', 's');
  3141. // PRIORITY
  3142. addUnitPriority('second', 15);
  3143. // PARSING
  3144. addRegexToken('s', match1to2);
  3145. addRegexToken('ss', match1to2, match2);
  3146. addParseToken(['s', 'ss'], SECOND);
  3147. // MOMENTS
  3148. var getSetSecond = makeGetSet('Seconds', false);
  3149. // FORMATTING
  3150. addFormatToken('S', 0, 0, function () {
  3151. return ~~(this.millisecond() / 100);
  3152. });
  3153. addFormatToken(0, ['SS', 2], 0, function () {
  3154. return ~~(this.millisecond() / 10);
  3155. });
  3156. addFormatToken(0, ['SSS', 3], 0, 'millisecond');
  3157. addFormatToken(0, ['SSSS', 4], 0, function () {
  3158. return this.millisecond() * 10;
  3159. });
  3160. addFormatToken(0, ['SSSSS', 5], 0, function () {
  3161. return this.millisecond() * 100;
  3162. });
  3163. addFormatToken(0, ['SSSSSS', 6], 0, function () {
  3164. return this.millisecond() * 1000;
  3165. });
  3166. addFormatToken(0, ['SSSSSSS', 7], 0, function () {
  3167. return this.millisecond() * 10000;
  3168. });
  3169. addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
  3170. return this.millisecond() * 100000;
  3171. });
  3172. addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
  3173. return this.millisecond() * 1000000;
  3174. });
  3175. // ALIASES
  3176. addUnitAlias('millisecond', 'ms');
  3177. // PRIORITY
  3178. addUnitPriority('millisecond', 16);
  3179. // PARSING
  3180. addRegexToken('S', match1to3, match1);
  3181. addRegexToken('SS', match1to3, match2);
  3182. addRegexToken('SSS', match1to3, match3);
  3183. var token;
  3184. for (token = 'SSSS'; token.length <= 9; token += 'S') {
  3185. addRegexToken(token, matchUnsigned);
  3186. }
  3187. function parseMs(input, array) {
  3188. array[MILLISECOND] = toInt(('0.' + input) * 1000);
  3189. }
  3190. for (token = 'S'; token.length <= 9; token += 'S') {
  3191. addParseToken(token, parseMs);
  3192. }
  3193. // MOMENTS
  3194. var getSetMillisecond = makeGetSet('Milliseconds', false);
  3195. // FORMATTING
  3196. addFormatToken('z', 0, 0, 'zoneAbbr');
  3197. addFormatToken('zz', 0, 0, 'zoneName');
  3198. // MOMENTS
  3199. function getZoneAbbr () {
  3200. return this._isUTC ? 'UTC' : '';
  3201. }
  3202. function getZoneName () {
  3203. return this._isUTC ? 'Coordinated Universal Time' : '';
  3204. }
  3205. var proto = Moment.prototype;
  3206. proto.add = add;
  3207. proto.calendar = calendar$1;
  3208. proto.clone = clone;
  3209. proto.diff = diff;
  3210. proto.endOf = endOf;
  3211. proto.format = format;
  3212. proto.from = from;
  3213. proto.fromNow = fromNow;
  3214. proto.to = to;
  3215. proto.toNow = toNow;
  3216. proto.get = stringGet;
  3217. proto.invalidAt = invalidAt;
  3218. proto.isAfter = isAfter;
  3219. proto.isBefore = isBefore;
  3220. proto.isBetween = isBetween;
  3221. proto.isSame = isSame;
  3222. proto.isSameOrAfter = isSameOrAfter;
  3223. proto.isSameOrBefore = isSameOrBefore;
  3224. proto.isValid = isValid$2;
  3225. proto.lang = lang;
  3226. proto.locale = locale;
  3227. proto.localeData = localeData;
  3228. proto.max = prototypeMax;
  3229. proto.min = prototypeMin;
  3230. proto.parsingFlags = parsingFlags;
  3231. proto.set = stringSet;
  3232. proto.startOf = startOf;
  3233. proto.subtract = subtract;
  3234. proto.toArray = toArray;
  3235. proto.toObject = toObject;
  3236. proto.toDate = toDate;
  3237. proto.toISOString = toISOString;
  3238. proto.inspect = inspect;
  3239. proto.toJSON = toJSON;
  3240. proto.toString = toString;
  3241. proto.unix = unix;
  3242. proto.valueOf = valueOf;
  3243. proto.creationData = creationData;
  3244. // Year
  3245. proto.year = getSetYear;
  3246. proto.isLeapYear = getIsLeapYear;
  3247. // Week Year
  3248. proto.weekYear = getSetWeekYear;
  3249. proto.isoWeekYear = getSetISOWeekYear;
  3250. // Quarter
  3251. proto.quarter = proto.quarters = getSetQuarter;
  3252. // Month
  3253. proto.month = getSetMonth;
  3254. proto.daysInMonth = getDaysInMonth;
  3255. // Week
  3256. proto.week = proto.weeks = getSetWeek;
  3257. proto.isoWeek = proto.isoWeeks = getSetISOWeek;
  3258. proto.weeksInYear = getWeeksInYear;
  3259. proto.isoWeeksInYear = getISOWeeksInYear;
  3260. // Day
  3261. proto.date = getSetDayOfMonth;
  3262. proto.day = proto.days = getSetDayOfWeek;
  3263. proto.weekday = getSetLocaleDayOfWeek;
  3264. proto.isoWeekday = getSetISODayOfWeek;
  3265. proto.dayOfYear = getSetDayOfYear;
  3266. // Hour
  3267. proto.hour = proto.hours = getSetHour;
  3268. // Minute
  3269. proto.minute = proto.minutes = getSetMinute;
  3270. // Second
  3271. proto.second = proto.seconds = getSetSecond;
  3272. // Millisecond
  3273. proto.millisecond = proto.milliseconds = getSetMillisecond;
  3274. // Offset
  3275. proto.utcOffset = getSetOffset;
  3276. proto.utc = setOffsetToUTC;
  3277. proto.local = setOffsetToLocal;
  3278. proto.parseZone = setOffsetToParsedOffset;
  3279. proto.hasAlignedHourOffset = hasAlignedHourOffset;
  3280. proto.isDST = isDaylightSavingTime;
  3281. proto.isLocal = isLocal;
  3282. proto.isUtcOffset = isUtcOffset;
  3283. proto.isUtc = isUtc;
  3284. proto.isUTC = isUtc;
  3285. // Timezone
  3286. proto.zoneAbbr = getZoneAbbr;
  3287. proto.zoneName = getZoneName;
  3288. // Deprecations
  3289. proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
  3290. proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
  3291. proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
  3292. proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
  3293. proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
  3294. function createUnix (input) {
  3295. return createLocal(input * 1000);
  3296. }
  3297. function createInZone () {
  3298. return createLocal.apply(null, arguments).parseZone();
  3299. }
  3300. function preParsePostFormat (string) {
  3301. return string;
  3302. }
  3303. var proto$1 = Locale.prototype;
  3304. proto$1.calendar = calendar;
  3305. proto$1.longDateFormat = longDateFormat;
  3306. proto$1.invalidDate = invalidDate;
  3307. proto$1.ordinal = ordinal;
  3308. proto$1.preparse = preParsePostFormat;
  3309. proto$1.postformat = preParsePostFormat;
  3310. proto$1.relativeTime = relativeTime;
  3311. proto$1.pastFuture = pastFuture;
  3312. proto$1.set = set;
  3313. // Month
  3314. proto$1.months = localeMonths;
  3315. proto$1.monthsShort = localeMonthsShort;
  3316. proto$1.monthsParse = localeMonthsParse;
  3317. proto$1.monthsRegex = monthsRegex;
  3318. proto$1.monthsShortRegex = monthsShortRegex;
  3319. // Week
  3320. proto$1.week = localeWeek;
  3321. proto$1.firstDayOfYear = localeFirstDayOfYear;
  3322. proto$1.firstDayOfWeek = localeFirstDayOfWeek;
  3323. // Day of Week
  3324. proto$1.weekdays = localeWeekdays;
  3325. proto$1.weekdaysMin = localeWeekdaysMin;
  3326. proto$1.weekdaysShort = localeWeekdaysShort;
  3327. proto$1.weekdaysParse = localeWeekdaysParse;
  3328. proto$1.weekdaysRegex = weekdaysRegex;
  3329. proto$1.weekdaysShortRegex = weekdaysShortRegex;
  3330. proto$1.weekdaysMinRegex = weekdaysMinRegex;
  3331. // Hours
  3332. proto$1.isPM = localeIsPM;
  3333. proto$1.meridiem = localeMeridiem;
  3334. function get$1 (format, index, field, setter) {
  3335. var locale = getLocale();
  3336. var utc = createUTC().set(setter, index);
  3337. return locale[field](utc, format);
  3338. }
  3339. function listMonthsImpl (format, index, field) {
  3340. if (isNumber(format)) {
  3341. index = format;
  3342. format = undefined;
  3343. }
  3344. format = format || '';
  3345. if (index != null) {
  3346. return get$1(format, index, field, 'month');
  3347. }
  3348. var i;
  3349. var out = [];
  3350. for (i = 0; i < 12; i++) {
  3351. out[i] = get$1(format, i, field, 'month');
  3352. }
  3353. return out;
  3354. }
  3355. // ()
  3356. // (5)
  3357. // (fmt, 5)
  3358. // (fmt)
  3359. // (true)
  3360. // (true, 5)
  3361. // (true, fmt, 5)
  3362. // (true, fmt)
  3363. function listWeekdaysImpl (localeSorted, format, index, field) {
  3364. if (typeof localeSorted === 'boolean') {
  3365. if (isNumber(format)) {
  3366. index = format;
  3367. format = undefined;
  3368. }
  3369. format = format || '';
  3370. } else {
  3371. format = localeSorted;
  3372. index = format;
  3373. localeSorted = false;
  3374. if (isNumber(format)) {
  3375. index = format;
  3376. format = undefined;
  3377. }
  3378. format = format || '';
  3379. }
  3380. var locale = getLocale(),
  3381. shift = localeSorted ? locale._week.dow : 0;
  3382. if (index != null) {
  3383. return get$1(format, (index + shift) % 7, field, 'day');
  3384. }
  3385. var i;
  3386. var out = [];
  3387. for (i = 0; i < 7; i++) {
  3388. out[i] = get$1(format, (i + shift) % 7, field, 'day');
  3389. }
  3390. return out;
  3391. }
  3392. function listMonths (format, index) {
  3393. return listMonthsImpl(format, index, 'months');
  3394. }
  3395. function listMonthsShort (format, index) {
  3396. return listMonthsImpl(format, index, 'monthsShort');
  3397. }
  3398. function listWeekdays (localeSorted, format, index) {
  3399. return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
  3400. }
  3401. function listWeekdaysShort (localeSorted, format, index) {
  3402. return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
  3403. }
  3404. function listWeekdaysMin (localeSorted, format, index) {
  3405. return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
  3406. }
  3407. getSetGlobalLocale('en', {
  3408. dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
  3409. ordinal : function (number) {
  3410. var b = number % 10,
  3411. output = (toInt(number % 100 / 10) === 1) ? 'th' :
  3412. (b === 1) ? 'st' :
  3413. (b === 2) ? 'nd' :
  3414. (b === 3) ? 'rd' : 'th';
  3415. return number + output;
  3416. }
  3417. });
  3418. // Side effect imports
  3419. hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
  3420. hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
  3421. var mathAbs = Math.abs;
  3422. function abs () {
  3423. var data = this._data;
  3424. this._milliseconds = mathAbs(this._milliseconds);
  3425. this._days = mathAbs(this._days);
  3426. this._months = mathAbs(this._months);
  3427. data.milliseconds = mathAbs(data.milliseconds);
  3428. data.seconds = mathAbs(data.seconds);
  3429. data.minutes = mathAbs(data.minutes);
  3430. data.hours = mathAbs(data.hours);
  3431. data.months = mathAbs(data.months);
  3432. data.years = mathAbs(data.years);
  3433. return this;
  3434. }
  3435. function addSubtract$1 (duration, input, value, direction) {
  3436. var other = createDuration(input, value);
  3437. duration._milliseconds += direction * other._milliseconds;
  3438. duration._days += direction * other._days;
  3439. duration._months += direction * other._months;
  3440. return duration._bubble();
  3441. }
  3442. // supports only 2.0-style add(1, 's') or add(duration)
  3443. function add$1 (input, value) {
  3444. return addSubtract$1(this, input, value, 1);
  3445. }
  3446. // supports only 2.0-style subtract(1, 's') or subtract(duration)
  3447. function subtract$1 (input, value) {
  3448. return addSubtract$1(this, input, value, -1);
  3449. }
  3450. function absCeil (number) {
  3451. if (number < 0) {
  3452. return Math.floor(number);
  3453. } else {
  3454. return Math.ceil(number);
  3455. }
  3456. }
  3457. function bubble () {
  3458. var milliseconds = this._milliseconds;
  3459. var days = this._days;
  3460. var months = this._months;
  3461. var data = this._data;
  3462. var seconds, minutes, hours, years, monthsFromDays;
  3463. // if we have a mix of positive and negative values, bubble down first
  3464. // check: https://github.com/moment/moment/issues/2166
  3465. if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
  3466. (milliseconds <= 0 && days <= 0 && months <= 0))) {
  3467. milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
  3468. days = 0;
  3469. months = 0;
  3470. }
  3471. // The following code bubbles up values, see the tests for
  3472. // examples of what that means.
  3473. data.milliseconds = milliseconds % 1000;
  3474. seconds = absFloor(milliseconds / 1000);
  3475. data.seconds = seconds % 60;
  3476. minutes = absFloor(seconds / 60);
  3477. data.minutes = minutes % 60;
  3478. hours = absFloor(minutes / 60);
  3479. data.hours = hours % 24;
  3480. days += absFloor(hours / 24);
  3481. // convert days to months
  3482. monthsFromDays = absFloor(daysToMonths(days));
  3483. months += monthsFromDays;
  3484. days -= absCeil(monthsToDays(monthsFromDays));
  3485. // 12 months -> 1 year
  3486. years = absFloor(months / 12);
  3487. months %= 12;
  3488. data.days = days;
  3489. data.months = months;
  3490. data.years = years;
  3491. return this;
  3492. }
  3493. function daysToMonths (days) {
  3494. // 400 years have 146097 days (taking into account leap year rules)
  3495. // 400 years have 12 months === 4800
  3496. return days * 4800 / 146097;
  3497. }
  3498. function monthsToDays (months) {
  3499. // the reverse of daysToMonths
  3500. return months * 146097 / 4800;
  3501. }
  3502. function as (units) {
  3503. if (!this.isValid()) {
  3504. return NaN;
  3505. }
  3506. var days;
  3507. var months;
  3508. var milliseconds = this._milliseconds;
  3509. units = normalizeUnits(units);
  3510. if (units === 'month' || units === 'year') {
  3511. days = this._days + milliseconds / 864e5;
  3512. months = this._months + daysToMonths(days);
  3513. return units === 'month' ? months : months / 12;
  3514. } else {
  3515. // handle milliseconds separately because of floating point math errors (issue #1867)
  3516. days = this._days + Math.round(monthsToDays(this._months));
  3517. switch (units) {
  3518. case 'week' : return days / 7 + milliseconds / 6048e5;
  3519. case 'day' : return days + milliseconds / 864e5;
  3520. case 'hour' : return days * 24 + milliseconds / 36e5;
  3521. case 'minute' : return days * 1440 + milliseconds / 6e4;
  3522. case 'second' : return days * 86400 + milliseconds / 1000;
  3523. // Math.floor prevents floating point math errors here
  3524. case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
  3525. default: throw new Error('Unknown unit ' + units);
  3526. }
  3527. }
  3528. }
  3529. // TODO: Use this.as('ms')?
  3530. function valueOf$1 () {
  3531. if (!this.isValid()) {
  3532. return NaN;
  3533. }
  3534. return (
  3535. this._milliseconds +
  3536. this._days * 864e5 +
  3537. (this._months % 12) * 2592e6 +
  3538. toInt(this._months / 12) * 31536e6
  3539. );
  3540. }
  3541. function makeAs (alias) {
  3542. return function () {
  3543. return this.as(alias);
  3544. };
  3545. }
  3546. var asMilliseconds = makeAs('ms');
  3547. var asSeconds = makeAs('s');
  3548. var asMinutes = makeAs('m');
  3549. var asHours = makeAs('h');
  3550. var asDays = makeAs('d');
  3551. var asWeeks = makeAs('w');
  3552. var asMonths = makeAs('M');
  3553. var asYears = makeAs('y');
  3554. function clone$1 () {
  3555. return createDuration(this);
  3556. }
  3557. function get$2 (units) {
  3558. units = normalizeUnits(units);
  3559. return this.isValid() ? this[units + 's']() : NaN;
  3560. }
  3561. function makeGetter(name) {
  3562. return function () {
  3563. return this.isValid() ? this._data[name] : NaN;
  3564. };
  3565. }
  3566. var milliseconds = makeGetter('milliseconds');
  3567. var seconds = makeGetter('seconds');
  3568. var minutes = makeGetter('minutes');
  3569. var hours = makeGetter('hours');
  3570. var days = makeGetter('days');
  3571. var months = makeGetter('months');
  3572. var years = makeGetter('years');
  3573. function weeks () {
  3574. return absFloor(this.days() / 7);
  3575. }
  3576. var round = Math.round;
  3577. var thresholds = {
  3578. ss: 44, // a few seconds to seconds
  3579. s : 45, // seconds to minute
  3580. m : 45, // minutes to hour
  3581. h : 22, // hours to day
  3582. d : 26, // days to month
  3583. M : 11 // months to year
  3584. };
  3585. // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
  3586. function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
  3587. return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
  3588. }
  3589. function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
  3590. var duration = createDuration(posNegDuration).abs();
  3591. var seconds = round(duration.as('s'));
  3592. var minutes = round(duration.as('m'));
  3593. var hours = round(duration.as('h'));
  3594. var days = round(duration.as('d'));
  3595. var months = round(duration.as('M'));
  3596. var years = round(duration.as('y'));
  3597. var a = seconds <= thresholds.ss && ['s', seconds] ||
  3598. seconds < thresholds.s && ['ss', seconds] ||
  3599. minutes <= 1 && ['m'] ||
  3600. minutes < thresholds.m && ['mm', minutes] ||
  3601. hours <= 1 && ['h'] ||
  3602. hours < thresholds.h && ['hh', hours] ||
  3603. days <= 1 && ['d'] ||
  3604. days < thresholds.d && ['dd', days] ||
  3605. months <= 1 && ['M'] ||
  3606. months < thresholds.M && ['MM', months] ||
  3607. years <= 1 && ['y'] || ['yy', years];
  3608. a[2] = withoutSuffix;
  3609. a[3] = +posNegDuration > 0;
  3610. a[4] = locale;
  3611. return substituteTimeAgo.apply(null, a);
  3612. }
  3613. // This function allows you to set the rounding function for relative time strings
  3614. function getSetRelativeTimeRounding (roundingFunction) {
  3615. if (roundingFunction === undefined) {
  3616. return round;
  3617. }
  3618. if (typeof(roundingFunction) === 'function') {
  3619. round = roundingFunction;
  3620. return true;
  3621. }
  3622. return false;
  3623. }
  3624. // This function allows you to set a threshold for relative time strings
  3625. function getSetRelativeTimeThreshold (threshold, limit) {
  3626. if (thresholds[threshold] === undefined) {
  3627. return false;
  3628. }
  3629. if (limit === undefined) {
  3630. return thresholds[threshold];
  3631. }
  3632. thresholds[threshold] = limit;
  3633. if (threshold === 's') {
  3634. thresholds.ss = limit - 1;
  3635. }
  3636. return true;
  3637. }
  3638. function humanize (withSuffix) {
  3639. if (!this.isValid()) {
  3640. return this.localeData().invalidDate();
  3641. }
  3642. var locale = this.localeData();
  3643. var output = relativeTime$1(this, !withSuffix, locale);
  3644. if (withSuffix) {
  3645. output = locale.pastFuture(+this, output);
  3646. }
  3647. return locale.postformat(output);
  3648. }
  3649. var abs$1 = Math.abs;
  3650. function sign(x) {
  3651. return ((x > 0) - (x < 0)) || +x;
  3652. }
  3653. function toISOString$1() {
  3654. // for ISO strings we do not use the normal bubbling rules:
  3655. // * milliseconds bubble up until they become hours
  3656. // * days do not bubble at all
  3657. // * months bubble up until they become years
  3658. // This is because there is no context-free conversion between hours and days
  3659. // (think of clock changes)
  3660. // and also not between days and months (28-31 days per month)
  3661. if (!this.isValid()) {
  3662. return this.localeData().invalidDate();
  3663. }
  3664. var seconds = abs$1(this._milliseconds) / 1000;
  3665. var days = abs$1(this._days);
  3666. var months = abs$1(this._months);
  3667. var minutes, hours, years;
  3668. // 3600 seconds -> 60 minutes -> 1 hour
  3669. minutes = absFloor(seconds / 60);
  3670. hours = absFloor(minutes / 60);
  3671. seconds %= 60;
  3672. minutes %= 60;
  3673. // 12 months -> 1 year
  3674. years = absFloor(months / 12);
  3675. months %= 12;
  3676. // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
  3677. var Y = years;
  3678. var M = months;
  3679. var D = days;
  3680. var h = hours;
  3681. var m = minutes;
  3682. var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
  3683. var total = this.asSeconds();
  3684. if (!total) {
  3685. // this is the same as C#'s (Noda) and python (isodate)...
  3686. // but not other JS (goog.date)
  3687. return 'P0D';
  3688. }
  3689. var totalSign = total < 0 ? '-' : '';
  3690. var ymSign = sign(this._months) !== sign(total) ? '-' : '';
  3691. var daysSign = sign(this._days) !== sign(total) ? '-' : '';
  3692. var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
  3693. return totalSign + 'P' +
  3694. (Y ? ymSign + Y + 'Y' : '') +
  3695. (M ? ymSign + M + 'M' : '') +
  3696. (D ? daysSign + D + 'D' : '') +
  3697. ((h || m || s) ? 'T' : '') +
  3698. (h ? hmsSign + h + 'H' : '') +
  3699. (m ? hmsSign + m + 'M' : '') +
  3700. (s ? hmsSign + s + 'S' : '');
  3701. }
  3702. var proto$2 = Duration.prototype;
  3703. proto$2.isValid = isValid$1;
  3704. proto$2.abs = abs;
  3705. proto$2.add = add$1;
  3706. proto$2.subtract = subtract$1;
  3707. proto$2.as = as;
  3708. proto$2.asMilliseconds = asMilliseconds;
  3709. proto$2.asSeconds = asSeconds;
  3710. proto$2.asMinutes = asMinutes;
  3711. proto$2.asHours = asHours;
  3712. proto$2.asDays = asDays;
  3713. proto$2.asWeeks = asWeeks;
  3714. proto$2.asMonths = asMonths;
  3715. proto$2.asYears = asYears;
  3716. proto$2.valueOf = valueOf$1;
  3717. proto$2._bubble = bubble;
  3718. proto$2.clone = clone$1;
  3719. proto$2.get = get$2;
  3720. proto$2.milliseconds = milliseconds;
  3721. proto$2.seconds = seconds;
  3722. proto$2.minutes = minutes;
  3723. proto$2.hours = hours;
  3724. proto$2.days = days;
  3725. proto$2.weeks = weeks;
  3726. proto$2.months = months;
  3727. proto$2.years = years;
  3728. proto$2.humanize = humanize;
  3729. proto$2.toISOString = toISOString$1;
  3730. proto$2.toString = toISOString$1;
  3731. proto$2.toJSON = toISOString$1;
  3732. proto$2.locale = locale;
  3733. proto$2.localeData = localeData;
  3734. // Deprecations
  3735. proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
  3736. proto$2.lang = lang;
  3737. // Side effect imports
  3738. // FORMATTING
  3739. addFormatToken('X', 0, 0, 'unix');
  3740. addFormatToken('x', 0, 0, 'valueOf');
  3741. // PARSING
  3742. addRegexToken('x', matchSigned);
  3743. addRegexToken('X', matchTimestamp);
  3744. addParseToken('X', function (input, array, config) {
  3745. config._d = new Date(parseFloat(input, 10) * 1000);
  3746. });
  3747. addParseToken('x', function (input, array, config) {
  3748. config._d = new Date(toInt(input));
  3749. });
  3750. // Side effect imports
  3751. //! moment.js
  3752. //! version : 2.20.1
  3753. //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
  3754. //! license : MIT
  3755. //! momentjs.com
  3756. hooks.version = '2.20.1';
  3757. setHookCallback(createLocal);
  3758. hooks.fn = proto;
  3759. hooks.min = min;
  3760. hooks.max = max;
  3761. hooks.now = now;
  3762. hooks.utc = createUTC;
  3763. hooks.unix = createUnix;
  3764. hooks.months = listMonths;
  3765. hooks.isDate = isDate;
  3766. hooks.locale = getSetGlobalLocale;
  3767. hooks.invalid = createInvalid;
  3768. hooks.duration = createDuration;
  3769. hooks.isMoment = isMoment;
  3770. hooks.weekdays = listWeekdays;
  3771. hooks.parseZone = createInZone;
  3772. hooks.localeData = getLocale;
  3773. hooks.isDuration = isDuration;
  3774. hooks.monthsShort = listMonthsShort;
  3775. hooks.weekdaysMin = listWeekdaysMin;
  3776. hooks.defineLocale = defineLocale;
  3777. hooks.updateLocale = updateLocale;
  3778. hooks.locales = listLocales;
  3779. hooks.weekdaysShort = listWeekdaysShort;
  3780. hooks.normalizeUnits = normalizeUnits;
  3781. hooks.relativeTimeRounding = getSetRelativeTimeRounding;
  3782. hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
  3783. hooks.calendarFormat = getCalendarFormat;
  3784. hooks.prototype = proto;
  3785. // currently HTML5 input type only supports 24-hour formats
  3786. hooks.HTML5_FMT = {
  3787. DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
  3788. DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
  3789. DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
  3790. DATE: 'YYYY-MM-DD', // <input type="date" />
  3791. TIME: 'HH:mm', // <input type="time" />
  3792. TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
  3793. TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
  3794. WEEK: 'YYYY-[W]WW', // <input type="week" />
  3795. MONTH: 'YYYY-MM' // <input type="month" />
  3796. };
  3797. //! moment.js locale configuration
  3798. //! locale : Afrikaans [af]
  3799. //! author : Werner Mollentze : https://github.com/wernerm
  3800. hooks.defineLocale('af', {
  3801. months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
  3802. monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
  3803. weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
  3804. weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
  3805. weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
  3806. meridiemParse: /vm|nm/i,
  3807. isPM : function (input) {
  3808. return /^nm$/i.test(input);
  3809. },
  3810. meridiem : function (hours, minutes, isLower) {
  3811. if (hours < 12) {
  3812. return isLower ? 'vm' : 'VM';
  3813. } else {
  3814. return isLower ? 'nm' : 'NM';
  3815. }
  3816. },
  3817. longDateFormat : {
  3818. LT : 'HH:mm',
  3819. LTS : 'HH:mm:ss',
  3820. L : 'DD/MM/YYYY',
  3821. LL : 'D MMMM YYYY',
  3822. LLL : 'D MMMM YYYY HH:mm',
  3823. LLLL : 'dddd, D MMMM YYYY HH:mm'
  3824. },
  3825. calendar : {
  3826. sameDay : '[Vandag om] LT',
  3827. nextDay : '[Môre om] LT',
  3828. nextWeek : 'dddd [om] LT',
  3829. lastDay : '[Gister om] LT',
  3830. lastWeek : '[Laas] dddd [om] LT',
  3831. sameElse : 'L'
  3832. },
  3833. relativeTime : {
  3834. future : 'oor %s',
  3835. past : '%s gelede',
  3836. s : '\'n paar sekondes',
  3837. ss : '%d sekondes',
  3838. m : '\'n minuut',
  3839. mm : '%d minute',
  3840. h : '\'n uur',
  3841. hh : '%d ure',
  3842. d : '\'n dag',
  3843. dd : '%d dae',
  3844. M : '\'n maand',
  3845. MM : '%d maande',
  3846. y : '\'n jaar',
  3847. yy : '%d jaar'
  3848. },
  3849. dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
  3850. ordinal : function (number) {
  3851. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
  3852. },
  3853. week : {
  3854. dow : 1, // Maandag is die eerste dag van die week.
  3855. doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
  3856. }
  3857. });
  3858. //! moment.js locale configuration
  3859. //! locale : Arabic (Algeria) [ar-dz]
  3860. //! author : Noureddine LOUAHEDJ : https://github.com/noureddineme
  3861. hooks.defineLocale('ar-dz', {
  3862. months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  3863. monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  3864. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  3865. weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
  3866. weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),
  3867. weekdaysParseExact : true,
  3868. longDateFormat : {
  3869. LT : 'HH:mm',
  3870. LTS : 'HH:mm:ss',
  3871. L : 'DD/MM/YYYY',
  3872. LL : 'D MMMM YYYY',
  3873. LLL : 'D MMMM YYYY HH:mm',
  3874. LLLL : 'dddd D MMMM YYYY HH:mm'
  3875. },
  3876. calendar : {
  3877. sameDay: '[اليوم على الساعة] LT',
  3878. nextDay: '[غدا على الساعة] LT',
  3879. nextWeek: 'dddd [على الساعة] LT',
  3880. lastDay: '[أمس على الساعة] LT',
  3881. lastWeek: 'dddd [على الساعة] LT',
  3882. sameElse: 'L'
  3883. },
  3884. relativeTime : {
  3885. future : 'في %s',
  3886. past : 'منذ %s',
  3887. s : 'ثوان',
  3888. ss : '%d ثانية',
  3889. m : 'دقيقة',
  3890. mm : '%d دقائق',
  3891. h : 'ساعة',
  3892. hh : '%d ساعات',
  3893. d : 'يوم',
  3894. dd : '%d أيام',
  3895. M : 'شهر',
  3896. MM : '%d أشهر',
  3897. y : 'سنة',
  3898. yy : '%d سنوات'
  3899. },
  3900. week : {
  3901. dow : 0, // Sunday is the first day of the week.
  3902. doy : 4 // The week that contains Jan 1st is the first week of the year.
  3903. }
  3904. });
  3905. //! moment.js locale configuration
  3906. //! locale : Arabic (Kuwait) [ar-kw]
  3907. //! author : Nusret Parlak: https://github.com/nusretparlak
  3908. hooks.defineLocale('ar-kw', {
  3909. months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  3910. monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  3911. weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  3912. weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
  3913. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  3914. weekdaysParseExact : true,
  3915. longDateFormat : {
  3916. LT : 'HH:mm',
  3917. LTS : 'HH:mm:ss',
  3918. L : 'DD/MM/YYYY',
  3919. LL : 'D MMMM YYYY',
  3920. LLL : 'D MMMM YYYY HH:mm',
  3921. LLLL : 'dddd D MMMM YYYY HH:mm'
  3922. },
  3923. calendar : {
  3924. sameDay: '[اليوم على الساعة] LT',
  3925. nextDay: '[غدا على الساعة] LT',
  3926. nextWeek: 'dddd [على الساعة] LT',
  3927. lastDay: '[أمس على الساعة] LT',
  3928. lastWeek: 'dddd [على الساعة] LT',
  3929. sameElse: 'L'
  3930. },
  3931. relativeTime : {
  3932. future : 'في %s',
  3933. past : 'منذ %s',
  3934. s : 'ثوان',
  3935. ss : '%d ثانية',
  3936. m : 'دقيقة',
  3937. mm : '%d دقائق',
  3938. h : 'ساعة',
  3939. hh : '%d ساعات',
  3940. d : 'يوم',
  3941. dd : '%d أيام',
  3942. M : 'شهر',
  3943. MM : '%d أشهر',
  3944. y : 'سنة',
  3945. yy : '%d سنوات'
  3946. },
  3947. week : {
  3948. dow : 0, // Sunday is the first day of the week.
  3949. doy : 12 // The week that contains Jan 1st is the first week of the year.
  3950. }
  3951. });
  3952. //! moment.js locale configuration
  3953. //! locale : Arabic (Lybia) [ar-ly]
  3954. //! author : Ali Hmer: https://github.com/kikoanis
  3955. var symbolMap = {
  3956. '1': '1',
  3957. '2': '2',
  3958. '3': '3',
  3959. '4': '4',
  3960. '5': '5',
  3961. '6': '6',
  3962. '7': '7',
  3963. '8': '8',
  3964. '9': '9',
  3965. '0': '0'
  3966. };
  3967. var pluralForm = function (n) {
  3968. return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
  3969. };
  3970. var plurals = {
  3971. s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
  3972. m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
  3973. h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
  3974. d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
  3975. M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
  3976. y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
  3977. };
  3978. var pluralize = function (u) {
  3979. return function (number, withoutSuffix, string, isFuture) {
  3980. var f = pluralForm(number),
  3981. str = plurals[u][pluralForm(number)];
  3982. if (f === 2) {
  3983. str = str[withoutSuffix ? 0 : 1];
  3984. }
  3985. return str.replace(/%d/i, number);
  3986. };
  3987. };
  3988. var months$1 = [
  3989. 'يناير',
  3990. 'فبراير',
  3991. 'مارس',
  3992. 'أبريل',
  3993. 'مايو',
  3994. 'يونيو',
  3995. 'يوليو',
  3996. 'أغسطس',
  3997. 'سبتمبر',
  3998. 'أكتوبر',
  3999. 'نوفمبر',
  4000. 'ديسمبر'
  4001. ];
  4002. hooks.defineLocale('ar-ly', {
  4003. months : months$1,
  4004. monthsShort : months$1,
  4005. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  4006. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  4007. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  4008. weekdaysParseExact : true,
  4009. longDateFormat : {
  4010. LT : 'HH:mm',
  4011. LTS : 'HH:mm:ss',
  4012. L : 'D/\u200FM/\u200FYYYY',
  4013. LL : 'D MMMM YYYY',
  4014. LLL : 'D MMMM YYYY HH:mm',
  4015. LLLL : 'dddd D MMMM YYYY HH:mm'
  4016. },
  4017. meridiemParse: /ص|م/,
  4018. isPM : function (input) {
  4019. return 'م' === input;
  4020. },
  4021. meridiem : function (hour, minute, isLower) {
  4022. if (hour < 12) {
  4023. return 'ص';
  4024. } else {
  4025. return 'م';
  4026. }
  4027. },
  4028. calendar : {
  4029. sameDay: '[اليوم عند الساعة] LT',
  4030. nextDay: '[غدًا عند الساعة] LT',
  4031. nextWeek: 'dddd [عند الساعة] LT',
  4032. lastDay: '[أمس عند الساعة] LT',
  4033. lastWeek: 'dddd [عند الساعة] LT',
  4034. sameElse: 'L'
  4035. },
  4036. relativeTime : {
  4037. future : 'بعد %s',
  4038. past : 'منذ %s',
  4039. s : pluralize('s'),
  4040. ss : pluralize('s'),
  4041. m : pluralize('m'),
  4042. mm : pluralize('m'),
  4043. h : pluralize('h'),
  4044. hh : pluralize('h'),
  4045. d : pluralize('d'),
  4046. dd : pluralize('d'),
  4047. M : pluralize('M'),
  4048. MM : pluralize('M'),
  4049. y : pluralize('y'),
  4050. yy : pluralize('y')
  4051. },
  4052. preparse: function (string) {
  4053. return string.replace(/،/g, ',');
  4054. },
  4055. postformat: function (string) {
  4056. return string.replace(/\d/g, function (match) {
  4057. return symbolMap[match];
  4058. }).replace(/,/g, '،');
  4059. },
  4060. week : {
  4061. dow : 6, // Saturday is the first day of the week.
  4062. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4063. }
  4064. });
  4065. //! moment.js locale configuration
  4066. //! locale : Arabic (Morocco) [ar-ma]
  4067. //! author : ElFadili Yassine : https://github.com/ElFadiliY
  4068. //! author : Abdel Said : https://github.com/abdelsaid
  4069. hooks.defineLocale('ar-ma', {
  4070. months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  4071. monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  4072. weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  4073. weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
  4074. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  4075. weekdaysParseExact : true,
  4076. longDateFormat : {
  4077. LT : 'HH:mm',
  4078. LTS : 'HH:mm:ss',
  4079. L : 'DD/MM/YYYY',
  4080. LL : 'D MMMM YYYY',
  4081. LLL : 'D MMMM YYYY HH:mm',
  4082. LLLL : 'dddd D MMMM YYYY HH:mm'
  4083. },
  4084. calendar : {
  4085. sameDay: '[اليوم على الساعة] LT',
  4086. nextDay: '[غدا على الساعة] LT',
  4087. nextWeek: 'dddd [على الساعة] LT',
  4088. lastDay: '[أمس على الساعة] LT',
  4089. lastWeek: 'dddd [على الساعة] LT',
  4090. sameElse: 'L'
  4091. },
  4092. relativeTime : {
  4093. future : 'في %s',
  4094. past : 'منذ %s',
  4095. s : 'ثوان',
  4096. ss : '%d ثانية',
  4097. m : 'دقيقة',
  4098. mm : '%d دقائق',
  4099. h : 'ساعة',
  4100. hh : '%d ساعات',
  4101. d : 'يوم',
  4102. dd : '%d أيام',
  4103. M : 'شهر',
  4104. MM : '%d أشهر',
  4105. y : 'سنة',
  4106. yy : '%d سنوات'
  4107. },
  4108. week : {
  4109. dow : 6, // Saturday is the first day of the week.
  4110. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4111. }
  4112. });
  4113. //! moment.js locale configuration
  4114. //! locale : Arabic (Saudi Arabia) [ar-sa]
  4115. //! author : Suhail Alkowaileet : https://github.com/xsoh
  4116. var symbolMap$1 = {
  4117. '1': '١',
  4118. '2': '٢',
  4119. '3': '٣',
  4120. '4': '٤',
  4121. '5': '٥',
  4122. '6': '٦',
  4123. '7': '٧',
  4124. '8': '٨',
  4125. '9': '٩',
  4126. '0': '٠'
  4127. };
  4128. var numberMap = {
  4129. '١': '1',
  4130. '٢': '2',
  4131. '٣': '3',
  4132. '٤': '4',
  4133. '٥': '5',
  4134. '٦': '6',
  4135. '٧': '7',
  4136. '٨': '8',
  4137. '٩': '9',
  4138. '٠': '0'
  4139. };
  4140. hooks.defineLocale('ar-sa', {
  4141. months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  4142. monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  4143. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  4144. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  4145. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  4146. weekdaysParseExact : true,
  4147. longDateFormat : {
  4148. LT : 'HH:mm',
  4149. LTS : 'HH:mm:ss',
  4150. L : 'DD/MM/YYYY',
  4151. LL : 'D MMMM YYYY',
  4152. LLL : 'D MMMM YYYY HH:mm',
  4153. LLLL : 'dddd D MMMM YYYY HH:mm'
  4154. },
  4155. meridiemParse: /ص|م/,
  4156. isPM : function (input) {
  4157. return 'م' === input;
  4158. },
  4159. meridiem : function (hour, minute, isLower) {
  4160. if (hour < 12) {
  4161. return 'ص';
  4162. } else {
  4163. return 'م';
  4164. }
  4165. },
  4166. calendar : {
  4167. sameDay: '[اليوم على الساعة] LT',
  4168. nextDay: '[غدا على الساعة] LT',
  4169. nextWeek: 'dddd [على الساعة] LT',
  4170. lastDay: '[أمس على الساعة] LT',
  4171. lastWeek: 'dddd [على الساعة] LT',
  4172. sameElse: 'L'
  4173. },
  4174. relativeTime : {
  4175. future : 'في %s',
  4176. past : 'منذ %s',
  4177. s : 'ثوان',
  4178. ss : '%d ثانية',
  4179. m : 'دقيقة',
  4180. mm : '%d دقائق',
  4181. h : 'ساعة',
  4182. hh : '%d ساعات',
  4183. d : 'يوم',
  4184. dd : '%d أيام',
  4185. M : 'شهر',
  4186. MM : '%d أشهر',
  4187. y : 'سنة',
  4188. yy : '%d سنوات'
  4189. },
  4190. preparse: function (string) {
  4191. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  4192. return numberMap[match];
  4193. }).replace(/،/g, ',');
  4194. },
  4195. postformat: function (string) {
  4196. return string.replace(/\d/g, function (match) {
  4197. return symbolMap$1[match];
  4198. }).replace(/,/g, '،');
  4199. },
  4200. week : {
  4201. dow : 0, // Sunday is the first day of the week.
  4202. doy : 6 // The week that contains Jan 1st is the first week of the year.
  4203. }
  4204. });
  4205. //! moment.js locale configuration
  4206. //! locale : Arabic (Tunisia) [ar-tn]
  4207. //! author : Nader Toukabri : https://github.com/naderio
  4208. hooks.defineLocale('ar-tn', {
  4209. months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  4210. monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  4211. weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  4212. weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  4213. weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  4214. weekdaysParseExact : true,
  4215. longDateFormat: {
  4216. LT: 'HH:mm',
  4217. LTS: 'HH:mm:ss',
  4218. L: 'DD/MM/YYYY',
  4219. LL: 'D MMMM YYYY',
  4220. LLL: 'D MMMM YYYY HH:mm',
  4221. LLLL: 'dddd D MMMM YYYY HH:mm'
  4222. },
  4223. calendar: {
  4224. sameDay: '[اليوم على الساعة] LT',
  4225. nextDay: '[غدا على الساعة] LT',
  4226. nextWeek: 'dddd [على الساعة] LT',
  4227. lastDay: '[أمس على الساعة] LT',
  4228. lastWeek: 'dddd [على الساعة] LT',
  4229. sameElse: 'L'
  4230. },
  4231. relativeTime: {
  4232. future: 'في %s',
  4233. past: 'منذ %s',
  4234. s: 'ثوان',
  4235. ss : '%d ثانية',
  4236. m: 'دقيقة',
  4237. mm: '%d دقائق',
  4238. h: 'ساعة',
  4239. hh: '%d ساعات',
  4240. d: 'يوم',
  4241. dd: '%d أيام',
  4242. M: 'شهر',
  4243. MM: '%d أشهر',
  4244. y: 'سنة',
  4245. yy: '%d سنوات'
  4246. },
  4247. week: {
  4248. dow: 1, // Monday is the first day of the week.
  4249. doy: 4 // The week that contains Jan 4th is the first week of the year.
  4250. }
  4251. });
  4252. //! moment.js locale configuration
  4253. //! locale : Arabic [ar]
  4254. //! author : Abdel Said: https://github.com/abdelsaid
  4255. //! author : Ahmed Elkhatib
  4256. //! author : forabi https://github.com/forabi
  4257. var symbolMap$2 = {
  4258. '1': '١',
  4259. '2': '٢',
  4260. '3': '٣',
  4261. '4': '٤',
  4262. '5': '٥',
  4263. '6': '٦',
  4264. '7': '٧',
  4265. '8': '٨',
  4266. '9': '٩',
  4267. '0': '٠'
  4268. };
  4269. var numberMap$1 = {
  4270. '١': '1',
  4271. '٢': '2',
  4272. '٣': '3',
  4273. '٤': '4',
  4274. '٥': '5',
  4275. '٦': '6',
  4276. '٧': '7',
  4277. '٨': '8',
  4278. '٩': '9',
  4279. '٠': '0'
  4280. };
  4281. var pluralForm$1 = function (n) {
  4282. return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
  4283. };
  4284. var plurals$1 = {
  4285. s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
  4286. m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
  4287. h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
  4288. d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
  4289. M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
  4290. y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
  4291. };
  4292. var pluralize$1 = function (u) {
  4293. return function (number, withoutSuffix, string, isFuture) {
  4294. var f = pluralForm$1(number),
  4295. str = plurals$1[u][pluralForm$1(number)];
  4296. if (f === 2) {
  4297. str = str[withoutSuffix ? 0 : 1];
  4298. }
  4299. return str.replace(/%d/i, number);
  4300. };
  4301. };
  4302. var months$2 = [
  4303. 'يناير',
  4304. 'فبراير',
  4305. 'مارس',
  4306. 'أبريل',
  4307. 'مايو',
  4308. 'يونيو',
  4309. 'يوليو',
  4310. 'أغسطس',
  4311. 'سبتمبر',
  4312. 'أكتوبر',
  4313. 'نوفمبر',
  4314. 'ديسمبر'
  4315. ];
  4316. hooks.defineLocale('ar', {
  4317. months : months$2,
  4318. monthsShort : months$2,
  4319. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  4320. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  4321. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  4322. weekdaysParseExact : true,
  4323. longDateFormat : {
  4324. LT : 'HH:mm',
  4325. LTS : 'HH:mm:ss',
  4326. L : 'D/\u200FM/\u200FYYYY',
  4327. LL : 'D MMMM YYYY',
  4328. LLL : 'D MMMM YYYY HH:mm',
  4329. LLLL : 'dddd D MMMM YYYY HH:mm'
  4330. },
  4331. meridiemParse: /ص|م/,
  4332. isPM : function (input) {
  4333. return 'م' === input;
  4334. },
  4335. meridiem : function (hour, minute, isLower) {
  4336. if (hour < 12) {
  4337. return 'ص';
  4338. } else {
  4339. return 'م';
  4340. }
  4341. },
  4342. calendar : {
  4343. sameDay: '[اليوم عند الساعة] LT',
  4344. nextDay: '[غدًا عند الساعة] LT',
  4345. nextWeek: 'dddd [عند الساعة] LT',
  4346. lastDay: '[أمس عند الساعة] LT',
  4347. lastWeek: 'dddd [عند الساعة] LT',
  4348. sameElse: 'L'
  4349. },
  4350. relativeTime : {
  4351. future : 'بعد %s',
  4352. past : 'منذ %s',
  4353. s : pluralize$1('s'),
  4354. ss : pluralize$1('s'),
  4355. m : pluralize$1('m'),
  4356. mm : pluralize$1('m'),
  4357. h : pluralize$1('h'),
  4358. hh : pluralize$1('h'),
  4359. d : pluralize$1('d'),
  4360. dd : pluralize$1('d'),
  4361. M : pluralize$1('M'),
  4362. MM : pluralize$1('M'),
  4363. y : pluralize$1('y'),
  4364. yy : pluralize$1('y')
  4365. },
  4366. preparse: function (string) {
  4367. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  4368. return numberMap$1[match];
  4369. }).replace(/،/g, ',');
  4370. },
  4371. postformat: function (string) {
  4372. return string.replace(/\d/g, function (match) {
  4373. return symbolMap$2[match];
  4374. }).replace(/,/g, '،');
  4375. },
  4376. week : {
  4377. dow : 6, // Saturday is the first day of the week.
  4378. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4379. }
  4380. });
  4381. //! moment.js locale configuration
  4382. //! locale : Azerbaijani [az]
  4383. //! author : topchiyev : https://github.com/topchiyev
  4384. var suffixes = {
  4385. 1: '-inci',
  4386. 5: '-inci',
  4387. 8: '-inci',
  4388. 70: '-inci',
  4389. 80: '-inci',
  4390. 2: '-nci',
  4391. 7: '-nci',
  4392. 20: '-nci',
  4393. 50: '-nci',
  4394. 3: '-üncü',
  4395. 4: '-üncü',
  4396. 100: '-üncü',
  4397. 6: '-ncı',
  4398. 9: '-uncu',
  4399. 10: '-uncu',
  4400. 30: '-uncu',
  4401. 60: '-ıncı',
  4402. 90: '-ıncı'
  4403. };
  4404. hooks.defineLocale('az', {
  4405. months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
  4406. monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
  4407. weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
  4408. weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
  4409. weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
  4410. weekdaysParseExact : true,
  4411. longDateFormat : {
  4412. LT : 'HH:mm',
  4413. LTS : 'HH:mm:ss',
  4414. L : 'DD.MM.YYYY',
  4415. LL : 'D MMMM YYYY',
  4416. LLL : 'D MMMM YYYY HH:mm',
  4417. LLLL : 'dddd, D MMMM YYYY HH:mm'
  4418. },
  4419. calendar : {
  4420. sameDay : '[bugün saat] LT',
  4421. nextDay : '[sabah saat] LT',
  4422. nextWeek : '[gələn həftə] dddd [saat] LT',
  4423. lastDay : '[dünən] LT',
  4424. lastWeek : '[keçən həftə] dddd [saat] LT',
  4425. sameElse : 'L'
  4426. },
  4427. relativeTime : {
  4428. future : '%s sonra',
  4429. past : '%s əvvəl',
  4430. s : 'birneçə saniyyə',
  4431. ss : '%d saniyə',
  4432. m : 'bir dəqiqə',
  4433. mm : '%d dəqiqə',
  4434. h : 'bir saat',
  4435. hh : '%d saat',
  4436. d : 'bir gün',
  4437. dd : '%d gün',
  4438. M : 'bir ay',
  4439. MM : '%d ay',
  4440. y : 'bir il',
  4441. yy : '%d il'
  4442. },
  4443. meridiemParse: /gecə|səhər|gündüz|axşam/,
  4444. isPM : function (input) {
  4445. return /^(gündüz|axşam)$/.test(input);
  4446. },
  4447. meridiem : function (hour, minute, isLower) {
  4448. if (hour < 4) {
  4449. return 'gecə';
  4450. } else if (hour < 12) {
  4451. return 'səhər';
  4452. } else if (hour < 17) {
  4453. return 'gündüz';
  4454. } else {
  4455. return 'axşam';
  4456. }
  4457. },
  4458. dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
  4459. ordinal : function (number) {
  4460. if (number === 0) { // special case for zero
  4461. return number + '-ıncı';
  4462. }
  4463. var a = number % 10,
  4464. b = number % 100 - a,
  4465. c = number >= 100 ? 100 : null;
  4466. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  4467. },
  4468. week : {
  4469. dow : 1, // Monday is the first day of the week.
  4470. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4471. }
  4472. });
  4473. //! moment.js locale configuration
  4474. //! locale : Belarusian [be]
  4475. //! author : Dmitry Demidov : https://github.com/demidov91
  4476. //! author: Praleska: http://praleska.pro/
  4477. //! Author : Menelion Elensúle : https://github.com/Oire
  4478. function plural(word, num) {
  4479. var forms = word.split('_');
  4480. return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
  4481. }
  4482. function relativeTimeWithPlural(number, withoutSuffix, key) {
  4483. var format = {
  4484. 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
  4485. 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
  4486. 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
  4487. 'dd': 'дзень_дні_дзён',
  4488. 'MM': 'месяц_месяцы_месяцаў',
  4489. 'yy': 'год_гады_гадоў'
  4490. };
  4491. if (key === 'm') {
  4492. return withoutSuffix ? 'хвіліна' : 'хвіліну';
  4493. }
  4494. else if (key === 'h') {
  4495. return withoutSuffix ? 'гадзіна' : 'гадзіну';
  4496. }
  4497. else {
  4498. return number + ' ' + plural(format[key], +number);
  4499. }
  4500. }
  4501. hooks.defineLocale('be', {
  4502. months : {
  4503. format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),
  4504. standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')
  4505. },
  4506. monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
  4507. weekdays : {
  4508. format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),
  4509. standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
  4510. isFormat: /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/
  4511. },
  4512. weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  4513. weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  4514. longDateFormat : {
  4515. LT : 'HH:mm',
  4516. LTS : 'HH:mm:ss',
  4517. L : 'DD.MM.YYYY',
  4518. LL : 'D MMMM YYYY г.',
  4519. LLL : 'D MMMM YYYY г., HH:mm',
  4520. LLLL : 'dddd, D MMMM YYYY г., HH:mm'
  4521. },
  4522. calendar : {
  4523. sameDay: '[Сёння ў] LT',
  4524. nextDay: '[Заўтра ў] LT',
  4525. lastDay: '[Учора ў] LT',
  4526. nextWeek: function () {
  4527. return '[У] dddd [ў] LT';
  4528. },
  4529. lastWeek: function () {
  4530. switch (this.day()) {
  4531. case 0:
  4532. case 3:
  4533. case 5:
  4534. case 6:
  4535. return '[У мінулую] dddd [ў] LT';
  4536. case 1:
  4537. case 2:
  4538. case 4:
  4539. return '[У мінулы] dddd [ў] LT';
  4540. }
  4541. },
  4542. sameElse: 'L'
  4543. },
  4544. relativeTime : {
  4545. future : 'праз %s',
  4546. past : '%s таму',
  4547. s : 'некалькі секунд',
  4548. m : relativeTimeWithPlural,
  4549. mm : relativeTimeWithPlural,
  4550. h : relativeTimeWithPlural,
  4551. hh : relativeTimeWithPlural,
  4552. d : 'дзень',
  4553. dd : relativeTimeWithPlural,
  4554. M : 'месяц',
  4555. MM : relativeTimeWithPlural,
  4556. y : 'год',
  4557. yy : relativeTimeWithPlural
  4558. },
  4559. meridiemParse: /ночы|раніцы|дня|вечара/,
  4560. isPM : function (input) {
  4561. return /^(дня|вечара)$/.test(input);
  4562. },
  4563. meridiem : function (hour, minute, isLower) {
  4564. if (hour < 4) {
  4565. return 'ночы';
  4566. } else if (hour < 12) {
  4567. return 'раніцы';
  4568. } else if (hour < 17) {
  4569. return 'дня';
  4570. } else {
  4571. return 'вечара';
  4572. }
  4573. },
  4574. dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
  4575. ordinal: function (number, period) {
  4576. switch (period) {
  4577. case 'M':
  4578. case 'd':
  4579. case 'DDD':
  4580. case 'w':
  4581. case 'W':
  4582. return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
  4583. case 'D':
  4584. return number + '-га';
  4585. default:
  4586. return number;
  4587. }
  4588. },
  4589. week : {
  4590. dow : 1, // Monday is the first day of the week.
  4591. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4592. }
  4593. });
  4594. //! moment.js locale configuration
  4595. //! locale : Bulgarian [bg]
  4596. //! author : Krasen Borisov : https://github.com/kraz
  4597. hooks.defineLocale('bg', {
  4598. months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
  4599. monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
  4600. weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
  4601. weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
  4602. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  4603. longDateFormat : {
  4604. LT : 'H:mm',
  4605. LTS : 'H:mm:ss',
  4606. L : 'D.MM.YYYY',
  4607. LL : 'D MMMM YYYY',
  4608. LLL : 'D MMMM YYYY H:mm',
  4609. LLLL : 'dddd, D MMMM YYYY H:mm'
  4610. },
  4611. calendar : {
  4612. sameDay : '[Днес в] LT',
  4613. nextDay : '[Утре в] LT',
  4614. nextWeek : 'dddd [в] LT',
  4615. lastDay : '[Вчера в] LT',
  4616. lastWeek : function () {
  4617. switch (this.day()) {
  4618. case 0:
  4619. case 3:
  4620. case 6:
  4621. return '[В изминалата] dddd [в] LT';
  4622. case 1:
  4623. case 2:
  4624. case 4:
  4625. case 5:
  4626. return '[В изминалия] dddd [в] LT';
  4627. }
  4628. },
  4629. sameElse : 'L'
  4630. },
  4631. relativeTime : {
  4632. future : 'след %s',
  4633. past : 'преди %s',
  4634. s : 'няколко секунди',
  4635. ss : '%d секунди',
  4636. m : 'минута',
  4637. mm : '%d минути',
  4638. h : 'час',
  4639. hh : '%d часа',
  4640. d : 'ден',
  4641. dd : '%d дни',
  4642. M : 'месец',
  4643. MM : '%d месеца',
  4644. y : 'година',
  4645. yy : '%d години'
  4646. },
  4647. dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  4648. ordinal : function (number) {
  4649. var lastDigit = number % 10,
  4650. last2Digits = number % 100;
  4651. if (number === 0) {
  4652. return number + '-ев';
  4653. } else if (last2Digits === 0) {
  4654. return number + '-ен';
  4655. } else if (last2Digits > 10 && last2Digits < 20) {
  4656. return number + '-ти';
  4657. } else if (lastDigit === 1) {
  4658. return number + '-ви';
  4659. } else if (lastDigit === 2) {
  4660. return number + '-ри';
  4661. } else if (lastDigit === 7 || lastDigit === 8) {
  4662. return number + '-ми';
  4663. } else {
  4664. return number + '-ти';
  4665. }
  4666. },
  4667. week : {
  4668. dow : 1, // Monday is the first day of the week.
  4669. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4670. }
  4671. });
  4672. //! moment.js locale configuration
  4673. //! locale : Bambara [bm]
  4674. //! author : Estelle Comment : https://github.com/estellecomment
  4675. // Language contact person : Abdoufata Kane : https://github.com/abdoufata
  4676. hooks.defineLocale('bm', {
  4677. months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),
  4678. monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
  4679. weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
  4680. weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
  4681. weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
  4682. longDateFormat : {
  4683. LT : 'HH:mm',
  4684. LTS : 'HH:mm:ss',
  4685. L : 'DD/MM/YYYY',
  4686. LL : 'MMMM [tile] D [san] YYYY',
  4687. LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
  4688. LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'
  4689. },
  4690. calendar : {
  4691. sameDay : '[Bi lɛrɛ] LT',
  4692. nextDay : '[Sini lɛrɛ] LT',
  4693. nextWeek : 'dddd [don lɛrɛ] LT',
  4694. lastDay : '[Kunu lɛrɛ] LT',
  4695. lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',
  4696. sameElse : 'L'
  4697. },
  4698. relativeTime : {
  4699. future : '%s kɔnɔ',
  4700. past : 'a bɛ %s bɔ',
  4701. s : 'sanga dama dama',
  4702. ss : 'sekondi %d',
  4703. m : 'miniti kelen',
  4704. mm : 'miniti %d',
  4705. h : 'lɛrɛ kelen',
  4706. hh : 'lɛrɛ %d',
  4707. d : 'tile kelen',
  4708. dd : 'tile %d',
  4709. M : 'kalo kelen',
  4710. MM : 'kalo %d',
  4711. y : 'san kelen',
  4712. yy : 'san %d'
  4713. },
  4714. week : {
  4715. dow : 1, // Monday is the first day of the week.
  4716. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4717. }
  4718. });
  4719. //! moment.js locale configuration
  4720. //! locale : Bengali [bn]
  4721. //! author : Kaushik Gandhi : https://github.com/kaushikgandhi
  4722. var symbolMap$3 = {
  4723. '1': '১',
  4724. '2': '২',
  4725. '3': '৩',
  4726. '4': '৪',
  4727. '5': '৫',
  4728. '6': '৬',
  4729. '7': '৭',
  4730. '8': '৮',
  4731. '9': '৯',
  4732. '0': '০'
  4733. };
  4734. var numberMap$2 = {
  4735. '১': '1',
  4736. '২': '2',
  4737. '৩': '3',
  4738. '৪': '4',
  4739. '৫': '5',
  4740. '৬': '6',
  4741. '৭': '7',
  4742. '৮': '8',
  4743. '৯': '9',
  4744. '০': '0'
  4745. };
  4746. hooks.defineLocale('bn', {
  4747. months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
  4748. monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),
  4749. weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),
  4750. weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
  4751. weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),
  4752. longDateFormat : {
  4753. LT : 'A h:mm সময়',
  4754. LTS : 'A h:mm:ss সময়',
  4755. L : 'DD/MM/YYYY',
  4756. LL : 'D MMMM YYYY',
  4757. LLL : 'D MMMM YYYY, A h:mm সময়',
  4758. LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'
  4759. },
  4760. calendar : {
  4761. sameDay : '[আজ] LT',
  4762. nextDay : '[আগামীকাল] LT',
  4763. nextWeek : 'dddd, LT',
  4764. lastDay : '[গতকাল] LT',
  4765. lastWeek : '[গত] dddd, LT',
  4766. sameElse : 'L'
  4767. },
  4768. relativeTime : {
  4769. future : '%s পরে',
  4770. past : '%s আগে',
  4771. s : 'কয়েক সেকেন্ড',
  4772. ss : '%d সেকেন্ড',
  4773. m : 'এক মিনিট',
  4774. mm : '%d মিনিট',
  4775. h : 'এক ঘন্টা',
  4776. hh : '%d ঘন্টা',
  4777. d : 'এক দিন',
  4778. dd : '%d দিন',
  4779. M : 'এক মাস',
  4780. MM : '%d মাস',
  4781. y : 'এক বছর',
  4782. yy : '%d বছর'
  4783. },
  4784. preparse: function (string) {
  4785. return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
  4786. return numberMap$2[match];
  4787. });
  4788. },
  4789. postformat: function (string) {
  4790. return string.replace(/\d/g, function (match) {
  4791. return symbolMap$3[match];
  4792. });
  4793. },
  4794. meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
  4795. meridiemHour : function (hour, meridiem) {
  4796. if (hour === 12) {
  4797. hour = 0;
  4798. }
  4799. if ((meridiem === 'রাত' && hour >= 4) ||
  4800. (meridiem === 'দুপুর' && hour < 5) ||
  4801. meridiem === 'বিকাল') {
  4802. return hour + 12;
  4803. } else {
  4804. return hour;
  4805. }
  4806. },
  4807. meridiem : function (hour, minute, isLower) {
  4808. if (hour < 4) {
  4809. return 'রাত';
  4810. } else if (hour < 10) {
  4811. return 'সকাল';
  4812. } else if (hour < 17) {
  4813. return 'দুপুর';
  4814. } else if (hour < 20) {
  4815. return 'বিকাল';
  4816. } else {
  4817. return 'রাত';
  4818. }
  4819. },
  4820. week : {
  4821. dow : 0, // Sunday is the first day of the week.
  4822. doy : 6 // The week that contains Jan 1st is the first week of the year.
  4823. }
  4824. });
  4825. //! moment.js locale configuration
  4826. //! locale : Tibetan [bo]
  4827. //! author : Thupten N. Chakrishar : https://github.com/vajradog
  4828. var symbolMap$4 = {
  4829. '1': '༡',
  4830. '2': '༢',
  4831. '3': '༣',
  4832. '4': '༤',
  4833. '5': '༥',
  4834. '6': '༦',
  4835. '7': '༧',
  4836. '8': '༨',
  4837. '9': '༩',
  4838. '0': '༠'
  4839. };
  4840. var numberMap$3 = {
  4841. '༡': '1',
  4842. '༢': '2',
  4843. '༣': '3',
  4844. '༤': '4',
  4845. '༥': '5',
  4846. '༦': '6',
  4847. '༧': '7',
  4848. '༨': '8',
  4849. '༩': '9',
  4850. '༠': '0'
  4851. };
  4852. hooks.defineLocale('bo', {
  4853. months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  4854. monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  4855. weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
  4856. weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  4857. weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  4858. longDateFormat : {
  4859. LT : 'A h:mm',
  4860. LTS : 'A h:mm:ss',
  4861. L : 'DD/MM/YYYY',
  4862. LL : 'D MMMM YYYY',
  4863. LLL : 'D MMMM YYYY, A h:mm',
  4864. LLLL : 'dddd, D MMMM YYYY, A h:mm'
  4865. },
  4866. calendar : {
  4867. sameDay : '[དི་རིང] LT',
  4868. nextDay : '[སང་ཉིན] LT',
  4869. nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
  4870. lastDay : '[ཁ་སང] LT',
  4871. lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
  4872. sameElse : 'L'
  4873. },
  4874. relativeTime : {
  4875. future : '%s ལ་',
  4876. past : '%s སྔན་ལ',
  4877. s : 'ལམ་སང',
  4878. ss : '%d སྐར་ཆ།',
  4879. m : 'སྐར་མ་གཅིག',
  4880. mm : '%d སྐར་མ',
  4881. h : 'ཆུ་ཚོད་གཅིག',
  4882. hh : '%d ཆུ་ཚོད',
  4883. d : 'ཉིན་གཅིག',
  4884. dd : '%d ཉིན་',
  4885. M : 'ཟླ་བ་གཅིག',
  4886. MM : '%d ཟླ་བ',
  4887. y : 'ལོ་གཅིག',
  4888. yy : '%d ལོ'
  4889. },
  4890. preparse: function (string) {
  4891. return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
  4892. return numberMap$3[match];
  4893. });
  4894. },
  4895. postformat: function (string) {
  4896. return string.replace(/\d/g, function (match) {
  4897. return symbolMap$4[match];
  4898. });
  4899. },
  4900. meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
  4901. meridiemHour : function (hour, meridiem) {
  4902. if (hour === 12) {
  4903. hour = 0;
  4904. }
  4905. if ((meridiem === 'མཚན་མོ' && hour >= 4) ||
  4906. (meridiem === 'ཉིན་གུང' && hour < 5) ||
  4907. meridiem === 'དགོང་དག') {
  4908. return hour + 12;
  4909. } else {
  4910. return hour;
  4911. }
  4912. },
  4913. meridiem : function (hour, minute, isLower) {
  4914. if (hour < 4) {
  4915. return 'མཚན་མོ';
  4916. } else if (hour < 10) {
  4917. return 'ཞོགས་ཀས';
  4918. } else if (hour < 17) {
  4919. return 'ཉིན་གུང';
  4920. } else if (hour < 20) {
  4921. return 'དགོང་དག';
  4922. } else {
  4923. return 'མཚན་མོ';
  4924. }
  4925. },
  4926. week : {
  4927. dow : 0, // Sunday is the first day of the week.
  4928. doy : 6 // The week that contains Jan 1st is the first week of the year.
  4929. }
  4930. });
  4931. //! moment.js locale configuration
  4932. //! locale : Breton [br]
  4933. //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
  4934. function relativeTimeWithMutation(number, withoutSuffix, key) {
  4935. var format = {
  4936. 'mm': 'munutenn',
  4937. 'MM': 'miz',
  4938. 'dd': 'devezh'
  4939. };
  4940. return number + ' ' + mutation(format[key], number);
  4941. }
  4942. function specialMutationForYears(number) {
  4943. switch (lastNumber(number)) {
  4944. case 1:
  4945. case 3:
  4946. case 4:
  4947. case 5:
  4948. case 9:
  4949. return number + ' bloaz';
  4950. default:
  4951. return number + ' vloaz';
  4952. }
  4953. }
  4954. function lastNumber(number) {
  4955. if (number > 9) {
  4956. return lastNumber(number % 10);
  4957. }
  4958. return number;
  4959. }
  4960. function mutation(text, number) {
  4961. if (number === 2) {
  4962. return softMutation(text);
  4963. }
  4964. return text;
  4965. }
  4966. function softMutation(text) {
  4967. var mutationTable = {
  4968. 'm': 'v',
  4969. 'b': 'v',
  4970. 'd': 'z'
  4971. };
  4972. if (mutationTable[text.charAt(0)] === undefined) {
  4973. return text;
  4974. }
  4975. return mutationTable[text.charAt(0)] + text.substring(1);
  4976. }
  4977. hooks.defineLocale('br', {
  4978. months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
  4979. monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
  4980. weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
  4981. weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
  4982. weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
  4983. weekdaysParseExact : true,
  4984. longDateFormat : {
  4985. LT : 'h[e]mm A',
  4986. LTS : 'h[e]mm:ss A',
  4987. L : 'DD/MM/YYYY',
  4988. LL : 'D [a viz] MMMM YYYY',
  4989. LLL : 'D [a viz] MMMM YYYY h[e]mm A',
  4990. LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'
  4991. },
  4992. calendar : {
  4993. sameDay : '[Hiziv da] LT',
  4994. nextDay : '[Warc\'hoazh da] LT',
  4995. nextWeek : 'dddd [da] LT',
  4996. lastDay : '[Dec\'h da] LT',
  4997. lastWeek : 'dddd [paset da] LT',
  4998. sameElse : 'L'
  4999. },
  5000. relativeTime : {
  5001. future : 'a-benn %s',
  5002. past : '%s \'zo',
  5003. s : 'un nebeud segondennoù',
  5004. ss : '%d eilenn',
  5005. m : 'ur vunutenn',
  5006. mm : relativeTimeWithMutation,
  5007. h : 'un eur',
  5008. hh : '%d eur',
  5009. d : 'un devezh',
  5010. dd : relativeTimeWithMutation,
  5011. M : 'ur miz',
  5012. MM : relativeTimeWithMutation,
  5013. y : 'ur bloaz',
  5014. yy : specialMutationForYears
  5015. },
  5016. dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
  5017. ordinal : function (number) {
  5018. var output = (number === 1) ? 'añ' : 'vet';
  5019. return number + output;
  5020. },
  5021. week : {
  5022. dow : 1, // Monday is the first day of the week.
  5023. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5024. }
  5025. });
  5026. //! moment.js locale configuration
  5027. //! locale : Bosnian [bs]
  5028. //! author : Nedim Cholich : https://github.com/frontyard
  5029. //! based on (hr) translation by Bojan Marković
  5030. function translate(number, withoutSuffix, key) {
  5031. var result = number + ' ';
  5032. switch (key) {
  5033. case 'ss':
  5034. if (number === 1) {
  5035. result += 'sekunda';
  5036. } else if (number === 2 || number === 3 || number === 4) {
  5037. result += 'sekunde';
  5038. } else {
  5039. result += 'sekundi';
  5040. }
  5041. return result;
  5042. case 'm':
  5043. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  5044. case 'mm':
  5045. if (number === 1) {
  5046. result += 'minuta';
  5047. } else if (number === 2 || number === 3 || number === 4) {
  5048. result += 'minute';
  5049. } else {
  5050. result += 'minuta';
  5051. }
  5052. return result;
  5053. case 'h':
  5054. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  5055. case 'hh':
  5056. if (number === 1) {
  5057. result += 'sat';
  5058. } else if (number === 2 || number === 3 || number === 4) {
  5059. result += 'sata';
  5060. } else {
  5061. result += 'sati';
  5062. }
  5063. return result;
  5064. case 'dd':
  5065. if (number === 1) {
  5066. result += 'dan';
  5067. } else {
  5068. result += 'dana';
  5069. }
  5070. return result;
  5071. case 'MM':
  5072. if (number === 1) {
  5073. result += 'mjesec';
  5074. } else if (number === 2 || number === 3 || number === 4) {
  5075. result += 'mjeseca';
  5076. } else {
  5077. result += 'mjeseci';
  5078. }
  5079. return result;
  5080. case 'yy':
  5081. if (number === 1) {
  5082. result += 'godina';
  5083. } else if (number === 2 || number === 3 || number === 4) {
  5084. result += 'godine';
  5085. } else {
  5086. result += 'godina';
  5087. }
  5088. return result;
  5089. }
  5090. }
  5091. hooks.defineLocale('bs', {
  5092. months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
  5093. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
  5094. monthsParseExact: true,
  5095. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  5096. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  5097. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  5098. weekdaysParseExact : true,
  5099. longDateFormat : {
  5100. LT : 'H:mm',
  5101. LTS : 'H:mm:ss',
  5102. L : 'DD.MM.YYYY',
  5103. LL : 'D. MMMM YYYY',
  5104. LLL : 'D. MMMM YYYY H:mm',
  5105. LLLL : 'dddd, D. MMMM YYYY H:mm'
  5106. },
  5107. calendar : {
  5108. sameDay : '[danas u] LT',
  5109. nextDay : '[sutra u] LT',
  5110. nextWeek : function () {
  5111. switch (this.day()) {
  5112. case 0:
  5113. return '[u] [nedjelju] [u] LT';
  5114. case 3:
  5115. return '[u] [srijedu] [u] LT';
  5116. case 6:
  5117. return '[u] [subotu] [u] LT';
  5118. case 1:
  5119. case 2:
  5120. case 4:
  5121. case 5:
  5122. return '[u] dddd [u] LT';
  5123. }
  5124. },
  5125. lastDay : '[jučer u] LT',
  5126. lastWeek : function () {
  5127. switch (this.day()) {
  5128. case 0:
  5129. case 3:
  5130. return '[prošlu] dddd [u] LT';
  5131. case 6:
  5132. return '[prošle] [subote] [u] LT';
  5133. case 1:
  5134. case 2:
  5135. case 4:
  5136. case 5:
  5137. return '[prošli] dddd [u] LT';
  5138. }
  5139. },
  5140. sameElse : 'L'
  5141. },
  5142. relativeTime : {
  5143. future : 'za %s',
  5144. past : 'prije %s',
  5145. s : 'par sekundi',
  5146. ss : translate,
  5147. m : translate,
  5148. mm : translate,
  5149. h : translate,
  5150. hh : translate,
  5151. d : 'dan',
  5152. dd : translate,
  5153. M : 'mjesec',
  5154. MM : translate,
  5155. y : 'godinu',
  5156. yy : translate
  5157. },
  5158. dayOfMonthOrdinalParse: /\d{1,2}\./,
  5159. ordinal : '%d.',
  5160. week : {
  5161. dow : 1, // Monday is the first day of the week.
  5162. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5163. }
  5164. });
  5165. //! moment.js locale configuration
  5166. //! locale : Catalan [ca]
  5167. //! author : Juan G. Hurtado : https://github.com/juanghurtado
  5168. hooks.defineLocale('ca', {
  5169. months : {
  5170. standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
  5171. format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'),
  5172. isFormat: /D[oD]?(\s)+MMMM/
  5173. },
  5174. monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),
  5175. monthsParseExact : true,
  5176. weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
  5177. weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
  5178. weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
  5179. weekdaysParseExact : true,
  5180. longDateFormat : {
  5181. LT : 'H:mm',
  5182. LTS : 'H:mm:ss',
  5183. L : 'DD/MM/YYYY',
  5184. LL : 'D MMMM [de] YYYY',
  5185. ll : 'D MMM YYYY',
  5186. LLL : 'D MMMM [de] YYYY [a les] H:mm',
  5187. lll : 'D MMM YYYY, H:mm',
  5188. LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',
  5189. llll : 'ddd D MMM YYYY, H:mm'
  5190. },
  5191. calendar : {
  5192. sameDay : function () {
  5193. return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  5194. },
  5195. nextDay : function () {
  5196. return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  5197. },
  5198. nextWeek : function () {
  5199. return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  5200. },
  5201. lastDay : function () {
  5202. return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  5203. },
  5204. lastWeek : function () {
  5205. return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  5206. },
  5207. sameElse : 'L'
  5208. },
  5209. relativeTime : {
  5210. future : 'd\'aquí %s',
  5211. past : 'fa %s',
  5212. s : 'uns segons',
  5213. ss : '%d segons',
  5214. m : 'un minut',
  5215. mm : '%d minuts',
  5216. h : 'una hora',
  5217. hh : '%d hores',
  5218. d : 'un dia',
  5219. dd : '%d dies',
  5220. M : 'un mes',
  5221. MM : '%d mesos',
  5222. y : 'un any',
  5223. yy : '%d anys'
  5224. },
  5225. dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
  5226. ordinal : function (number, period) {
  5227. var output = (number === 1) ? 'r' :
  5228. (number === 2) ? 'n' :
  5229. (number === 3) ? 'r' :
  5230. (number === 4) ? 't' : 'è';
  5231. if (period === 'w' || period === 'W') {
  5232. output = 'a';
  5233. }
  5234. return number + output;
  5235. },
  5236. week : {
  5237. dow : 1, // Monday is the first day of the week.
  5238. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5239. }
  5240. });
  5241. //! moment.js locale configuration
  5242. //! locale : Czech [cs]
  5243. //! author : petrbela : https://github.com/petrbela
  5244. var months$3 = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_');
  5245. var monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
  5246. function plural$1(n) {
  5247. return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
  5248. }
  5249. function translate$1(number, withoutSuffix, key, isFuture) {
  5250. var result = number + ' ';
  5251. switch (key) {
  5252. case 's': // a few seconds / in a few seconds / a few seconds ago
  5253. return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
  5254. case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
  5255. if (withoutSuffix || isFuture) {
  5256. return result + (plural$1(number) ? 'sekundy' : 'sekund');
  5257. } else {
  5258. return result + 'sekundami';
  5259. }
  5260. break;
  5261. case 'm': // a minute / in a minute / a minute ago
  5262. return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
  5263. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  5264. if (withoutSuffix || isFuture) {
  5265. return result + (plural$1(number) ? 'minuty' : 'minut');
  5266. } else {
  5267. return result + 'minutami';
  5268. }
  5269. break;
  5270. case 'h': // an hour / in an hour / an hour ago
  5271. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  5272. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  5273. if (withoutSuffix || isFuture) {
  5274. return result + (plural$1(number) ? 'hodiny' : 'hodin');
  5275. } else {
  5276. return result + 'hodinami';
  5277. }
  5278. break;
  5279. case 'd': // a day / in a day / a day ago
  5280. return (withoutSuffix || isFuture) ? 'den' : 'dnem';
  5281. case 'dd': // 9 days / in 9 days / 9 days ago
  5282. if (withoutSuffix || isFuture) {
  5283. return result + (plural$1(number) ? 'dny' : 'dní');
  5284. } else {
  5285. return result + 'dny';
  5286. }
  5287. break;
  5288. case 'M': // a month / in a month / a month ago
  5289. return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
  5290. case 'MM': // 9 months / in 9 months / 9 months ago
  5291. if (withoutSuffix || isFuture) {
  5292. return result + (plural$1(number) ? 'měsíce' : 'měsíců');
  5293. } else {
  5294. return result + 'měsíci';
  5295. }
  5296. break;
  5297. case 'y': // a year / in a year / a year ago
  5298. return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
  5299. case 'yy': // 9 years / in 9 years / 9 years ago
  5300. if (withoutSuffix || isFuture) {
  5301. return result + (plural$1(number) ? 'roky' : 'let');
  5302. } else {
  5303. return result + 'lety';
  5304. }
  5305. break;
  5306. }
  5307. }
  5308. hooks.defineLocale('cs', {
  5309. months : months$3,
  5310. monthsShort : monthsShort,
  5311. monthsParse : (function (months, monthsShort) {
  5312. var i, _monthsParse = [];
  5313. for (i = 0; i < 12; i++) {
  5314. // use custom parser to solve problem with July (červenec)
  5315. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  5316. }
  5317. return _monthsParse;
  5318. }(months$3, monthsShort)),
  5319. shortMonthsParse : (function (monthsShort) {
  5320. var i, _shortMonthsParse = [];
  5321. for (i = 0; i < 12; i++) {
  5322. _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');
  5323. }
  5324. return _shortMonthsParse;
  5325. }(monthsShort)),
  5326. longMonthsParse : (function (months) {
  5327. var i, _longMonthsParse = [];
  5328. for (i = 0; i < 12; i++) {
  5329. _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');
  5330. }
  5331. return _longMonthsParse;
  5332. }(months$3)),
  5333. weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
  5334. weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
  5335. weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
  5336. longDateFormat : {
  5337. LT: 'H:mm',
  5338. LTS : 'H:mm:ss',
  5339. L : 'DD.MM.YYYY',
  5340. LL : 'D. MMMM YYYY',
  5341. LLL : 'D. MMMM YYYY H:mm',
  5342. LLLL : 'dddd D. MMMM YYYY H:mm',
  5343. l : 'D. M. YYYY'
  5344. },
  5345. calendar : {
  5346. sameDay: '[dnes v] LT',
  5347. nextDay: '[zítra v] LT',
  5348. nextWeek: function () {
  5349. switch (this.day()) {
  5350. case 0:
  5351. return '[v neděli v] LT';
  5352. case 1:
  5353. case 2:
  5354. return '[v] dddd [v] LT';
  5355. case 3:
  5356. return '[ve středu v] LT';
  5357. case 4:
  5358. return '[ve čtvrtek v] LT';
  5359. case 5:
  5360. return '[v pátek v] LT';
  5361. case 6:
  5362. return '[v sobotu v] LT';
  5363. }
  5364. },
  5365. lastDay: '[včera v] LT',
  5366. lastWeek: function () {
  5367. switch (this.day()) {
  5368. case 0:
  5369. return '[minulou neděli v] LT';
  5370. case 1:
  5371. case 2:
  5372. return '[minulé] dddd [v] LT';
  5373. case 3:
  5374. return '[minulou středu v] LT';
  5375. case 4:
  5376. case 5:
  5377. return '[minulý] dddd [v] LT';
  5378. case 6:
  5379. return '[minulou sobotu v] LT';
  5380. }
  5381. },
  5382. sameElse: 'L'
  5383. },
  5384. relativeTime : {
  5385. future : 'za %s',
  5386. past : 'před %s',
  5387. s : translate$1,
  5388. ss : translate$1,
  5389. m : translate$1,
  5390. mm : translate$1,
  5391. h : translate$1,
  5392. hh : translate$1,
  5393. d : translate$1,
  5394. dd : translate$1,
  5395. M : translate$1,
  5396. MM : translate$1,
  5397. y : translate$1,
  5398. yy : translate$1
  5399. },
  5400. dayOfMonthOrdinalParse : /\d{1,2}\./,
  5401. ordinal : '%d.',
  5402. week : {
  5403. dow : 1, // Monday is the first day of the week.
  5404. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5405. }
  5406. });
  5407. //! moment.js locale configuration
  5408. //! locale : Chuvash [cv]
  5409. //! author : Anatoly Mironov : https://github.com/mirontoli
  5410. hooks.defineLocale('cv', {
  5411. months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),
  5412. monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
  5413. weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),
  5414. weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
  5415. weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
  5416. longDateFormat : {
  5417. LT : 'HH:mm',
  5418. LTS : 'HH:mm:ss',
  5419. L : 'DD-MM-YYYY',
  5420. LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
  5421. LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
  5422. LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'
  5423. },
  5424. calendar : {
  5425. sameDay: '[Паян] LT [сехетре]',
  5426. nextDay: '[Ыран] LT [сехетре]',
  5427. lastDay: '[Ӗнер] LT [сехетре]',
  5428. nextWeek: '[Ҫитес] dddd LT [сехетре]',
  5429. lastWeek: '[Иртнӗ] dddd LT [сехетре]',
  5430. sameElse: 'L'
  5431. },
  5432. relativeTime : {
  5433. future : function (output) {
  5434. var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';
  5435. return output + affix;
  5436. },
  5437. past : '%s каялла',
  5438. s : 'пӗр-ик ҫеккунт',
  5439. ss : '%d ҫеккунт',
  5440. m : 'пӗр минут',
  5441. mm : '%d минут',
  5442. h : 'пӗр сехет',
  5443. hh : '%d сехет',
  5444. d : 'пӗр кун',
  5445. dd : '%d кун',
  5446. M : 'пӗр уйӑх',
  5447. MM : '%d уйӑх',
  5448. y : 'пӗр ҫул',
  5449. yy : '%d ҫул'
  5450. },
  5451. dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
  5452. ordinal : '%d-мӗш',
  5453. week : {
  5454. dow : 1, // Monday is the first day of the week.
  5455. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5456. }
  5457. });
  5458. //! moment.js locale configuration
  5459. //! locale : Welsh [cy]
  5460. //! author : Robert Allen : https://github.com/robgallen
  5461. //! author : https://github.com/ryangreaves
  5462. hooks.defineLocale('cy', {
  5463. months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
  5464. monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
  5465. weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
  5466. weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
  5467. weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
  5468. weekdaysParseExact : true,
  5469. // time formats are the same as en-gb
  5470. longDateFormat: {
  5471. LT: 'HH:mm',
  5472. LTS : 'HH:mm:ss',
  5473. L: 'DD/MM/YYYY',
  5474. LL: 'D MMMM YYYY',
  5475. LLL: 'D MMMM YYYY HH:mm',
  5476. LLLL: 'dddd, D MMMM YYYY HH:mm'
  5477. },
  5478. calendar: {
  5479. sameDay: '[Heddiw am] LT',
  5480. nextDay: '[Yfory am] LT',
  5481. nextWeek: 'dddd [am] LT',
  5482. lastDay: '[Ddoe am] LT',
  5483. lastWeek: 'dddd [diwethaf am] LT',
  5484. sameElse: 'L'
  5485. },
  5486. relativeTime: {
  5487. future: 'mewn %s',
  5488. past: '%s yn ôl',
  5489. s: 'ychydig eiliadau',
  5490. ss: '%d eiliad',
  5491. m: 'munud',
  5492. mm: '%d munud',
  5493. h: 'awr',
  5494. hh: '%d awr',
  5495. d: 'diwrnod',
  5496. dd: '%d diwrnod',
  5497. M: 'mis',
  5498. MM: '%d mis',
  5499. y: 'blwyddyn',
  5500. yy: '%d flynedd'
  5501. },
  5502. dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
  5503. // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
  5504. ordinal: function (number) {
  5505. var b = number,
  5506. output = '',
  5507. lookup = [
  5508. '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
  5509. 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
  5510. ];
  5511. if (b > 20) {
  5512. if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
  5513. output = 'fed'; // not 30ain, 70ain or 90ain
  5514. } else {
  5515. output = 'ain';
  5516. }
  5517. } else if (b > 0) {
  5518. output = lookup[b];
  5519. }
  5520. return number + output;
  5521. },
  5522. week : {
  5523. dow : 1, // Monday is the first day of the week.
  5524. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5525. }
  5526. });
  5527. //! moment.js locale configuration
  5528. //! locale : Danish [da]
  5529. //! author : Ulrik Nielsen : https://github.com/mrbase
  5530. hooks.defineLocale('da', {
  5531. months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
  5532. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  5533. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  5534. weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
  5535. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  5536. longDateFormat : {
  5537. LT : 'HH:mm',
  5538. LTS : 'HH:mm:ss',
  5539. L : 'DD.MM.YYYY',
  5540. LL : 'D. MMMM YYYY',
  5541. LLL : 'D. MMMM YYYY HH:mm',
  5542. LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'
  5543. },
  5544. calendar : {
  5545. sameDay : '[i dag kl.] LT',
  5546. nextDay : '[i morgen kl.] LT',
  5547. nextWeek : 'på dddd [kl.] LT',
  5548. lastDay : '[i går kl.] LT',
  5549. lastWeek : '[i] dddd[s kl.] LT',
  5550. sameElse : 'L'
  5551. },
  5552. relativeTime : {
  5553. future : 'om %s',
  5554. past : '%s siden',
  5555. s : 'få sekunder',
  5556. ss : '%d sekunder',
  5557. m : 'et minut',
  5558. mm : '%d minutter',
  5559. h : 'en time',
  5560. hh : '%d timer',
  5561. d : 'en dag',
  5562. dd : '%d dage',
  5563. M : 'en måned',
  5564. MM : '%d måneder',
  5565. y : 'et år',
  5566. yy : '%d år'
  5567. },
  5568. dayOfMonthOrdinalParse: /\d{1,2}\./,
  5569. ordinal : '%d.',
  5570. week : {
  5571. dow : 1, // Monday is the first day of the week.
  5572. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5573. }
  5574. });
  5575. //! moment.js locale configuration
  5576. //! locale : German (Austria) [de-at]
  5577. //! author : lluchs : https://github.com/lluchs
  5578. //! author: Menelion Elensúle: https://github.com/Oire
  5579. //! author : Martin Groller : https://github.com/MadMG
  5580. //! author : Mikolaj Dadela : https://github.com/mik01aj
  5581. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  5582. var format = {
  5583. 'm': ['eine Minute', 'einer Minute'],
  5584. 'h': ['eine Stunde', 'einer Stunde'],
  5585. 'd': ['ein Tag', 'einem Tag'],
  5586. 'dd': [number + ' Tage', number + ' Tagen'],
  5587. 'M': ['ein Monat', 'einem Monat'],
  5588. 'MM': [number + ' Monate', number + ' Monaten'],
  5589. 'y': ['ein Jahr', 'einem Jahr'],
  5590. 'yy': [number + ' Jahre', number + ' Jahren']
  5591. };
  5592. return withoutSuffix ? format[key][0] : format[key][1];
  5593. }
  5594. hooks.defineLocale('de-at', {
  5595. months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  5596. monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
  5597. monthsParseExact : true,
  5598. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  5599. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  5600. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  5601. weekdaysParseExact : true,
  5602. longDateFormat : {
  5603. LT: 'HH:mm',
  5604. LTS: 'HH:mm:ss',
  5605. L : 'DD.MM.YYYY',
  5606. LL : 'D. MMMM YYYY',
  5607. LLL : 'D. MMMM YYYY HH:mm',
  5608. LLLL : 'dddd, D. MMMM YYYY HH:mm'
  5609. },
  5610. calendar : {
  5611. sameDay: '[heute um] LT [Uhr]',
  5612. sameElse: 'L',
  5613. nextDay: '[morgen um] LT [Uhr]',
  5614. nextWeek: 'dddd [um] LT [Uhr]',
  5615. lastDay: '[gestern um] LT [Uhr]',
  5616. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  5617. },
  5618. relativeTime : {
  5619. future : 'in %s',
  5620. past : 'vor %s',
  5621. s : 'ein paar Sekunden',
  5622. ss : '%d Sekunden',
  5623. m : processRelativeTime,
  5624. mm : '%d Minuten',
  5625. h : processRelativeTime,
  5626. hh : '%d Stunden',
  5627. d : processRelativeTime,
  5628. dd : processRelativeTime,
  5629. M : processRelativeTime,
  5630. MM : processRelativeTime,
  5631. y : processRelativeTime,
  5632. yy : processRelativeTime
  5633. },
  5634. dayOfMonthOrdinalParse: /\d{1,2}\./,
  5635. ordinal : '%d.',
  5636. week : {
  5637. dow : 1, // Monday is the first day of the week.
  5638. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5639. }
  5640. });
  5641. //! moment.js locale configuration
  5642. //! locale : German (Switzerland) [de-ch]
  5643. //! author : sschueller : https://github.com/sschueller
  5644. // based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de#
  5645. function processRelativeTime$1(number, withoutSuffix, key, isFuture) {
  5646. var format = {
  5647. 'm': ['eine Minute', 'einer Minute'],
  5648. 'h': ['eine Stunde', 'einer Stunde'],
  5649. 'd': ['ein Tag', 'einem Tag'],
  5650. 'dd': [number + ' Tage', number + ' Tagen'],
  5651. 'M': ['ein Monat', 'einem Monat'],
  5652. 'MM': [number + ' Monate', number + ' Monaten'],
  5653. 'y': ['ein Jahr', 'einem Jahr'],
  5654. 'yy': [number + ' Jahre', number + ' Jahren']
  5655. };
  5656. return withoutSuffix ? format[key][0] : format[key][1];
  5657. }
  5658. hooks.defineLocale('de-ch', {
  5659. months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  5660. monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
  5661. monthsParseExact : true,
  5662. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  5663. weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  5664. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  5665. weekdaysParseExact : true,
  5666. longDateFormat : {
  5667. LT: 'HH:mm',
  5668. LTS: 'HH:mm:ss',
  5669. L : 'DD.MM.YYYY',
  5670. LL : 'D. MMMM YYYY',
  5671. LLL : 'D. MMMM YYYY HH:mm',
  5672. LLLL : 'dddd, D. MMMM YYYY HH:mm'
  5673. },
  5674. calendar : {
  5675. sameDay: '[heute um] LT [Uhr]',
  5676. sameElse: 'L',
  5677. nextDay: '[morgen um] LT [Uhr]',
  5678. nextWeek: 'dddd [um] LT [Uhr]',
  5679. lastDay: '[gestern um] LT [Uhr]',
  5680. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  5681. },
  5682. relativeTime : {
  5683. future : 'in %s',
  5684. past : 'vor %s',
  5685. s : 'ein paar Sekunden',
  5686. ss : '%d Sekunden',
  5687. m : processRelativeTime$1,
  5688. mm : '%d Minuten',
  5689. h : processRelativeTime$1,
  5690. hh : '%d Stunden',
  5691. d : processRelativeTime$1,
  5692. dd : processRelativeTime$1,
  5693. M : processRelativeTime$1,
  5694. MM : processRelativeTime$1,
  5695. y : processRelativeTime$1,
  5696. yy : processRelativeTime$1
  5697. },
  5698. dayOfMonthOrdinalParse: /\d{1,2}\./,
  5699. ordinal : '%d.',
  5700. week : {
  5701. dow : 1, // Monday is the first day of the week.
  5702. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5703. }
  5704. });
  5705. //! moment.js locale configuration
  5706. //! locale : German [de]
  5707. //! author : lluchs : https://github.com/lluchs
  5708. //! author: Menelion Elensúle: https://github.com/Oire
  5709. //! author : Mikolaj Dadela : https://github.com/mik01aj
  5710. function processRelativeTime$2(number, withoutSuffix, key, isFuture) {
  5711. var format = {
  5712. 'm': ['eine Minute', 'einer Minute'],
  5713. 'h': ['eine Stunde', 'einer Stunde'],
  5714. 'd': ['ein Tag', 'einem Tag'],
  5715. 'dd': [number + ' Tage', number + ' Tagen'],
  5716. 'M': ['ein Monat', 'einem Monat'],
  5717. 'MM': [number + ' Monate', number + ' Monaten'],
  5718. 'y': ['ein Jahr', 'einem Jahr'],
  5719. 'yy': [number + ' Jahre', number + ' Jahren']
  5720. };
  5721. return withoutSuffix ? format[key][0] : format[key][1];
  5722. }
  5723. hooks.defineLocale('de', {
  5724. months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  5725. monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
  5726. monthsParseExact : true,
  5727. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  5728. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  5729. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  5730. weekdaysParseExact : true,
  5731. longDateFormat : {
  5732. LT: 'HH:mm',
  5733. LTS: 'HH:mm:ss',
  5734. L : 'DD.MM.YYYY',
  5735. LL : 'D. MMMM YYYY',
  5736. LLL : 'D. MMMM YYYY HH:mm',
  5737. LLLL : 'dddd, D. MMMM YYYY HH:mm'
  5738. },
  5739. calendar : {
  5740. sameDay: '[heute um] LT [Uhr]',
  5741. sameElse: 'L',
  5742. nextDay: '[morgen um] LT [Uhr]',
  5743. nextWeek: 'dddd [um] LT [Uhr]',
  5744. lastDay: '[gestern um] LT [Uhr]',
  5745. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  5746. },
  5747. relativeTime : {
  5748. future : 'in %s',
  5749. past : 'vor %s',
  5750. s : 'ein paar Sekunden',
  5751. ss : '%d Sekunden',
  5752. m : processRelativeTime$2,
  5753. mm : '%d Minuten',
  5754. h : processRelativeTime$2,
  5755. hh : '%d Stunden',
  5756. d : processRelativeTime$2,
  5757. dd : processRelativeTime$2,
  5758. M : processRelativeTime$2,
  5759. MM : processRelativeTime$2,
  5760. y : processRelativeTime$2,
  5761. yy : processRelativeTime$2
  5762. },
  5763. dayOfMonthOrdinalParse: /\d{1,2}\./,
  5764. ordinal : '%d.',
  5765. week : {
  5766. dow : 1, // Monday is the first day of the week.
  5767. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5768. }
  5769. });
  5770. //! moment.js locale configuration
  5771. //! locale : Maldivian [dv]
  5772. //! author : Jawish Hameed : https://github.com/jawish
  5773. var months$4 = [
  5774. 'ޖެނުއަރީ',
  5775. 'ފެބްރުއަރީ',
  5776. 'މާރިޗު',
  5777. 'އޭޕްރީލު',
  5778. 'މޭ',
  5779. 'ޖޫން',
  5780. 'ޖުލައި',
  5781. 'އޯގަސްޓު',
  5782. 'ސެޕްޓެމްބަރު',
  5783. 'އޮކްޓޯބަރު',
  5784. 'ނޮވެމްބަރު',
  5785. 'ޑިސެމްބަރު'
  5786. ];
  5787. var weekdays = [
  5788. 'އާދިއްތަ',
  5789. 'ހޯމަ',
  5790. 'އަންގާރަ',
  5791. 'ބުދަ',
  5792. 'ބުރާސްފަތި',
  5793. 'ހުކުރު',
  5794. 'ހޮނިހިރު'
  5795. ];
  5796. hooks.defineLocale('dv', {
  5797. months : months$4,
  5798. monthsShort : months$4,
  5799. weekdays : weekdays,
  5800. weekdaysShort : weekdays,
  5801. weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
  5802. longDateFormat : {
  5803. LT : 'HH:mm',
  5804. LTS : 'HH:mm:ss',
  5805. L : 'D/M/YYYY',
  5806. LL : 'D MMMM YYYY',
  5807. LLL : 'D MMMM YYYY HH:mm',
  5808. LLLL : 'dddd D MMMM YYYY HH:mm'
  5809. },
  5810. meridiemParse: /މކ|މފ/,
  5811. isPM : function (input) {
  5812. return 'މފ' === input;
  5813. },
  5814. meridiem : function (hour, minute, isLower) {
  5815. if (hour < 12) {
  5816. return 'މކ';
  5817. } else {
  5818. return 'މފ';
  5819. }
  5820. },
  5821. calendar : {
  5822. sameDay : '[މިއަދު] LT',
  5823. nextDay : '[މާދަމާ] LT',
  5824. nextWeek : 'dddd LT',
  5825. lastDay : '[އިއްޔެ] LT',
  5826. lastWeek : '[ފާއިތުވި] dddd LT',
  5827. sameElse : 'L'
  5828. },
  5829. relativeTime : {
  5830. future : 'ތެރޭގައި %s',
  5831. past : 'ކުރިން %s',
  5832. s : 'ސިކުންތުކޮޅެއް',
  5833. ss : 'd% ސިކުންތު',
  5834. m : 'މިނިޓެއް',
  5835. mm : 'މިނިޓު %d',
  5836. h : 'ގަޑިއިރެއް',
  5837. hh : 'ގަޑިއިރު %d',
  5838. d : 'ދުވަހެއް',
  5839. dd : 'ދުވަސް %d',
  5840. M : 'މަހެއް',
  5841. MM : 'މަސް %d',
  5842. y : 'އަހަރެއް',
  5843. yy : 'އަހަރު %d'
  5844. },
  5845. preparse: function (string) {
  5846. return string.replace(/،/g, ',');
  5847. },
  5848. postformat: function (string) {
  5849. return string.replace(/,/g, '،');
  5850. },
  5851. week : {
  5852. dow : 7, // Sunday is the first day of the week.
  5853. doy : 12 // The week that contains Jan 1st is the first week of the year.
  5854. }
  5855. });
  5856. //! moment.js locale configuration
  5857. //! locale : Greek [el]
  5858. //! author : Aggelos Karalias : https://github.com/mehiel
  5859. hooks.defineLocale('el', {
  5860. monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
  5861. monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
  5862. months : function (momentToFormat, format) {
  5863. if (!momentToFormat) {
  5864. return this._monthsNominativeEl;
  5865. } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
  5866. return this._monthsGenitiveEl[momentToFormat.month()];
  5867. } else {
  5868. return this._monthsNominativeEl[momentToFormat.month()];
  5869. }
  5870. },
  5871. monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
  5872. weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
  5873. weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
  5874. weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
  5875. meridiem : function (hours, minutes, isLower) {
  5876. if (hours > 11) {
  5877. return isLower ? 'μμ' : 'ΜΜ';
  5878. } else {
  5879. return isLower ? 'πμ' : 'ΠΜ';
  5880. }
  5881. },
  5882. isPM : function (input) {
  5883. return ((input + '').toLowerCase()[0] === 'μ');
  5884. },
  5885. meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
  5886. longDateFormat : {
  5887. LT : 'h:mm A',
  5888. LTS : 'h:mm:ss A',
  5889. L : 'DD/MM/YYYY',
  5890. LL : 'D MMMM YYYY',
  5891. LLL : 'D MMMM YYYY h:mm A',
  5892. LLLL : 'dddd, D MMMM YYYY h:mm A'
  5893. },
  5894. calendarEl : {
  5895. sameDay : '[Σήμερα {}] LT',
  5896. nextDay : '[Αύριο {}] LT',
  5897. nextWeek : 'dddd [{}] LT',
  5898. lastDay : '[Χθες {}] LT',
  5899. lastWeek : function () {
  5900. switch (this.day()) {
  5901. case 6:
  5902. return '[το προηγούμενο] dddd [{}] LT';
  5903. default:
  5904. return '[την προηγούμενη] dddd [{}] LT';
  5905. }
  5906. },
  5907. sameElse : 'L'
  5908. },
  5909. calendar : function (key, mom) {
  5910. var output = this._calendarEl[key],
  5911. hours = mom && mom.hours();
  5912. if (isFunction(output)) {
  5913. output = output.apply(mom);
  5914. }
  5915. return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
  5916. },
  5917. relativeTime : {
  5918. future : 'σε %s',
  5919. past : '%s πριν',
  5920. s : 'λίγα δευτερόλεπτα',
  5921. ss : '%d δευτερόλεπτα',
  5922. m : 'ένα λεπτό',
  5923. mm : '%d λεπτά',
  5924. h : 'μία ώρα',
  5925. hh : '%d ώρες',
  5926. d : 'μία μέρα',
  5927. dd : '%d μέρες',
  5928. M : 'ένας μήνας',
  5929. MM : '%d μήνες',
  5930. y : 'ένας χρόνος',
  5931. yy : '%d χρόνια'
  5932. },
  5933. dayOfMonthOrdinalParse: /\d{1,2}η/,
  5934. ordinal: '%dη',
  5935. week : {
  5936. dow : 1, // Monday is the first day of the week.
  5937. doy : 4 // The week that contains Jan 4st is the first week of the year.
  5938. }
  5939. });
  5940. //! moment.js locale configuration
  5941. //! locale : English (Australia) [en-au]
  5942. //! author : Jared Morse : https://github.com/jarcoal
  5943. hooks.defineLocale('en-au', {
  5944. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  5945. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  5946. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  5947. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  5948. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  5949. longDateFormat : {
  5950. LT : 'h:mm A',
  5951. LTS : 'h:mm:ss A',
  5952. L : 'DD/MM/YYYY',
  5953. LL : 'D MMMM YYYY',
  5954. LLL : 'D MMMM YYYY h:mm A',
  5955. LLLL : 'dddd, D MMMM YYYY h:mm A'
  5956. },
  5957. calendar : {
  5958. sameDay : '[Today at] LT',
  5959. nextDay : '[Tomorrow at] LT',
  5960. nextWeek : 'dddd [at] LT',
  5961. lastDay : '[Yesterday at] LT',
  5962. lastWeek : '[Last] dddd [at] LT',
  5963. sameElse : 'L'
  5964. },
  5965. relativeTime : {
  5966. future : 'in %s',
  5967. past : '%s ago',
  5968. s : 'a few seconds',
  5969. ss : '%d seconds',
  5970. m : 'a minute',
  5971. mm : '%d minutes',
  5972. h : 'an hour',
  5973. hh : '%d hours',
  5974. d : 'a day',
  5975. dd : '%d days',
  5976. M : 'a month',
  5977. MM : '%d months',
  5978. y : 'a year',
  5979. yy : '%d years'
  5980. },
  5981. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  5982. ordinal : function (number) {
  5983. var b = number % 10,
  5984. output = (~~(number % 100 / 10) === 1) ? 'th' :
  5985. (b === 1) ? 'st' :
  5986. (b === 2) ? 'nd' :
  5987. (b === 3) ? 'rd' : 'th';
  5988. return number + output;
  5989. },
  5990. week : {
  5991. dow : 1, // Monday is the first day of the week.
  5992. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5993. }
  5994. });
  5995. //! moment.js locale configuration
  5996. //! locale : English (Canada) [en-ca]
  5997. //! author : Jonathan Abourbih : https://github.com/jonbca
  5998. hooks.defineLocale('en-ca', {
  5999. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  6000. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  6001. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  6002. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  6003. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  6004. longDateFormat : {
  6005. LT : 'h:mm A',
  6006. LTS : 'h:mm:ss A',
  6007. L : 'YYYY-MM-DD',
  6008. LL : 'MMMM D, YYYY',
  6009. LLL : 'MMMM D, YYYY h:mm A',
  6010. LLLL : 'dddd, MMMM D, YYYY h:mm A'
  6011. },
  6012. calendar : {
  6013. sameDay : '[Today at] LT',
  6014. nextDay : '[Tomorrow at] LT',
  6015. nextWeek : 'dddd [at] LT',
  6016. lastDay : '[Yesterday at] LT',
  6017. lastWeek : '[Last] dddd [at] LT',
  6018. sameElse : 'L'
  6019. },
  6020. relativeTime : {
  6021. future : 'in %s',
  6022. past : '%s ago',
  6023. s : 'a few seconds',
  6024. ss : '%d seconds',
  6025. m : 'a minute',
  6026. mm : '%d minutes',
  6027. h : 'an hour',
  6028. hh : '%d hours',
  6029. d : 'a day',
  6030. dd : '%d days',
  6031. M : 'a month',
  6032. MM : '%d months',
  6033. y : 'a year',
  6034. yy : '%d years'
  6035. },
  6036. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  6037. ordinal : function (number) {
  6038. var b = number % 10,
  6039. output = (~~(number % 100 / 10) === 1) ? 'th' :
  6040. (b === 1) ? 'st' :
  6041. (b === 2) ? 'nd' :
  6042. (b === 3) ? 'rd' : 'th';
  6043. return number + output;
  6044. }
  6045. });
  6046. //! moment.js locale configuration
  6047. //! locale : English (United Kingdom) [en-gb]
  6048. //! author : Chris Gedrim : https://github.com/chrisgedrim
  6049. hooks.defineLocale('en-gb', {
  6050. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  6051. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  6052. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  6053. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  6054. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  6055. longDateFormat : {
  6056. LT : 'HH:mm',
  6057. LTS : 'HH:mm:ss',
  6058. L : 'DD/MM/YYYY',
  6059. LL : 'D MMMM YYYY',
  6060. LLL : 'D MMMM YYYY HH:mm',
  6061. LLLL : 'dddd, D MMMM YYYY HH:mm'
  6062. },
  6063. calendar : {
  6064. sameDay : '[Today at] LT',
  6065. nextDay : '[Tomorrow at] LT',
  6066. nextWeek : 'dddd [at] LT',
  6067. lastDay : '[Yesterday at] LT',
  6068. lastWeek : '[Last] dddd [at] LT',
  6069. sameElse : 'L'
  6070. },
  6071. relativeTime : {
  6072. future : 'in %s',
  6073. past : '%s ago',
  6074. s : 'a few seconds',
  6075. ss : '%d seconds',
  6076. m : 'a minute',
  6077. mm : '%d minutes',
  6078. h : 'an hour',
  6079. hh : '%d hours',
  6080. d : 'a day',
  6081. dd : '%d days',
  6082. M : 'a month',
  6083. MM : '%d months',
  6084. y : 'a year',
  6085. yy : '%d years'
  6086. },
  6087. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  6088. ordinal : function (number) {
  6089. var b = number % 10,
  6090. output = (~~(number % 100 / 10) === 1) ? 'th' :
  6091. (b === 1) ? 'st' :
  6092. (b === 2) ? 'nd' :
  6093. (b === 3) ? 'rd' : 'th';
  6094. return number + output;
  6095. },
  6096. week : {
  6097. dow : 1, // Monday is the first day of the week.
  6098. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6099. }
  6100. });
  6101. //! moment.js locale configuration
  6102. //! locale : English (Ireland) [en-ie]
  6103. //! author : Chris Cartlidge : https://github.com/chriscartlidge
  6104. hooks.defineLocale('en-ie', {
  6105. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  6106. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  6107. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  6108. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  6109. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  6110. longDateFormat : {
  6111. LT : 'HH:mm',
  6112. LTS : 'HH:mm:ss',
  6113. L : 'DD-MM-YYYY',
  6114. LL : 'D MMMM YYYY',
  6115. LLL : 'D MMMM YYYY HH:mm',
  6116. LLLL : 'dddd D MMMM YYYY HH:mm'
  6117. },
  6118. calendar : {
  6119. sameDay : '[Today at] LT',
  6120. nextDay : '[Tomorrow at] LT',
  6121. nextWeek : 'dddd [at] LT',
  6122. lastDay : '[Yesterday at] LT',
  6123. lastWeek : '[Last] dddd [at] LT',
  6124. sameElse : 'L'
  6125. },
  6126. relativeTime : {
  6127. future : 'in %s',
  6128. past : '%s ago',
  6129. s : 'a few seconds',
  6130. ss : '%d seconds',
  6131. m : 'a minute',
  6132. mm : '%d minutes',
  6133. h : 'an hour',
  6134. hh : '%d hours',
  6135. d : 'a day',
  6136. dd : '%d days',
  6137. M : 'a month',
  6138. MM : '%d months',
  6139. y : 'a year',
  6140. yy : '%d years'
  6141. },
  6142. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  6143. ordinal : function (number) {
  6144. var b = number % 10,
  6145. output = (~~(number % 100 / 10) === 1) ? 'th' :
  6146. (b === 1) ? 'st' :
  6147. (b === 2) ? 'nd' :
  6148. (b === 3) ? 'rd' : 'th';
  6149. return number + output;
  6150. },
  6151. week : {
  6152. dow : 1, // Monday is the first day of the week.
  6153. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6154. }
  6155. });
  6156. //! moment.js locale configuration
  6157. //! locale : English (New Zealand) [en-nz]
  6158. //! author : Luke McGregor : https://github.com/lukemcgregor
  6159. hooks.defineLocale('en-nz', {
  6160. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  6161. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  6162. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  6163. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  6164. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  6165. longDateFormat : {
  6166. LT : 'h:mm A',
  6167. LTS : 'h:mm:ss A',
  6168. L : 'DD/MM/YYYY',
  6169. LL : 'D MMMM YYYY',
  6170. LLL : 'D MMMM YYYY h:mm A',
  6171. LLLL : 'dddd, D MMMM YYYY h:mm A'
  6172. },
  6173. calendar : {
  6174. sameDay : '[Today at] LT',
  6175. nextDay : '[Tomorrow at] LT',
  6176. nextWeek : 'dddd [at] LT',
  6177. lastDay : '[Yesterday at] LT',
  6178. lastWeek : '[Last] dddd [at] LT',
  6179. sameElse : 'L'
  6180. },
  6181. relativeTime : {
  6182. future : 'in %s',
  6183. past : '%s ago',
  6184. s : 'a few seconds',
  6185. ss : '%d seconds',
  6186. m : 'a minute',
  6187. mm : '%d minutes',
  6188. h : 'an hour',
  6189. hh : '%d hours',
  6190. d : 'a day',
  6191. dd : '%d days',
  6192. M : 'a month',
  6193. MM : '%d months',
  6194. y : 'a year',
  6195. yy : '%d years'
  6196. },
  6197. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  6198. ordinal : function (number) {
  6199. var b = number % 10,
  6200. output = (~~(number % 100 / 10) === 1) ? 'th' :
  6201. (b === 1) ? 'st' :
  6202. (b === 2) ? 'nd' :
  6203. (b === 3) ? 'rd' : 'th';
  6204. return number + output;
  6205. },
  6206. week : {
  6207. dow : 1, // Monday is the first day of the week.
  6208. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6209. }
  6210. });
  6211. //! moment.js locale configuration
  6212. //! locale : Esperanto [eo]
  6213. //! author : Colin Dean : https://github.com/colindean
  6214. //! author : Mia Nordentoft Imperatori : https://github.com/miestasmia
  6215. //! comment : miestasmia corrected the translation by colindean
  6216. hooks.defineLocale('eo', {
  6217. months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
  6218. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
  6219. weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
  6220. weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
  6221. weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
  6222. longDateFormat : {
  6223. LT : 'HH:mm',
  6224. LTS : 'HH:mm:ss',
  6225. L : 'YYYY-MM-DD',
  6226. LL : 'D[-a de] MMMM, YYYY',
  6227. LLL : 'D[-a de] MMMM, YYYY HH:mm',
  6228. LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'
  6229. },
  6230. meridiemParse: /[ap]\.t\.m/i,
  6231. isPM: function (input) {
  6232. return input.charAt(0).toLowerCase() === 'p';
  6233. },
  6234. meridiem : function (hours, minutes, isLower) {
  6235. if (hours > 11) {
  6236. return isLower ? 'p.t.m.' : 'P.T.M.';
  6237. } else {
  6238. return isLower ? 'a.t.m.' : 'A.T.M.';
  6239. }
  6240. },
  6241. calendar : {
  6242. sameDay : '[Hodiaŭ je] LT',
  6243. nextDay : '[Morgaŭ je] LT',
  6244. nextWeek : 'dddd [je] LT',
  6245. lastDay : '[Hieraŭ je] LT',
  6246. lastWeek : '[pasinta] dddd [je] LT',
  6247. sameElse : 'L'
  6248. },
  6249. relativeTime : {
  6250. future : 'post %s',
  6251. past : 'antaŭ %s',
  6252. s : 'sekundoj',
  6253. ss : '%d sekundoj',
  6254. m : 'minuto',
  6255. mm : '%d minutoj',
  6256. h : 'horo',
  6257. hh : '%d horoj',
  6258. d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
  6259. dd : '%d tagoj',
  6260. M : 'monato',
  6261. MM : '%d monatoj',
  6262. y : 'jaro',
  6263. yy : '%d jaroj'
  6264. },
  6265. dayOfMonthOrdinalParse: /\d{1,2}a/,
  6266. ordinal : '%da',
  6267. week : {
  6268. dow : 1, // Monday is the first day of the week.
  6269. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6270. }
  6271. });
  6272. //! moment.js locale configuration
  6273. //! locale : Spanish (Dominican Republic) [es-do]
  6274. var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');
  6275. var monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
  6276. var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
  6277. var monthsRegex$1 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
  6278. hooks.defineLocale('es-do', {
  6279. months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
  6280. monthsShort : function (m, format) {
  6281. if (!m) {
  6282. return monthsShortDot;
  6283. } else if (/-MMM-/.test(format)) {
  6284. return monthsShort$1[m.month()];
  6285. } else {
  6286. return monthsShortDot[m.month()];
  6287. }
  6288. },
  6289. monthsRegex: monthsRegex$1,
  6290. monthsShortRegex: monthsRegex$1,
  6291. monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
  6292. monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
  6293. monthsParse: monthsParse,
  6294. longMonthsParse: monthsParse,
  6295. shortMonthsParse: monthsParse,
  6296. weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
  6297. weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
  6298. weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
  6299. weekdaysParseExact : true,
  6300. longDateFormat : {
  6301. LT : 'h:mm A',
  6302. LTS : 'h:mm:ss A',
  6303. L : 'DD/MM/YYYY',
  6304. LL : 'D [de] MMMM [de] YYYY',
  6305. LLL : 'D [de] MMMM [de] YYYY h:mm A',
  6306. LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'
  6307. },
  6308. calendar : {
  6309. sameDay : function () {
  6310. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6311. },
  6312. nextDay : function () {
  6313. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6314. },
  6315. nextWeek : function () {
  6316. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6317. },
  6318. lastDay : function () {
  6319. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6320. },
  6321. lastWeek : function () {
  6322. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6323. },
  6324. sameElse : 'L'
  6325. },
  6326. relativeTime : {
  6327. future : 'en %s',
  6328. past : 'hace %s',
  6329. s : 'unos segundos',
  6330. ss : '%d segundos',
  6331. m : 'un minuto',
  6332. mm : '%d minutos',
  6333. h : 'una hora',
  6334. hh : '%d horas',
  6335. d : 'un día',
  6336. dd : '%d días',
  6337. M : 'un mes',
  6338. MM : '%d meses',
  6339. y : 'un año',
  6340. yy : '%d años'
  6341. },
  6342. dayOfMonthOrdinalParse : /\d{1,2}º/,
  6343. ordinal : '%dº',
  6344. week : {
  6345. dow : 1, // Monday is the first day of the week.
  6346. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6347. }
  6348. });
  6349. //! moment.js locale configuration
  6350. //! locale : Spanish (United States) [es-us]
  6351. //! author : bustta : https://github.com/bustta
  6352. var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');
  6353. var monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
  6354. hooks.defineLocale('es-us', {
  6355. months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
  6356. monthsShort : function (m, format) {
  6357. if (!m) {
  6358. return monthsShortDot$1;
  6359. } else if (/-MMM-/.test(format)) {
  6360. return monthsShort$2[m.month()];
  6361. } else {
  6362. return monthsShortDot$1[m.month()];
  6363. }
  6364. },
  6365. monthsParseExact : true,
  6366. weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
  6367. weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
  6368. weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
  6369. weekdaysParseExact : true,
  6370. longDateFormat : {
  6371. LT : 'h:mm A',
  6372. LTS : 'h:mm:ss A',
  6373. L : 'MM/DD/YYYY',
  6374. LL : 'MMMM [de] D [de] YYYY',
  6375. LLL : 'MMMM [de] D [de] YYYY h:mm A',
  6376. LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'
  6377. },
  6378. calendar : {
  6379. sameDay : function () {
  6380. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6381. },
  6382. nextDay : function () {
  6383. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6384. },
  6385. nextWeek : function () {
  6386. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6387. },
  6388. lastDay : function () {
  6389. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6390. },
  6391. lastWeek : function () {
  6392. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6393. },
  6394. sameElse : 'L'
  6395. },
  6396. relativeTime : {
  6397. future : 'en %s',
  6398. past : 'hace %s',
  6399. s : 'unos segundos',
  6400. ss : '%d segundos',
  6401. m : 'un minuto',
  6402. mm : '%d minutos',
  6403. h : 'una hora',
  6404. hh : '%d horas',
  6405. d : 'un día',
  6406. dd : '%d días',
  6407. M : 'un mes',
  6408. MM : '%d meses',
  6409. y : 'un año',
  6410. yy : '%d años'
  6411. },
  6412. dayOfMonthOrdinalParse : /\d{1,2}º/,
  6413. ordinal : '%dº',
  6414. week : {
  6415. dow : 0, // Sunday is the first day of the week.
  6416. doy : 6 // The week that contains Jan 1st is the first week of the year.
  6417. }
  6418. });
  6419. //! moment.js locale configuration
  6420. //! locale : Spanish [es]
  6421. //! author : Julio Napurí : https://github.com/julionc
  6422. var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');
  6423. var monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
  6424. var monthsParse$1 = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];
  6425. var monthsRegex$2 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;
  6426. hooks.defineLocale('es', {
  6427. months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
  6428. monthsShort : function (m, format) {
  6429. if (!m) {
  6430. return monthsShortDot$2;
  6431. } else if (/-MMM-/.test(format)) {
  6432. return monthsShort$3[m.month()];
  6433. } else {
  6434. return monthsShortDot$2[m.month()];
  6435. }
  6436. },
  6437. monthsRegex : monthsRegex$2,
  6438. monthsShortRegex : monthsRegex$2,
  6439. monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
  6440. monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
  6441. monthsParse : monthsParse$1,
  6442. longMonthsParse : monthsParse$1,
  6443. shortMonthsParse : monthsParse$1,
  6444. weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
  6445. weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
  6446. weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),
  6447. weekdaysParseExact : true,
  6448. longDateFormat : {
  6449. LT : 'H:mm',
  6450. LTS : 'H:mm:ss',
  6451. L : 'DD/MM/YYYY',
  6452. LL : 'D [de] MMMM [de] YYYY',
  6453. LLL : 'D [de] MMMM [de] YYYY H:mm',
  6454. LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
  6455. },
  6456. calendar : {
  6457. sameDay : function () {
  6458. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6459. },
  6460. nextDay : function () {
  6461. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6462. },
  6463. nextWeek : function () {
  6464. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6465. },
  6466. lastDay : function () {
  6467. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6468. },
  6469. lastWeek : function () {
  6470. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  6471. },
  6472. sameElse : 'L'
  6473. },
  6474. relativeTime : {
  6475. future : 'en %s',
  6476. past : 'hace %s',
  6477. s : 'unos segundos',
  6478. ss : '%d segundos',
  6479. m : 'un minuto',
  6480. mm : '%d minutos',
  6481. h : 'una hora',
  6482. hh : '%d horas',
  6483. d : 'un día',
  6484. dd : '%d días',
  6485. M : 'un mes',
  6486. MM : '%d meses',
  6487. y : 'un año',
  6488. yy : '%d años'
  6489. },
  6490. dayOfMonthOrdinalParse : /\d{1,2}º/,
  6491. ordinal : '%dº',
  6492. week : {
  6493. dow : 1, // Monday is the first day of the week.
  6494. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6495. }
  6496. });
  6497. //! moment.js locale configuration
  6498. //! locale : Estonian [et]
  6499. //! author : Henry Kehlmann : https://github.com/madhenry
  6500. //! improvements : Illimar Tambek : https://github.com/ragulka
  6501. function processRelativeTime$3(number, withoutSuffix, key, isFuture) {
  6502. var format = {
  6503. 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
  6504. 'ss': [number + 'sekundi', number + 'sekundit'],
  6505. 'm' : ['ühe minuti', 'üks minut'],
  6506. 'mm': [number + ' minuti', number + ' minutit'],
  6507. 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
  6508. 'hh': [number + ' tunni', number + ' tundi'],
  6509. 'd' : ['ühe päeva', 'üks päev'],
  6510. 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
  6511. 'MM': [number + ' kuu', number + ' kuud'],
  6512. 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
  6513. 'yy': [number + ' aasta', number + ' aastat']
  6514. };
  6515. if (withoutSuffix) {
  6516. return format[key][2] ? format[key][2] : format[key][1];
  6517. }
  6518. return isFuture ? format[key][0] : format[key][1];
  6519. }
  6520. hooks.defineLocale('et', {
  6521. months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
  6522. monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
  6523. weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
  6524. weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
  6525. weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
  6526. longDateFormat : {
  6527. LT : 'H:mm',
  6528. LTS : 'H:mm:ss',
  6529. L : 'DD.MM.YYYY',
  6530. LL : 'D. MMMM YYYY',
  6531. LLL : 'D. MMMM YYYY H:mm',
  6532. LLLL : 'dddd, D. MMMM YYYY H:mm'
  6533. },
  6534. calendar : {
  6535. sameDay : '[Täna,] LT',
  6536. nextDay : '[Homme,] LT',
  6537. nextWeek : '[Järgmine] dddd LT',
  6538. lastDay : '[Eile,] LT',
  6539. lastWeek : '[Eelmine] dddd LT',
  6540. sameElse : 'L'
  6541. },
  6542. relativeTime : {
  6543. future : '%s pärast',
  6544. past : '%s tagasi',
  6545. s : processRelativeTime$3,
  6546. ss : processRelativeTime$3,
  6547. m : processRelativeTime$3,
  6548. mm : processRelativeTime$3,
  6549. h : processRelativeTime$3,
  6550. hh : processRelativeTime$3,
  6551. d : processRelativeTime$3,
  6552. dd : '%d päeva',
  6553. M : processRelativeTime$3,
  6554. MM : processRelativeTime$3,
  6555. y : processRelativeTime$3,
  6556. yy : processRelativeTime$3
  6557. },
  6558. dayOfMonthOrdinalParse: /\d{1,2}\./,
  6559. ordinal : '%d.',
  6560. week : {
  6561. dow : 1, // Monday is the first day of the week.
  6562. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6563. }
  6564. });
  6565. //! moment.js locale configuration
  6566. //! locale : Basque [eu]
  6567. //! author : Eneko Illarramendi : https://github.com/eillarra
  6568. hooks.defineLocale('eu', {
  6569. months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
  6570. monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
  6571. monthsParseExact : true,
  6572. weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
  6573. weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
  6574. weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
  6575. weekdaysParseExact : true,
  6576. longDateFormat : {
  6577. LT : 'HH:mm',
  6578. LTS : 'HH:mm:ss',
  6579. L : 'YYYY-MM-DD',
  6580. LL : 'YYYY[ko] MMMM[ren] D[a]',
  6581. LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',
  6582. LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
  6583. l : 'YYYY-M-D',
  6584. ll : 'YYYY[ko] MMM D[a]',
  6585. lll : 'YYYY[ko] MMM D[a] HH:mm',
  6586. llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'
  6587. },
  6588. calendar : {
  6589. sameDay : '[gaur] LT[etan]',
  6590. nextDay : '[bihar] LT[etan]',
  6591. nextWeek : 'dddd LT[etan]',
  6592. lastDay : '[atzo] LT[etan]',
  6593. lastWeek : '[aurreko] dddd LT[etan]',
  6594. sameElse : 'L'
  6595. },
  6596. relativeTime : {
  6597. future : '%s barru',
  6598. past : 'duela %s',
  6599. s : 'segundo batzuk',
  6600. ss : '%d segundo',
  6601. m : 'minutu bat',
  6602. mm : '%d minutu',
  6603. h : 'ordu bat',
  6604. hh : '%d ordu',
  6605. d : 'egun bat',
  6606. dd : '%d egun',
  6607. M : 'hilabete bat',
  6608. MM : '%d hilabete',
  6609. y : 'urte bat',
  6610. yy : '%d urte'
  6611. },
  6612. dayOfMonthOrdinalParse: /\d{1,2}\./,
  6613. ordinal : '%d.',
  6614. week : {
  6615. dow : 1, // Monday is the first day of the week.
  6616. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6617. }
  6618. });
  6619. //! moment.js locale configuration
  6620. //! locale : Persian [fa]
  6621. //! author : Ebrahim Byagowi : https://github.com/ebraminio
  6622. var symbolMap$5 = {
  6623. '1': '۱',
  6624. '2': '۲',
  6625. '3': '۳',
  6626. '4': '۴',
  6627. '5': '۵',
  6628. '6': '۶',
  6629. '7': '۷',
  6630. '8': '۸',
  6631. '9': '۹',
  6632. '0': '۰'
  6633. };
  6634. var numberMap$4 = {
  6635. '۱': '1',
  6636. '۲': '2',
  6637. '۳': '3',
  6638. '۴': '4',
  6639. '۵': '5',
  6640. '۶': '6',
  6641. '۷': '7',
  6642. '۸': '8',
  6643. '۹': '9',
  6644. '۰': '0'
  6645. };
  6646. hooks.defineLocale('fa', {
  6647. months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  6648. monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  6649. weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  6650. weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  6651. weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
  6652. weekdaysParseExact : true,
  6653. longDateFormat : {
  6654. LT : 'HH:mm',
  6655. LTS : 'HH:mm:ss',
  6656. L : 'DD/MM/YYYY',
  6657. LL : 'D MMMM YYYY',
  6658. LLL : 'D MMMM YYYY HH:mm',
  6659. LLLL : 'dddd, D MMMM YYYY HH:mm'
  6660. },
  6661. meridiemParse: /قبل از ظهر|بعد از ظهر/,
  6662. isPM: function (input) {
  6663. return /بعد از ظهر/.test(input);
  6664. },
  6665. meridiem : function (hour, minute, isLower) {
  6666. if (hour < 12) {
  6667. return 'قبل از ظهر';
  6668. } else {
  6669. return 'بعد از ظهر';
  6670. }
  6671. },
  6672. calendar : {
  6673. sameDay : '[امروز ساعت] LT',
  6674. nextDay : '[فردا ساعت] LT',
  6675. nextWeek : 'dddd [ساعت] LT',
  6676. lastDay : '[دیروز ساعت] LT',
  6677. lastWeek : 'dddd [پیش] [ساعت] LT',
  6678. sameElse : 'L'
  6679. },
  6680. relativeTime : {
  6681. future : 'در %s',
  6682. past : '%s پیش',
  6683. s : 'چند ثانیه',
  6684. ss : 'ثانیه d%',
  6685. m : 'یک دقیقه',
  6686. mm : '%d دقیقه',
  6687. h : 'یک ساعت',
  6688. hh : '%d ساعت',
  6689. d : 'یک روز',
  6690. dd : '%d روز',
  6691. M : 'یک ماه',
  6692. MM : '%d ماه',
  6693. y : 'یک سال',
  6694. yy : '%d سال'
  6695. },
  6696. preparse: function (string) {
  6697. return string.replace(/[۰-۹]/g, function (match) {
  6698. return numberMap$4[match];
  6699. }).replace(/،/g, ',');
  6700. },
  6701. postformat: function (string) {
  6702. return string.replace(/\d/g, function (match) {
  6703. return symbolMap$5[match];
  6704. }).replace(/,/g, '،');
  6705. },
  6706. dayOfMonthOrdinalParse: /\d{1,2}م/,
  6707. ordinal : '%dم',
  6708. week : {
  6709. dow : 6, // Saturday is the first day of the week.
  6710. doy : 12 // The week that contains Jan 1st is the first week of the year.
  6711. }
  6712. });
  6713. //! moment.js locale configuration
  6714. //! locale : Finnish [fi]
  6715. //! author : Tarmo Aidantausta : https://github.com/bleadof
  6716. var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' ');
  6717. var numbersFuture = [
  6718. 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
  6719. numbersPast[7], numbersPast[8], numbersPast[9]
  6720. ];
  6721. function translate$2(number, withoutSuffix, key, isFuture) {
  6722. var result = '';
  6723. switch (key) {
  6724. case 's':
  6725. return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
  6726. case 'ss':
  6727. return isFuture ? 'sekunnin' : 'sekuntia';
  6728. case 'm':
  6729. return isFuture ? 'minuutin' : 'minuutti';
  6730. case 'mm':
  6731. result = isFuture ? 'minuutin' : 'minuuttia';
  6732. break;
  6733. case 'h':
  6734. return isFuture ? 'tunnin' : 'tunti';
  6735. case 'hh':
  6736. result = isFuture ? 'tunnin' : 'tuntia';
  6737. break;
  6738. case 'd':
  6739. return isFuture ? 'päivän' : 'päivä';
  6740. case 'dd':
  6741. result = isFuture ? 'päivän' : 'päivää';
  6742. break;
  6743. case 'M':
  6744. return isFuture ? 'kuukauden' : 'kuukausi';
  6745. case 'MM':
  6746. result = isFuture ? 'kuukauden' : 'kuukautta';
  6747. break;
  6748. case 'y':
  6749. return isFuture ? 'vuoden' : 'vuosi';
  6750. case 'yy':
  6751. result = isFuture ? 'vuoden' : 'vuotta';
  6752. break;
  6753. }
  6754. result = verbalNumber(number, isFuture) + ' ' + result;
  6755. return result;
  6756. }
  6757. function verbalNumber(number, isFuture) {
  6758. return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
  6759. }
  6760. hooks.defineLocale('fi', {
  6761. months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
  6762. monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
  6763. weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
  6764. weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
  6765. weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
  6766. longDateFormat : {
  6767. LT : 'HH.mm',
  6768. LTS : 'HH.mm.ss',
  6769. L : 'DD.MM.YYYY',
  6770. LL : 'Do MMMM[ta] YYYY',
  6771. LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',
  6772. LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
  6773. l : 'D.M.YYYY',
  6774. ll : 'Do MMM YYYY',
  6775. lll : 'Do MMM YYYY, [klo] HH.mm',
  6776. llll : 'ddd, Do MMM YYYY, [klo] HH.mm'
  6777. },
  6778. calendar : {
  6779. sameDay : '[tänään] [klo] LT',
  6780. nextDay : '[huomenna] [klo] LT',
  6781. nextWeek : 'dddd [klo] LT',
  6782. lastDay : '[eilen] [klo] LT',
  6783. lastWeek : '[viime] dddd[na] [klo] LT',
  6784. sameElse : 'L'
  6785. },
  6786. relativeTime : {
  6787. future : '%s päästä',
  6788. past : '%s sitten',
  6789. s : translate$2,
  6790. ss : translate$2,
  6791. m : translate$2,
  6792. mm : translate$2,
  6793. h : translate$2,
  6794. hh : translate$2,
  6795. d : translate$2,
  6796. dd : translate$2,
  6797. M : translate$2,
  6798. MM : translate$2,
  6799. y : translate$2,
  6800. yy : translate$2
  6801. },
  6802. dayOfMonthOrdinalParse: /\d{1,2}\./,
  6803. ordinal : '%d.',
  6804. week : {
  6805. dow : 1, // Monday is the first day of the week.
  6806. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6807. }
  6808. });
  6809. //! moment.js locale configuration
  6810. //! locale : Faroese [fo]
  6811. //! author : Ragnar Johannesen : https://github.com/ragnar123
  6812. hooks.defineLocale('fo', {
  6813. months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  6814. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  6815. weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
  6816. weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
  6817. weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
  6818. longDateFormat : {
  6819. LT : 'HH:mm',
  6820. LTS : 'HH:mm:ss',
  6821. L : 'DD/MM/YYYY',
  6822. LL : 'D MMMM YYYY',
  6823. LLL : 'D MMMM YYYY HH:mm',
  6824. LLLL : 'dddd D. MMMM, YYYY HH:mm'
  6825. },
  6826. calendar : {
  6827. sameDay : '[Í dag kl.] LT',
  6828. nextDay : '[Í morgin kl.] LT',
  6829. nextWeek : 'dddd [kl.] LT',
  6830. lastDay : '[Í gjár kl.] LT',
  6831. lastWeek : '[síðstu] dddd [kl] LT',
  6832. sameElse : 'L'
  6833. },
  6834. relativeTime : {
  6835. future : 'um %s',
  6836. past : '%s síðani',
  6837. s : 'fá sekund',
  6838. ss : '%d sekundir',
  6839. m : 'ein minutt',
  6840. mm : '%d minuttir',
  6841. h : 'ein tími',
  6842. hh : '%d tímar',
  6843. d : 'ein dagur',
  6844. dd : '%d dagar',
  6845. M : 'ein mánaði',
  6846. MM : '%d mánaðir',
  6847. y : 'eitt ár',
  6848. yy : '%d ár'
  6849. },
  6850. dayOfMonthOrdinalParse: /\d{1,2}\./,
  6851. ordinal : '%d.',
  6852. week : {
  6853. dow : 1, // Monday is the first day of the week.
  6854. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6855. }
  6856. });
  6857. //! moment.js locale configuration
  6858. //! locale : French (Canada) [fr-ca]
  6859. //! author : Jonathan Abourbih : https://github.com/jonbca
  6860. hooks.defineLocale('fr-ca', {
  6861. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  6862. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  6863. monthsParseExact : true,
  6864. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  6865. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  6866. weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
  6867. weekdaysParseExact : true,
  6868. longDateFormat : {
  6869. LT : 'HH:mm',
  6870. LTS : 'HH:mm:ss',
  6871. L : 'YYYY-MM-DD',
  6872. LL : 'D MMMM YYYY',
  6873. LLL : 'D MMMM YYYY HH:mm',
  6874. LLLL : 'dddd D MMMM YYYY HH:mm'
  6875. },
  6876. calendar : {
  6877. sameDay : '[Aujourd’hui à] LT',
  6878. nextDay : '[Demain à] LT',
  6879. nextWeek : 'dddd [à] LT',
  6880. lastDay : '[Hier à] LT',
  6881. lastWeek : 'dddd [dernier à] LT',
  6882. sameElse : 'L'
  6883. },
  6884. relativeTime : {
  6885. future : 'dans %s',
  6886. past : 'il y a %s',
  6887. s : 'quelques secondes',
  6888. ss : '%d secondes',
  6889. m : 'une minute',
  6890. mm : '%d minutes',
  6891. h : 'une heure',
  6892. hh : '%d heures',
  6893. d : 'un jour',
  6894. dd : '%d jours',
  6895. M : 'un mois',
  6896. MM : '%d mois',
  6897. y : 'un an',
  6898. yy : '%d ans'
  6899. },
  6900. dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
  6901. ordinal : function (number, period) {
  6902. switch (period) {
  6903. // Words with masculine grammatical gender: mois, trimestre, jour
  6904. default:
  6905. case 'M':
  6906. case 'Q':
  6907. case 'D':
  6908. case 'DDD':
  6909. case 'd':
  6910. return number + (number === 1 ? 'er' : 'e');
  6911. // Words with feminine grammatical gender: semaine
  6912. case 'w':
  6913. case 'W':
  6914. return number + (number === 1 ? 're' : 'e');
  6915. }
  6916. }
  6917. });
  6918. //! moment.js locale configuration
  6919. //! locale : French (Switzerland) [fr-ch]
  6920. //! author : Gaspard Bucher : https://github.com/gaspard
  6921. hooks.defineLocale('fr-ch', {
  6922. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  6923. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  6924. monthsParseExact : true,
  6925. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  6926. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  6927. weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
  6928. weekdaysParseExact : true,
  6929. longDateFormat : {
  6930. LT : 'HH:mm',
  6931. LTS : 'HH:mm:ss',
  6932. L : 'DD.MM.YYYY',
  6933. LL : 'D MMMM YYYY',
  6934. LLL : 'D MMMM YYYY HH:mm',
  6935. LLLL : 'dddd D MMMM YYYY HH:mm'
  6936. },
  6937. calendar : {
  6938. sameDay : '[Aujourd’hui à] LT',
  6939. nextDay : '[Demain à] LT',
  6940. nextWeek : 'dddd [à] LT',
  6941. lastDay : '[Hier à] LT',
  6942. lastWeek : 'dddd [dernier à] LT',
  6943. sameElse : 'L'
  6944. },
  6945. relativeTime : {
  6946. future : 'dans %s',
  6947. past : 'il y a %s',
  6948. s : 'quelques secondes',
  6949. ss : '%d secondes',
  6950. m : 'une minute',
  6951. mm : '%d minutes',
  6952. h : 'une heure',
  6953. hh : '%d heures',
  6954. d : 'un jour',
  6955. dd : '%d jours',
  6956. M : 'un mois',
  6957. MM : '%d mois',
  6958. y : 'un an',
  6959. yy : '%d ans'
  6960. },
  6961. dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
  6962. ordinal : function (number, period) {
  6963. switch (period) {
  6964. // Words with masculine grammatical gender: mois, trimestre, jour
  6965. default:
  6966. case 'M':
  6967. case 'Q':
  6968. case 'D':
  6969. case 'DDD':
  6970. case 'd':
  6971. return number + (number === 1 ? 'er' : 'e');
  6972. // Words with feminine grammatical gender: semaine
  6973. case 'w':
  6974. case 'W':
  6975. return number + (number === 1 ? 're' : 'e');
  6976. }
  6977. },
  6978. week : {
  6979. dow : 1, // Monday is the first day of the week.
  6980. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6981. }
  6982. });
  6983. //! moment.js locale configuration
  6984. //! locale : French [fr]
  6985. //! author : John Fischer : https://github.com/jfroffice
  6986. hooks.defineLocale('fr', {
  6987. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  6988. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  6989. monthsParseExact : true,
  6990. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  6991. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  6992. weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),
  6993. weekdaysParseExact : true,
  6994. longDateFormat : {
  6995. LT : 'HH:mm',
  6996. LTS : 'HH:mm:ss',
  6997. L : 'DD/MM/YYYY',
  6998. LL : 'D MMMM YYYY',
  6999. LLL : 'D MMMM YYYY HH:mm',
  7000. LLLL : 'dddd D MMMM YYYY HH:mm'
  7001. },
  7002. calendar : {
  7003. sameDay : '[Aujourd’hui à] LT',
  7004. nextDay : '[Demain à] LT',
  7005. nextWeek : 'dddd [à] LT',
  7006. lastDay : '[Hier à] LT',
  7007. lastWeek : 'dddd [dernier à] LT',
  7008. sameElse : 'L'
  7009. },
  7010. relativeTime : {
  7011. future : 'dans %s',
  7012. past : 'il y a %s',
  7013. s : 'quelques secondes',
  7014. ss : '%d secondes',
  7015. m : 'une minute',
  7016. mm : '%d minutes',
  7017. h : 'une heure',
  7018. hh : '%d heures',
  7019. d : 'un jour',
  7020. dd : '%d jours',
  7021. M : 'un mois',
  7022. MM : '%d mois',
  7023. y : 'un an',
  7024. yy : '%d ans'
  7025. },
  7026. dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
  7027. ordinal : function (number, period) {
  7028. switch (period) {
  7029. // TODO: Return 'e' when day of month > 1. Move this case inside
  7030. // block for masculine words below.
  7031. // See https://github.com/moment/moment/issues/3375
  7032. case 'D':
  7033. return number + (number === 1 ? 'er' : '');
  7034. // Words with masculine grammatical gender: mois, trimestre, jour
  7035. default:
  7036. case 'M':
  7037. case 'Q':
  7038. case 'DDD':
  7039. case 'd':
  7040. return number + (number === 1 ? 'er' : 'e');
  7041. // Words with feminine grammatical gender: semaine
  7042. case 'w':
  7043. case 'W':
  7044. return number + (number === 1 ? 're' : 'e');
  7045. }
  7046. },
  7047. week : {
  7048. dow : 1, // Monday is the first day of the week.
  7049. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7050. }
  7051. });
  7052. //! moment.js locale configuration
  7053. //! locale : Frisian [fy]
  7054. //! author : Robin van der Vliet : https://github.com/robin0van0der0v
  7055. var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_');
  7056. var monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
  7057. hooks.defineLocale('fy', {
  7058. months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
  7059. monthsShort : function (m, format) {
  7060. if (!m) {
  7061. return monthsShortWithDots;
  7062. } else if (/-MMM-/.test(format)) {
  7063. return monthsShortWithoutDots[m.month()];
  7064. } else {
  7065. return monthsShortWithDots[m.month()];
  7066. }
  7067. },
  7068. monthsParseExact : true,
  7069. weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
  7070. weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
  7071. weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
  7072. weekdaysParseExact : true,
  7073. longDateFormat : {
  7074. LT : 'HH:mm',
  7075. LTS : 'HH:mm:ss',
  7076. L : 'DD-MM-YYYY',
  7077. LL : 'D MMMM YYYY',
  7078. LLL : 'D MMMM YYYY HH:mm',
  7079. LLLL : 'dddd D MMMM YYYY HH:mm'
  7080. },
  7081. calendar : {
  7082. sameDay: '[hjoed om] LT',
  7083. nextDay: '[moarn om] LT',
  7084. nextWeek: 'dddd [om] LT',
  7085. lastDay: '[juster om] LT',
  7086. lastWeek: '[ôfrûne] dddd [om] LT',
  7087. sameElse: 'L'
  7088. },
  7089. relativeTime : {
  7090. future : 'oer %s',
  7091. past : '%s lyn',
  7092. s : 'in pear sekonden',
  7093. ss : '%d sekonden',
  7094. m : 'ien minút',
  7095. mm : '%d minuten',
  7096. h : 'ien oere',
  7097. hh : '%d oeren',
  7098. d : 'ien dei',
  7099. dd : '%d dagen',
  7100. M : 'ien moanne',
  7101. MM : '%d moannen',
  7102. y : 'ien jier',
  7103. yy : '%d jierren'
  7104. },
  7105. dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
  7106. ordinal : function (number) {
  7107. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  7108. },
  7109. week : {
  7110. dow : 1, // Monday is the first day of the week.
  7111. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7112. }
  7113. });
  7114. //! moment.js locale configuration
  7115. //! locale : Scottish Gaelic [gd]
  7116. //! author : Jon Ashdown : https://github.com/jonashdown
  7117. var months$5 = [
  7118. 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'
  7119. ];
  7120. var monthsShort$4 = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];
  7121. var weekdays$1 = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];
  7122. var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];
  7123. var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
  7124. hooks.defineLocale('gd', {
  7125. months : months$5,
  7126. monthsShort : monthsShort$4,
  7127. monthsParseExact : true,
  7128. weekdays : weekdays$1,
  7129. weekdaysShort : weekdaysShort,
  7130. weekdaysMin : weekdaysMin,
  7131. longDateFormat : {
  7132. LT : 'HH:mm',
  7133. LTS : 'HH:mm:ss',
  7134. L : 'DD/MM/YYYY',
  7135. LL : 'D MMMM YYYY',
  7136. LLL : 'D MMMM YYYY HH:mm',
  7137. LLLL : 'dddd, D MMMM YYYY HH:mm'
  7138. },
  7139. calendar : {
  7140. sameDay : '[An-diugh aig] LT',
  7141. nextDay : '[A-màireach aig] LT',
  7142. nextWeek : 'dddd [aig] LT',
  7143. lastDay : '[An-dè aig] LT',
  7144. lastWeek : 'dddd [seo chaidh] [aig] LT',
  7145. sameElse : 'L'
  7146. },
  7147. relativeTime : {
  7148. future : 'ann an %s',
  7149. past : 'bho chionn %s',
  7150. s : 'beagan diogan',
  7151. ss : '%d diogan',
  7152. m : 'mionaid',
  7153. mm : '%d mionaidean',
  7154. h : 'uair',
  7155. hh : '%d uairean',
  7156. d : 'latha',
  7157. dd : '%d latha',
  7158. M : 'mìos',
  7159. MM : '%d mìosan',
  7160. y : 'bliadhna',
  7161. yy : '%d bliadhna'
  7162. },
  7163. dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/,
  7164. ordinal : function (number) {
  7165. var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
  7166. return number + output;
  7167. },
  7168. week : {
  7169. dow : 1, // Monday is the first day of the week.
  7170. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7171. }
  7172. });
  7173. //! moment.js locale configuration
  7174. //! locale : Galician [gl]
  7175. //! author : Juan G. Hurtado : https://github.com/juanghurtado
  7176. hooks.defineLocale('gl', {
  7177. months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),
  7178. monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),
  7179. monthsParseExact: true,
  7180. weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
  7181. weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
  7182. weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),
  7183. weekdaysParseExact : true,
  7184. longDateFormat : {
  7185. LT : 'H:mm',
  7186. LTS : 'H:mm:ss',
  7187. L : 'DD/MM/YYYY',
  7188. LL : 'D [de] MMMM [de] YYYY',
  7189. LLL : 'D [de] MMMM [de] YYYY H:mm',
  7190. LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'
  7191. },
  7192. calendar : {
  7193. sameDay : function () {
  7194. return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  7195. },
  7196. nextDay : function () {
  7197. return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  7198. },
  7199. nextWeek : function () {
  7200. return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  7201. },
  7202. lastDay : function () {
  7203. return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
  7204. },
  7205. lastWeek : function () {
  7206. return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  7207. },
  7208. sameElse : 'L'
  7209. },
  7210. relativeTime : {
  7211. future : function (str) {
  7212. if (str.indexOf('un') === 0) {
  7213. return 'n' + str;
  7214. }
  7215. return 'en ' + str;
  7216. },
  7217. past : 'hai %s',
  7218. s : 'uns segundos',
  7219. ss : '%d segundos',
  7220. m : 'un minuto',
  7221. mm : '%d minutos',
  7222. h : 'unha hora',
  7223. hh : '%d horas',
  7224. d : 'un día',
  7225. dd : '%d días',
  7226. M : 'un mes',
  7227. MM : '%d meses',
  7228. y : 'un ano',
  7229. yy : '%d anos'
  7230. },
  7231. dayOfMonthOrdinalParse : /\d{1,2}º/,
  7232. ordinal : '%dº',
  7233. week : {
  7234. dow : 1, // Monday is the first day of the week.
  7235. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7236. }
  7237. });
  7238. //! moment.js locale configuration
  7239. //! locale : Konkani Latin script [gom-latn]
  7240. //! author : The Discoverer : https://github.com/WikiDiscoverer
  7241. function processRelativeTime$4(number, withoutSuffix, key, isFuture) {
  7242. var format = {
  7243. 's': ['thodde secondanim', 'thodde second'],
  7244. 'ss': [number + ' secondanim', number + ' second'],
  7245. 'm': ['eka mintan', 'ek minute'],
  7246. 'mm': [number + ' mintanim', number + ' mintam'],
  7247. 'h': ['eka horan', 'ek hor'],
  7248. 'hh': [number + ' horanim', number + ' hor'],
  7249. 'd': ['eka disan', 'ek dis'],
  7250. 'dd': [number + ' disanim', number + ' dis'],
  7251. 'M': ['eka mhoinean', 'ek mhoino'],
  7252. 'MM': [number + ' mhoineanim', number + ' mhoine'],
  7253. 'y': ['eka vorsan', 'ek voros'],
  7254. 'yy': [number + ' vorsanim', number + ' vorsam']
  7255. };
  7256. return withoutSuffix ? format[key][0] : format[key][1];
  7257. }
  7258. hooks.defineLocale('gom-latn', {
  7259. months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),
  7260. monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
  7261. monthsParseExact : true,
  7262. weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'),
  7263. weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
  7264. weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
  7265. weekdaysParseExact : true,
  7266. longDateFormat : {
  7267. LT : 'A h:mm [vazta]',
  7268. LTS : 'A h:mm:ss [vazta]',
  7269. L : 'DD-MM-YYYY',
  7270. LL : 'D MMMM YYYY',
  7271. LLL : 'D MMMM YYYY A h:mm [vazta]',
  7272. LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
  7273. llll: 'ddd, D MMM YYYY, A h:mm [vazta]'
  7274. },
  7275. calendar : {
  7276. sameDay: '[Aiz] LT',
  7277. nextDay: '[Faleam] LT',
  7278. nextWeek: '[Ieta to] dddd[,] LT',
  7279. lastDay: '[Kal] LT',
  7280. lastWeek: '[Fatlo] dddd[,] LT',
  7281. sameElse: 'L'
  7282. },
  7283. relativeTime : {
  7284. future : '%s',
  7285. past : '%s adim',
  7286. s : processRelativeTime$4,
  7287. ss : processRelativeTime$4,
  7288. m : processRelativeTime$4,
  7289. mm : processRelativeTime$4,
  7290. h : processRelativeTime$4,
  7291. hh : processRelativeTime$4,
  7292. d : processRelativeTime$4,
  7293. dd : processRelativeTime$4,
  7294. M : processRelativeTime$4,
  7295. MM : processRelativeTime$4,
  7296. y : processRelativeTime$4,
  7297. yy : processRelativeTime$4
  7298. },
  7299. dayOfMonthOrdinalParse : /\d{1,2}(er)/,
  7300. ordinal : function (number, period) {
  7301. switch (period) {
  7302. // the ordinal 'er' only applies to day of the month
  7303. case 'D':
  7304. return number + 'er';
  7305. default:
  7306. case 'M':
  7307. case 'Q':
  7308. case 'DDD':
  7309. case 'd':
  7310. case 'w':
  7311. case 'W':
  7312. return number;
  7313. }
  7314. },
  7315. week : {
  7316. dow : 1, // Monday is the first day of the week.
  7317. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7318. },
  7319. meridiemParse: /rati|sokalli|donparam|sanje/,
  7320. meridiemHour : function (hour, meridiem) {
  7321. if (hour === 12) {
  7322. hour = 0;
  7323. }
  7324. if (meridiem === 'rati') {
  7325. return hour < 4 ? hour : hour + 12;
  7326. } else if (meridiem === 'sokalli') {
  7327. return hour;
  7328. } else if (meridiem === 'donparam') {
  7329. return hour > 12 ? hour : hour + 12;
  7330. } else if (meridiem === 'sanje') {
  7331. return hour + 12;
  7332. }
  7333. },
  7334. meridiem : function (hour, minute, isLower) {
  7335. if (hour < 4) {
  7336. return 'rati';
  7337. } else if (hour < 12) {
  7338. return 'sokalli';
  7339. } else if (hour < 16) {
  7340. return 'donparam';
  7341. } else if (hour < 20) {
  7342. return 'sanje';
  7343. } else {
  7344. return 'rati';
  7345. }
  7346. }
  7347. });
  7348. //! moment.js locale configuration
  7349. //! locale : Gujarati [gu]
  7350. //! author : Kaushik Thanki : https://github.com/Kaushik1987
  7351. var symbolMap$6 = {
  7352. '1': '૧',
  7353. '2': '૨',
  7354. '3': '૩',
  7355. '4': '૪',
  7356. '5': '૫',
  7357. '6': '૬',
  7358. '7': '૭',
  7359. '8': '૮',
  7360. '9': '૯',
  7361. '0': '૦'
  7362. };
  7363. var numberMap$5 = {
  7364. '૧': '1',
  7365. '૨': '2',
  7366. '૩': '3',
  7367. '૪': '4',
  7368. '૫': '5',
  7369. '૬': '6',
  7370. '૭': '7',
  7371. '૮': '8',
  7372. '૯': '9',
  7373. '૦': '0'
  7374. };
  7375. hooks.defineLocale('gu', {
  7376. months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),
  7377. monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),
  7378. monthsParseExact: true,
  7379. weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),
  7380. weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
  7381. weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
  7382. longDateFormat: {
  7383. LT: 'A h:mm વાગ્યે',
  7384. LTS: 'A h:mm:ss વાગ્યે',
  7385. L: 'DD/MM/YYYY',
  7386. LL: 'D MMMM YYYY',
  7387. LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
  7388. LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'
  7389. },
  7390. calendar: {
  7391. sameDay: '[આજ] LT',
  7392. nextDay: '[કાલે] LT',
  7393. nextWeek: 'dddd, LT',
  7394. lastDay: '[ગઇકાલે] LT',
  7395. lastWeek: '[પાછલા] dddd, LT',
  7396. sameElse: 'L'
  7397. },
  7398. relativeTime: {
  7399. future: '%s મા',
  7400. past: '%s પેહલા',
  7401. s: 'અમુક પળો',
  7402. ss: '%d સેકંડ',
  7403. m: 'એક મિનિટ',
  7404. mm: '%d મિનિટ',
  7405. h: 'એક કલાક',
  7406. hh: '%d કલાક',
  7407. d: 'એક દિવસ',
  7408. dd: '%d દિવસ',
  7409. M: 'એક મહિનો',
  7410. MM: '%d મહિનો',
  7411. y: 'એક વર્ષ',
  7412. yy: '%d વર્ષ'
  7413. },
  7414. preparse: function (string) {
  7415. return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
  7416. return numberMap$5[match];
  7417. });
  7418. },
  7419. postformat: function (string) {
  7420. return string.replace(/\d/g, function (match) {
  7421. return symbolMap$6[match];
  7422. });
  7423. },
  7424. // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
  7425. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
  7426. meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
  7427. meridiemHour: function (hour, meridiem) {
  7428. if (hour === 12) {
  7429. hour = 0;
  7430. }
  7431. if (meridiem === 'રાત') {
  7432. return hour < 4 ? hour : hour + 12;
  7433. } else if (meridiem === 'સવાર') {
  7434. return hour;
  7435. } else if (meridiem === 'બપોર') {
  7436. return hour >= 10 ? hour : hour + 12;
  7437. } else if (meridiem === 'સાંજ') {
  7438. return hour + 12;
  7439. }
  7440. },
  7441. meridiem: function (hour, minute, isLower) {
  7442. if (hour < 4) {
  7443. return 'રાત';
  7444. } else if (hour < 10) {
  7445. return 'સવાર';
  7446. } else if (hour < 17) {
  7447. return 'બપોર';
  7448. } else if (hour < 20) {
  7449. return 'સાંજ';
  7450. } else {
  7451. return 'રાત';
  7452. }
  7453. },
  7454. week: {
  7455. dow: 0, // Sunday is the first day of the week.
  7456. doy: 6 // The week that contains Jan 1st is the first week of the year.
  7457. }
  7458. });
  7459. //! moment.js locale configuration
  7460. //! locale : Hebrew [he]
  7461. //! author : Tomer Cohen : https://github.com/tomer
  7462. //! author : Moshe Simantov : https://github.com/DevelopmentIL
  7463. //! author : Tal Ater : https://github.com/TalAter
  7464. hooks.defineLocale('he', {
  7465. months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
  7466. monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
  7467. weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
  7468. weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
  7469. weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
  7470. longDateFormat : {
  7471. LT : 'HH:mm',
  7472. LTS : 'HH:mm:ss',
  7473. L : 'DD/MM/YYYY',
  7474. LL : 'D [ב]MMMM YYYY',
  7475. LLL : 'D [ב]MMMM YYYY HH:mm',
  7476. LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',
  7477. l : 'D/M/YYYY',
  7478. ll : 'D MMM YYYY',
  7479. lll : 'D MMM YYYY HH:mm',
  7480. llll : 'ddd, D MMM YYYY HH:mm'
  7481. },
  7482. calendar : {
  7483. sameDay : '[היום ב־]LT',
  7484. nextDay : '[מחר ב־]LT',
  7485. nextWeek : 'dddd [בשעה] LT',
  7486. lastDay : '[אתמול ב־]LT',
  7487. lastWeek : '[ביום] dddd [האחרון בשעה] LT',
  7488. sameElse : 'L'
  7489. },
  7490. relativeTime : {
  7491. future : 'בעוד %s',
  7492. past : 'לפני %s',
  7493. s : 'מספר שניות',
  7494. ss : '%d שניות',
  7495. m : 'דקה',
  7496. mm : '%d דקות',
  7497. h : 'שעה',
  7498. hh : function (number) {
  7499. if (number === 2) {
  7500. return 'שעתיים';
  7501. }
  7502. return number + ' שעות';
  7503. },
  7504. d : 'יום',
  7505. dd : function (number) {
  7506. if (number === 2) {
  7507. return 'יומיים';
  7508. }
  7509. return number + ' ימים';
  7510. },
  7511. M : 'חודש',
  7512. MM : function (number) {
  7513. if (number === 2) {
  7514. return 'חודשיים';
  7515. }
  7516. return number + ' חודשים';
  7517. },
  7518. y : 'שנה',
  7519. yy : function (number) {
  7520. if (number === 2) {
  7521. return 'שנתיים';
  7522. } else if (number % 10 === 0 && number !== 10) {
  7523. return number + ' שנה';
  7524. }
  7525. return number + ' שנים';
  7526. }
  7527. },
  7528. meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
  7529. isPM : function (input) {
  7530. return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
  7531. },
  7532. meridiem : function (hour, minute, isLower) {
  7533. if (hour < 5) {
  7534. return 'לפנות בוקר';
  7535. } else if (hour < 10) {
  7536. return 'בבוקר';
  7537. } else if (hour < 12) {
  7538. return isLower ? 'לפנה"צ' : 'לפני הצהריים';
  7539. } else if (hour < 18) {
  7540. return isLower ? 'אחה"צ' : 'אחרי הצהריים';
  7541. } else {
  7542. return 'בערב';
  7543. }
  7544. }
  7545. });
  7546. //! moment.js locale configuration
  7547. //! locale : Hindi [hi]
  7548. //! author : Mayank Singhal : https://github.com/mayanksinghal
  7549. var symbolMap$7 = {
  7550. '1': '१',
  7551. '2': '२',
  7552. '3': '३',
  7553. '4': '४',
  7554. '5': '५',
  7555. '6': '६',
  7556. '7': '७',
  7557. '8': '८',
  7558. '9': '९',
  7559. '0': '०'
  7560. };
  7561. var numberMap$6 = {
  7562. '१': '1',
  7563. '२': '2',
  7564. '३': '3',
  7565. '४': '4',
  7566. '५': '5',
  7567. '६': '6',
  7568. '७': '7',
  7569. '८': '8',
  7570. '९': '9',
  7571. '०': '0'
  7572. };
  7573. hooks.defineLocale('hi', {
  7574. months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
  7575. monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
  7576. monthsParseExact: true,
  7577. weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  7578. weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
  7579. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  7580. longDateFormat : {
  7581. LT : 'A h:mm बजे',
  7582. LTS : 'A h:mm:ss बजे',
  7583. L : 'DD/MM/YYYY',
  7584. LL : 'D MMMM YYYY',
  7585. LLL : 'D MMMM YYYY, A h:mm बजे',
  7586. LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'
  7587. },
  7588. calendar : {
  7589. sameDay : '[आज] LT',
  7590. nextDay : '[कल] LT',
  7591. nextWeek : 'dddd, LT',
  7592. lastDay : '[कल] LT',
  7593. lastWeek : '[पिछले] dddd, LT',
  7594. sameElse : 'L'
  7595. },
  7596. relativeTime : {
  7597. future : '%s में',
  7598. past : '%s पहले',
  7599. s : 'कुछ ही क्षण',
  7600. ss : '%d सेकंड',
  7601. m : 'एक मिनट',
  7602. mm : '%d मिनट',
  7603. h : 'एक घंटा',
  7604. hh : '%d घंटे',
  7605. d : 'एक दिन',
  7606. dd : '%d दिन',
  7607. M : 'एक महीने',
  7608. MM : '%d महीने',
  7609. y : 'एक वर्ष',
  7610. yy : '%d वर्ष'
  7611. },
  7612. preparse: function (string) {
  7613. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  7614. return numberMap$6[match];
  7615. });
  7616. },
  7617. postformat: function (string) {
  7618. return string.replace(/\d/g, function (match) {
  7619. return symbolMap$7[match];
  7620. });
  7621. },
  7622. // Hindi notation for meridiems are quite fuzzy in practice. While there exists
  7623. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
  7624. meridiemParse: /रात|सुबह|दोपहर|शाम/,
  7625. meridiemHour : function (hour, meridiem) {
  7626. if (hour === 12) {
  7627. hour = 0;
  7628. }
  7629. if (meridiem === 'रात') {
  7630. return hour < 4 ? hour : hour + 12;
  7631. } else if (meridiem === 'सुबह') {
  7632. return hour;
  7633. } else if (meridiem === 'दोपहर') {
  7634. return hour >= 10 ? hour : hour + 12;
  7635. } else if (meridiem === 'शाम') {
  7636. return hour + 12;
  7637. }
  7638. },
  7639. meridiem : function (hour, minute, isLower) {
  7640. if (hour < 4) {
  7641. return 'रात';
  7642. } else if (hour < 10) {
  7643. return 'सुबह';
  7644. } else if (hour < 17) {
  7645. return 'दोपहर';
  7646. } else if (hour < 20) {
  7647. return 'शाम';
  7648. } else {
  7649. return 'रात';
  7650. }
  7651. },
  7652. week : {
  7653. dow : 0, // Sunday is the first day of the week.
  7654. doy : 6 // The week that contains Jan 1st is the first week of the year.
  7655. }
  7656. });
  7657. //! moment.js locale configuration
  7658. //! locale : Croatian [hr]
  7659. //! author : Bojan Marković : https://github.com/bmarkovic
  7660. function translate$3(number, withoutSuffix, key) {
  7661. var result = number + ' ';
  7662. switch (key) {
  7663. case 'ss':
  7664. if (number === 1) {
  7665. result += 'sekunda';
  7666. } else if (number === 2 || number === 3 || number === 4) {
  7667. result += 'sekunde';
  7668. } else {
  7669. result += 'sekundi';
  7670. }
  7671. return result;
  7672. case 'm':
  7673. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  7674. case 'mm':
  7675. if (number === 1) {
  7676. result += 'minuta';
  7677. } else if (number === 2 || number === 3 || number === 4) {
  7678. result += 'minute';
  7679. } else {
  7680. result += 'minuta';
  7681. }
  7682. return result;
  7683. case 'h':
  7684. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  7685. case 'hh':
  7686. if (number === 1) {
  7687. result += 'sat';
  7688. } else if (number === 2 || number === 3 || number === 4) {
  7689. result += 'sata';
  7690. } else {
  7691. result += 'sati';
  7692. }
  7693. return result;
  7694. case 'dd':
  7695. if (number === 1) {
  7696. result += 'dan';
  7697. } else {
  7698. result += 'dana';
  7699. }
  7700. return result;
  7701. case 'MM':
  7702. if (number === 1) {
  7703. result += 'mjesec';
  7704. } else if (number === 2 || number === 3 || number === 4) {
  7705. result += 'mjeseca';
  7706. } else {
  7707. result += 'mjeseci';
  7708. }
  7709. return result;
  7710. case 'yy':
  7711. if (number === 1) {
  7712. result += 'godina';
  7713. } else if (number === 2 || number === 3 || number === 4) {
  7714. result += 'godine';
  7715. } else {
  7716. result += 'godina';
  7717. }
  7718. return result;
  7719. }
  7720. }
  7721. hooks.defineLocale('hr', {
  7722. months : {
  7723. format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),
  7724. standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')
  7725. },
  7726. monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
  7727. monthsParseExact: true,
  7728. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  7729. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  7730. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  7731. weekdaysParseExact : true,
  7732. longDateFormat : {
  7733. LT : 'H:mm',
  7734. LTS : 'H:mm:ss',
  7735. L : 'DD.MM.YYYY',
  7736. LL : 'D. MMMM YYYY',
  7737. LLL : 'D. MMMM YYYY H:mm',
  7738. LLLL : 'dddd, D. MMMM YYYY H:mm'
  7739. },
  7740. calendar : {
  7741. sameDay : '[danas u] LT',
  7742. nextDay : '[sutra u] LT',
  7743. nextWeek : function () {
  7744. switch (this.day()) {
  7745. case 0:
  7746. return '[u] [nedjelju] [u] LT';
  7747. case 3:
  7748. return '[u] [srijedu] [u] LT';
  7749. case 6:
  7750. return '[u] [subotu] [u] LT';
  7751. case 1:
  7752. case 2:
  7753. case 4:
  7754. case 5:
  7755. return '[u] dddd [u] LT';
  7756. }
  7757. },
  7758. lastDay : '[jučer u] LT',
  7759. lastWeek : function () {
  7760. switch (this.day()) {
  7761. case 0:
  7762. case 3:
  7763. return '[prošlu] dddd [u] LT';
  7764. case 6:
  7765. return '[prošle] [subote] [u] LT';
  7766. case 1:
  7767. case 2:
  7768. case 4:
  7769. case 5:
  7770. return '[prošli] dddd [u] LT';
  7771. }
  7772. },
  7773. sameElse : 'L'
  7774. },
  7775. relativeTime : {
  7776. future : 'za %s',
  7777. past : 'prije %s',
  7778. s : 'par sekundi',
  7779. ss : translate$3,
  7780. m : translate$3,
  7781. mm : translate$3,
  7782. h : translate$3,
  7783. hh : translate$3,
  7784. d : 'dan',
  7785. dd : translate$3,
  7786. M : 'mjesec',
  7787. MM : translate$3,
  7788. y : 'godinu',
  7789. yy : translate$3
  7790. },
  7791. dayOfMonthOrdinalParse: /\d{1,2}\./,
  7792. ordinal : '%d.',
  7793. week : {
  7794. dow : 1, // Monday is the first day of the week.
  7795. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7796. }
  7797. });
  7798. //! moment.js locale configuration
  7799. //! locale : Hungarian [hu]
  7800. //! author : Adam Brunner : https://github.com/adambrunner
  7801. var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
  7802. function translate$4(number, withoutSuffix, key, isFuture) {
  7803. var num = number;
  7804. switch (key) {
  7805. case 's':
  7806. return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
  7807. case 'ss':
  7808. return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';
  7809. case 'm':
  7810. return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
  7811. case 'mm':
  7812. return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
  7813. case 'h':
  7814. return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
  7815. case 'hh':
  7816. return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
  7817. case 'd':
  7818. return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
  7819. case 'dd':
  7820. return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
  7821. case 'M':
  7822. return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  7823. case 'MM':
  7824. return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  7825. case 'y':
  7826. return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
  7827. case 'yy':
  7828. return num + (isFuture || withoutSuffix ? ' év' : ' éve');
  7829. }
  7830. return '';
  7831. }
  7832. function week(isFuture) {
  7833. return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
  7834. }
  7835. hooks.defineLocale('hu', {
  7836. months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
  7837. monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
  7838. weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
  7839. weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
  7840. weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
  7841. longDateFormat : {
  7842. LT : 'H:mm',
  7843. LTS : 'H:mm:ss',
  7844. L : 'YYYY.MM.DD.',
  7845. LL : 'YYYY. MMMM D.',
  7846. LLL : 'YYYY. MMMM D. H:mm',
  7847. LLLL : 'YYYY. MMMM D., dddd H:mm'
  7848. },
  7849. meridiemParse: /de|du/i,
  7850. isPM: function (input) {
  7851. return input.charAt(1).toLowerCase() === 'u';
  7852. },
  7853. meridiem : function (hours, minutes, isLower) {
  7854. if (hours < 12) {
  7855. return isLower === true ? 'de' : 'DE';
  7856. } else {
  7857. return isLower === true ? 'du' : 'DU';
  7858. }
  7859. },
  7860. calendar : {
  7861. sameDay : '[ma] LT[-kor]',
  7862. nextDay : '[holnap] LT[-kor]',
  7863. nextWeek : function () {
  7864. return week.call(this, true);
  7865. },
  7866. lastDay : '[tegnap] LT[-kor]',
  7867. lastWeek : function () {
  7868. return week.call(this, false);
  7869. },
  7870. sameElse : 'L'
  7871. },
  7872. relativeTime : {
  7873. future : '%s múlva',
  7874. past : '%s',
  7875. s : translate$4,
  7876. ss : translate$4,
  7877. m : translate$4,
  7878. mm : translate$4,
  7879. h : translate$4,
  7880. hh : translate$4,
  7881. d : translate$4,
  7882. dd : translate$4,
  7883. M : translate$4,
  7884. MM : translate$4,
  7885. y : translate$4,
  7886. yy : translate$4
  7887. },
  7888. dayOfMonthOrdinalParse: /\d{1,2}\./,
  7889. ordinal : '%d.',
  7890. week : {
  7891. dow : 1, // Monday is the first day of the week.
  7892. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7893. }
  7894. });
  7895. //! moment.js locale configuration
  7896. //! locale : Armenian [hy-am]
  7897. //! author : Armendarabyan : https://github.com/armendarabyan
  7898. hooks.defineLocale('hy-am', {
  7899. months : {
  7900. format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),
  7901. standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')
  7902. },
  7903. monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
  7904. weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),
  7905. weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  7906. weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  7907. longDateFormat : {
  7908. LT : 'HH:mm',
  7909. LTS : 'HH:mm:ss',
  7910. L : 'DD.MM.YYYY',
  7911. LL : 'D MMMM YYYY թ.',
  7912. LLL : 'D MMMM YYYY թ., HH:mm',
  7913. LLLL : 'dddd, D MMMM YYYY թ., HH:mm'
  7914. },
  7915. calendar : {
  7916. sameDay: '[այսօր] LT',
  7917. nextDay: '[վաղը] LT',
  7918. lastDay: '[երեկ] LT',
  7919. nextWeek: function () {
  7920. return 'dddd [օրը ժամը] LT';
  7921. },
  7922. lastWeek: function () {
  7923. return '[անցած] dddd [օրը ժամը] LT';
  7924. },
  7925. sameElse: 'L'
  7926. },
  7927. relativeTime : {
  7928. future : '%s հետո',
  7929. past : '%s առաջ',
  7930. s : 'մի քանի վայրկյան',
  7931. ss : '%d վայրկյան',
  7932. m : 'րոպե',
  7933. mm : '%d րոպե',
  7934. h : 'ժամ',
  7935. hh : '%d ժամ',
  7936. d : 'օր',
  7937. dd : '%d օր',
  7938. M : 'ամիս',
  7939. MM : '%d ամիս',
  7940. y : 'տարի',
  7941. yy : '%d տարի'
  7942. },
  7943. meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
  7944. isPM: function (input) {
  7945. return /^(ցերեկվա|երեկոյան)$/.test(input);
  7946. },
  7947. meridiem : function (hour) {
  7948. if (hour < 4) {
  7949. return 'գիշերվա';
  7950. } else if (hour < 12) {
  7951. return 'առավոտվա';
  7952. } else if (hour < 17) {
  7953. return 'ցերեկվա';
  7954. } else {
  7955. return 'երեկոյան';
  7956. }
  7957. },
  7958. dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
  7959. ordinal: function (number, period) {
  7960. switch (period) {
  7961. case 'DDD':
  7962. case 'w':
  7963. case 'W':
  7964. case 'DDDo':
  7965. if (number === 1) {
  7966. return number + '-ին';
  7967. }
  7968. return number + '-րդ';
  7969. default:
  7970. return number;
  7971. }
  7972. },
  7973. week : {
  7974. dow : 1, // Monday is the first day of the week.
  7975. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7976. }
  7977. });
  7978. //! moment.js locale configuration
  7979. //! locale : Indonesian [id]
  7980. //! author : Mohammad Satrio Utomo : https://github.com/tyok
  7981. //! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
  7982. hooks.defineLocale('id', {
  7983. months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
  7984. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
  7985. weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
  7986. weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
  7987. weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
  7988. longDateFormat : {
  7989. LT : 'HH.mm',
  7990. LTS : 'HH.mm.ss',
  7991. L : 'DD/MM/YYYY',
  7992. LL : 'D MMMM YYYY',
  7993. LLL : 'D MMMM YYYY [pukul] HH.mm',
  7994. LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
  7995. },
  7996. meridiemParse: /pagi|siang|sore|malam/,
  7997. meridiemHour : function (hour, meridiem) {
  7998. if (hour === 12) {
  7999. hour = 0;
  8000. }
  8001. if (meridiem === 'pagi') {
  8002. return hour;
  8003. } else if (meridiem === 'siang') {
  8004. return hour >= 11 ? hour : hour + 12;
  8005. } else if (meridiem === 'sore' || meridiem === 'malam') {
  8006. return hour + 12;
  8007. }
  8008. },
  8009. meridiem : function (hours, minutes, isLower) {
  8010. if (hours < 11) {
  8011. return 'pagi';
  8012. } else if (hours < 15) {
  8013. return 'siang';
  8014. } else if (hours < 19) {
  8015. return 'sore';
  8016. } else {
  8017. return 'malam';
  8018. }
  8019. },
  8020. calendar : {
  8021. sameDay : '[Hari ini pukul] LT',
  8022. nextDay : '[Besok pukul] LT',
  8023. nextWeek : 'dddd [pukul] LT',
  8024. lastDay : '[Kemarin pukul] LT',
  8025. lastWeek : 'dddd [lalu pukul] LT',
  8026. sameElse : 'L'
  8027. },
  8028. relativeTime : {
  8029. future : 'dalam %s',
  8030. past : '%s yang lalu',
  8031. s : 'beberapa detik',
  8032. ss : '%d detik',
  8033. m : 'semenit',
  8034. mm : '%d menit',
  8035. h : 'sejam',
  8036. hh : '%d jam',
  8037. d : 'sehari',
  8038. dd : '%d hari',
  8039. M : 'sebulan',
  8040. MM : '%d bulan',
  8041. y : 'setahun',
  8042. yy : '%d tahun'
  8043. },
  8044. week : {
  8045. dow : 1, // Monday is the first day of the week.
  8046. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8047. }
  8048. });
  8049. //! moment.js locale configuration
  8050. //! locale : Icelandic [is]
  8051. //! author : Hinrik Örn Sigurðsson : https://github.com/hinrik
  8052. function plural$2(n) {
  8053. if (n % 100 === 11) {
  8054. return true;
  8055. } else if (n % 10 === 1) {
  8056. return false;
  8057. }
  8058. return true;
  8059. }
  8060. function translate$5(number, withoutSuffix, key, isFuture) {
  8061. var result = number + ' ';
  8062. switch (key) {
  8063. case 's':
  8064. return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
  8065. case 'ss':
  8066. if (plural$2(number)) {
  8067. return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');
  8068. }
  8069. return result + 'sekúnda';
  8070. case 'm':
  8071. return withoutSuffix ? 'mínúta' : 'mínútu';
  8072. case 'mm':
  8073. if (plural$2(number)) {
  8074. return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
  8075. } else if (withoutSuffix) {
  8076. return result + 'mínúta';
  8077. }
  8078. return result + 'mínútu';
  8079. case 'hh':
  8080. if (plural$2(number)) {
  8081. return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
  8082. }
  8083. return result + 'klukkustund';
  8084. case 'd':
  8085. if (withoutSuffix) {
  8086. return 'dagur';
  8087. }
  8088. return isFuture ? 'dag' : 'degi';
  8089. case 'dd':
  8090. if (plural$2(number)) {
  8091. if (withoutSuffix) {
  8092. return result + 'dagar';
  8093. }
  8094. return result + (isFuture ? 'daga' : 'dögum');
  8095. } else if (withoutSuffix) {
  8096. return result + 'dagur';
  8097. }
  8098. return result + (isFuture ? 'dag' : 'degi');
  8099. case 'M':
  8100. if (withoutSuffix) {
  8101. return 'mánuður';
  8102. }
  8103. return isFuture ? 'mánuð' : 'mánuði';
  8104. case 'MM':
  8105. if (plural$2(number)) {
  8106. if (withoutSuffix) {
  8107. return result + 'mánuðir';
  8108. }
  8109. return result + (isFuture ? 'mánuði' : 'mánuðum');
  8110. } else if (withoutSuffix) {
  8111. return result + 'mánuður';
  8112. }
  8113. return result + (isFuture ? 'mánuð' : 'mánuði');
  8114. case 'y':
  8115. return withoutSuffix || isFuture ? 'ár' : 'ári';
  8116. case 'yy':
  8117. if (plural$2(number)) {
  8118. return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
  8119. }
  8120. return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
  8121. }
  8122. }
  8123. hooks.defineLocale('is', {
  8124. months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
  8125. monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
  8126. weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
  8127. weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
  8128. weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
  8129. longDateFormat : {
  8130. LT : 'H:mm',
  8131. LTS : 'H:mm:ss',
  8132. L : 'DD.MM.YYYY',
  8133. LL : 'D. MMMM YYYY',
  8134. LLL : 'D. MMMM YYYY [kl.] H:mm',
  8135. LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'
  8136. },
  8137. calendar : {
  8138. sameDay : '[í dag kl.] LT',
  8139. nextDay : '[á morgun kl.] LT',
  8140. nextWeek : 'dddd [kl.] LT',
  8141. lastDay : '[í gær kl.] LT',
  8142. lastWeek : '[síðasta] dddd [kl.] LT',
  8143. sameElse : 'L'
  8144. },
  8145. relativeTime : {
  8146. future : 'eftir %s',
  8147. past : 'fyrir %s síðan',
  8148. s : translate$5,
  8149. ss : translate$5,
  8150. m : translate$5,
  8151. mm : translate$5,
  8152. h : 'klukkustund',
  8153. hh : translate$5,
  8154. d : translate$5,
  8155. dd : translate$5,
  8156. M : translate$5,
  8157. MM : translate$5,
  8158. y : translate$5,
  8159. yy : translate$5
  8160. },
  8161. dayOfMonthOrdinalParse: /\d{1,2}\./,
  8162. ordinal : '%d.',
  8163. week : {
  8164. dow : 1, // Monday is the first day of the week.
  8165. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8166. }
  8167. });
  8168. //! moment.js locale configuration
  8169. //! locale : Italian [it]
  8170. //! author : Lorenzo : https://github.com/aliem
  8171. //! author: Mattia Larentis: https://github.com/nostalgiaz
  8172. hooks.defineLocale('it', {
  8173. months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
  8174. monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
  8175. weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),
  8176. weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
  8177. weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),
  8178. longDateFormat : {
  8179. LT : 'HH:mm',
  8180. LTS : 'HH:mm:ss',
  8181. L : 'DD/MM/YYYY',
  8182. LL : 'D MMMM YYYY',
  8183. LLL : 'D MMMM YYYY HH:mm',
  8184. LLLL : 'dddd D MMMM YYYY HH:mm'
  8185. },
  8186. calendar : {
  8187. sameDay: '[Oggi alle] LT',
  8188. nextDay: '[Domani alle] LT',
  8189. nextWeek: 'dddd [alle] LT',
  8190. lastDay: '[Ieri alle] LT',
  8191. lastWeek: function () {
  8192. switch (this.day()) {
  8193. case 0:
  8194. return '[la scorsa] dddd [alle] LT';
  8195. default:
  8196. return '[lo scorso] dddd [alle] LT';
  8197. }
  8198. },
  8199. sameElse: 'L'
  8200. },
  8201. relativeTime : {
  8202. future : function (s) {
  8203. return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
  8204. },
  8205. past : '%s fa',
  8206. s : 'alcuni secondi',
  8207. ss : '%d secondi',
  8208. m : 'un minuto',
  8209. mm : '%d minuti',
  8210. h : 'un\'ora',
  8211. hh : '%d ore',
  8212. d : 'un giorno',
  8213. dd : '%d giorni',
  8214. M : 'un mese',
  8215. MM : '%d mesi',
  8216. y : 'un anno',
  8217. yy : '%d anni'
  8218. },
  8219. dayOfMonthOrdinalParse : /\d{1,2}º/,
  8220. ordinal: '%dº',
  8221. week : {
  8222. dow : 1, // Monday is the first day of the week.
  8223. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8224. }
  8225. });
  8226. //! moment.js locale configuration
  8227. //! locale : Japanese [ja]
  8228. //! author : LI Long : https://github.com/baryon
  8229. hooks.defineLocale('ja', {
  8230. months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  8231. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  8232. weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
  8233. weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
  8234. weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
  8235. longDateFormat : {
  8236. LT : 'HH:mm',
  8237. LTS : 'HH:mm:ss',
  8238. L : 'YYYY/MM/DD',
  8239. LL : 'YYYY年M月D日',
  8240. LLL : 'YYYY年M月D日 HH:mm',
  8241. LLLL : 'YYYY年M月D日 HH:mm dddd',
  8242. l : 'YYYY/MM/DD',
  8243. ll : 'YYYY年M月D日',
  8244. lll : 'YYYY年M月D日 HH:mm',
  8245. llll : 'YYYY年M月D日 HH:mm dddd'
  8246. },
  8247. meridiemParse: /午前|午後/i,
  8248. isPM : function (input) {
  8249. return input === '午後';
  8250. },
  8251. meridiem : function (hour, minute, isLower) {
  8252. if (hour < 12) {
  8253. return '午前';
  8254. } else {
  8255. return '午後';
  8256. }
  8257. },
  8258. calendar : {
  8259. sameDay : '[今日] LT',
  8260. nextDay : '[明日] LT',
  8261. nextWeek : '[来週]dddd LT',
  8262. lastDay : '[昨日] LT',
  8263. lastWeek : '[前週]dddd LT',
  8264. sameElse : 'L'
  8265. },
  8266. dayOfMonthOrdinalParse : /\d{1,2}日/,
  8267. ordinal : function (number, period) {
  8268. switch (period) {
  8269. case 'd':
  8270. case 'D':
  8271. case 'DDD':
  8272. return number + '日';
  8273. default:
  8274. return number;
  8275. }
  8276. },
  8277. relativeTime : {
  8278. future : '%s後',
  8279. past : '%s前',
  8280. s : '数秒',
  8281. ss : '%d秒',
  8282. m : '1分',
  8283. mm : '%d分',
  8284. h : '1時間',
  8285. hh : '%d時間',
  8286. d : '1日',
  8287. dd : '%d日',
  8288. M : '1ヶ月',
  8289. MM : '%dヶ月',
  8290. y : '1年',
  8291. yy : '%d年'
  8292. }
  8293. });
  8294. //! moment.js locale configuration
  8295. //! locale : Javanese [jv]
  8296. //! author : Rony Lantip : https://github.com/lantip
  8297. //! reference: http://jv.wikipedia.org/wiki/Basa_Jawa
  8298. hooks.defineLocale('jv', {
  8299. months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),
  8300. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
  8301. weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
  8302. weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
  8303. weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
  8304. longDateFormat : {
  8305. LT : 'HH.mm',
  8306. LTS : 'HH.mm.ss',
  8307. L : 'DD/MM/YYYY',
  8308. LL : 'D MMMM YYYY',
  8309. LLL : 'D MMMM YYYY [pukul] HH.mm',
  8310. LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
  8311. },
  8312. meridiemParse: /enjing|siyang|sonten|ndalu/,
  8313. meridiemHour : function (hour, meridiem) {
  8314. if (hour === 12) {
  8315. hour = 0;
  8316. }
  8317. if (meridiem === 'enjing') {
  8318. return hour;
  8319. } else if (meridiem === 'siyang') {
  8320. return hour >= 11 ? hour : hour + 12;
  8321. } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
  8322. return hour + 12;
  8323. }
  8324. },
  8325. meridiem : function (hours, minutes, isLower) {
  8326. if (hours < 11) {
  8327. return 'enjing';
  8328. } else if (hours < 15) {
  8329. return 'siyang';
  8330. } else if (hours < 19) {
  8331. return 'sonten';
  8332. } else {
  8333. return 'ndalu';
  8334. }
  8335. },
  8336. calendar : {
  8337. sameDay : '[Dinten puniko pukul] LT',
  8338. nextDay : '[Mbenjang pukul] LT',
  8339. nextWeek : 'dddd [pukul] LT',
  8340. lastDay : '[Kala wingi pukul] LT',
  8341. lastWeek : 'dddd [kepengker pukul] LT',
  8342. sameElse : 'L'
  8343. },
  8344. relativeTime : {
  8345. future : 'wonten ing %s',
  8346. past : '%s ingkang kepengker',
  8347. s : 'sawetawis detik',
  8348. ss : '%d detik',
  8349. m : 'setunggal menit',
  8350. mm : '%d menit',
  8351. h : 'setunggal jam',
  8352. hh : '%d jam',
  8353. d : 'sedinten',
  8354. dd : '%d dinten',
  8355. M : 'sewulan',
  8356. MM : '%d wulan',
  8357. y : 'setaun',
  8358. yy : '%d taun'
  8359. },
  8360. week : {
  8361. dow : 1, // Monday is the first day of the week.
  8362. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8363. }
  8364. });
  8365. //! moment.js locale configuration
  8366. //! locale : Georgian [ka]
  8367. //! author : Irakli Janiashvili : https://github.com/irakli-janiashvili
  8368. hooks.defineLocale('ka', {
  8369. months : {
  8370. standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
  8371. format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
  8372. },
  8373. monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
  8374. weekdays : {
  8375. standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
  8376. format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),
  8377. isFormat: /(წინა|შემდეგ)/
  8378. },
  8379. weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
  8380. weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
  8381. longDateFormat : {
  8382. LT : 'h:mm A',
  8383. LTS : 'h:mm:ss A',
  8384. L : 'DD/MM/YYYY',
  8385. LL : 'D MMMM YYYY',
  8386. LLL : 'D MMMM YYYY h:mm A',
  8387. LLLL : 'dddd, D MMMM YYYY h:mm A'
  8388. },
  8389. calendar : {
  8390. sameDay : '[დღეს] LT[-ზე]',
  8391. nextDay : '[ხვალ] LT[-ზე]',
  8392. lastDay : '[გუშინ] LT[-ზე]',
  8393. nextWeek : '[შემდეგ] dddd LT[-ზე]',
  8394. lastWeek : '[წინა] dddd LT-ზე',
  8395. sameElse : 'L'
  8396. },
  8397. relativeTime : {
  8398. future : function (s) {
  8399. return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
  8400. s.replace(/ი$/, 'ში') :
  8401. s + 'ში';
  8402. },
  8403. past : function (s) {
  8404. if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
  8405. return s.replace(/(ი|ე)$/, 'ის უკან');
  8406. }
  8407. if ((/წელი/).test(s)) {
  8408. return s.replace(/წელი$/, 'წლის უკან');
  8409. }
  8410. },
  8411. s : 'რამდენიმე წამი',
  8412. ss : '%d წამი',
  8413. m : 'წუთი',
  8414. mm : '%d წუთი',
  8415. h : 'საათი',
  8416. hh : '%d საათი',
  8417. d : 'დღე',
  8418. dd : '%d დღე',
  8419. M : 'თვე',
  8420. MM : '%d თვე',
  8421. y : 'წელი',
  8422. yy : '%d წელი'
  8423. },
  8424. dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
  8425. ordinal : function (number) {
  8426. if (number === 0) {
  8427. return number;
  8428. }
  8429. if (number === 1) {
  8430. return number + '-ლი';
  8431. }
  8432. if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
  8433. return 'მე-' + number;
  8434. }
  8435. return number + '-ე';
  8436. },
  8437. week : {
  8438. dow : 1,
  8439. doy : 7
  8440. }
  8441. });
  8442. //! moment.js locale configuration
  8443. //! locale : Kazakh [kk]
  8444. //! authors : Nurlan Rakhimzhanov : https://github.com/nurlan
  8445. var suffixes$1 = {
  8446. 0: '-ші',
  8447. 1: '-ші',
  8448. 2: '-ші',
  8449. 3: '-ші',
  8450. 4: '-ші',
  8451. 5: '-ші',
  8452. 6: '-шы',
  8453. 7: '-ші',
  8454. 8: '-ші',
  8455. 9: '-шы',
  8456. 10: '-шы',
  8457. 20: '-шы',
  8458. 30: '-шы',
  8459. 40: '-шы',
  8460. 50: '-ші',
  8461. 60: '-шы',
  8462. 70: '-ші',
  8463. 80: '-ші',
  8464. 90: '-шы',
  8465. 100: '-ші'
  8466. };
  8467. hooks.defineLocale('kk', {
  8468. months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),
  8469. monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
  8470. weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),
  8471. weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
  8472. weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
  8473. longDateFormat : {
  8474. LT : 'HH:mm',
  8475. LTS : 'HH:mm:ss',
  8476. L : 'DD.MM.YYYY',
  8477. LL : 'D MMMM YYYY',
  8478. LLL : 'D MMMM YYYY HH:mm',
  8479. LLLL : 'dddd, D MMMM YYYY HH:mm'
  8480. },
  8481. calendar : {
  8482. sameDay : '[Бүгін сағат] LT',
  8483. nextDay : '[Ертең сағат] LT',
  8484. nextWeek : 'dddd [сағат] LT',
  8485. lastDay : '[Кеше сағат] LT',
  8486. lastWeek : '[Өткен аптаның] dddd [сағат] LT',
  8487. sameElse : 'L'
  8488. },
  8489. relativeTime : {
  8490. future : '%s ішінде',
  8491. past : '%s бұрын',
  8492. s : 'бірнеше секунд',
  8493. ss : '%d секунд',
  8494. m : 'бір минут',
  8495. mm : '%d минут',
  8496. h : 'бір сағат',
  8497. hh : '%d сағат',
  8498. d : 'бір күн',
  8499. dd : '%d күн',
  8500. M : 'бір ай',
  8501. MM : '%d ай',
  8502. y : 'бір жыл',
  8503. yy : '%d жыл'
  8504. },
  8505. dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
  8506. ordinal : function (number) {
  8507. var a = number % 10,
  8508. b = number >= 100 ? 100 : null;
  8509. return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);
  8510. },
  8511. week : {
  8512. dow : 1, // Monday is the first day of the week.
  8513. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8514. }
  8515. });
  8516. //! moment.js locale configuration
  8517. //! locale : Cambodian [km]
  8518. //! author : Kruy Vanna : https://github.com/kruyvanna
  8519. hooks.defineLocale('km', {
  8520. months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  8521. monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  8522. weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  8523. weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  8524. weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  8525. longDateFormat: {
  8526. LT: 'HH:mm',
  8527. LTS : 'HH:mm:ss',
  8528. L: 'DD/MM/YYYY',
  8529. LL: 'D MMMM YYYY',
  8530. LLL: 'D MMMM YYYY HH:mm',
  8531. LLLL: 'dddd, D MMMM YYYY HH:mm'
  8532. },
  8533. calendar: {
  8534. sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
  8535. nextDay: '[ស្អែក ម៉ោង] LT',
  8536. nextWeek: 'dddd [ម៉ោង] LT',
  8537. lastDay: '[ម្សិលមិញ ម៉ោង] LT',
  8538. lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
  8539. sameElse: 'L'
  8540. },
  8541. relativeTime: {
  8542. future: '%sទៀត',
  8543. past: '%sមុន',
  8544. s: 'ប៉ុន្មានវិនាទី',
  8545. ss: '%d វិនាទី',
  8546. m: 'មួយនាទី',
  8547. mm: '%d នាទី',
  8548. h: 'មួយម៉ោង',
  8549. hh: '%d ម៉ោង',
  8550. d: 'មួយថ្ងៃ',
  8551. dd: '%d ថ្ងៃ',
  8552. M: 'មួយខែ',
  8553. MM: '%d ខែ',
  8554. y: 'មួយឆ្នាំ',
  8555. yy: '%d ឆ្នាំ'
  8556. },
  8557. week: {
  8558. dow: 1, // Monday is the first day of the week.
  8559. doy: 4 // The week that contains Jan 4th is the first week of the year.
  8560. }
  8561. });
  8562. //! moment.js locale configuration
  8563. //! locale : Kannada [kn]
  8564. //! author : Rajeev Naik : https://github.com/rajeevnaikte
  8565. var symbolMap$8 = {
  8566. '1': '೧',
  8567. '2': '೨',
  8568. '3': '೩',
  8569. '4': '೪',
  8570. '5': '೫',
  8571. '6': '೬',
  8572. '7': '೭',
  8573. '8': '೮',
  8574. '9': '೯',
  8575. '0': '೦'
  8576. };
  8577. var numberMap$7 = {
  8578. '೧': '1',
  8579. '೨': '2',
  8580. '೩': '3',
  8581. '೪': '4',
  8582. '೫': '5',
  8583. '೬': '6',
  8584. '೭': '7',
  8585. '೮': '8',
  8586. '೯': '9',
  8587. '೦': '0'
  8588. };
  8589. hooks.defineLocale('kn', {
  8590. months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),
  8591. monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ'.split('_'),
  8592. monthsParseExact: true,
  8593. weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),
  8594. weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
  8595. weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
  8596. longDateFormat : {
  8597. LT : 'A h:mm',
  8598. LTS : 'A h:mm:ss',
  8599. L : 'DD/MM/YYYY',
  8600. LL : 'D MMMM YYYY',
  8601. LLL : 'D MMMM YYYY, A h:mm',
  8602. LLLL : 'dddd, D MMMM YYYY, A h:mm'
  8603. },
  8604. calendar : {
  8605. sameDay : '[ಇಂದು] LT',
  8606. nextDay : '[ನಾಳೆ] LT',
  8607. nextWeek : 'dddd, LT',
  8608. lastDay : '[ನಿನ್ನೆ] LT',
  8609. lastWeek : '[ಕೊನೆಯ] dddd, LT',
  8610. sameElse : 'L'
  8611. },
  8612. relativeTime : {
  8613. future : '%s ನಂತರ',
  8614. past : '%s ಹಿಂದೆ',
  8615. s : 'ಕೆಲವು ಕ್ಷಣಗಳು',
  8616. ss : '%d ಸೆಕೆಂಡುಗಳು',
  8617. m : 'ಒಂದು ನಿಮಿಷ',
  8618. mm : '%d ನಿಮಿಷ',
  8619. h : 'ಒಂದು ಗಂಟೆ',
  8620. hh : '%d ಗಂಟೆ',
  8621. d : 'ಒಂದು ದಿನ',
  8622. dd : '%d ದಿನ',
  8623. M : 'ಒಂದು ತಿಂಗಳು',
  8624. MM : '%d ತಿಂಗಳು',
  8625. y : 'ಒಂದು ವರ್ಷ',
  8626. yy : '%d ವರ್ಷ'
  8627. },
  8628. preparse: function (string) {
  8629. return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
  8630. return numberMap$7[match];
  8631. });
  8632. },
  8633. postformat: function (string) {
  8634. return string.replace(/\d/g, function (match) {
  8635. return symbolMap$8[match];
  8636. });
  8637. },
  8638. meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
  8639. meridiemHour : function (hour, meridiem) {
  8640. if (hour === 12) {
  8641. hour = 0;
  8642. }
  8643. if (meridiem === 'ರಾತ್ರಿ') {
  8644. return hour < 4 ? hour : hour + 12;
  8645. } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
  8646. return hour;
  8647. } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
  8648. return hour >= 10 ? hour : hour + 12;
  8649. } else if (meridiem === 'ಸಂಜೆ') {
  8650. return hour + 12;
  8651. }
  8652. },
  8653. meridiem : function (hour, minute, isLower) {
  8654. if (hour < 4) {
  8655. return 'ರಾತ್ರಿ';
  8656. } else if (hour < 10) {
  8657. return 'ಬೆಳಿಗ್ಗೆ';
  8658. } else if (hour < 17) {
  8659. return 'ಮಧ್ಯಾಹ್ನ';
  8660. } else if (hour < 20) {
  8661. return 'ಸಂಜೆ';
  8662. } else {
  8663. return 'ರಾತ್ರಿ';
  8664. }
  8665. },
  8666. dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
  8667. ordinal : function (number) {
  8668. return number + 'ನೇ';
  8669. },
  8670. week : {
  8671. dow : 0, // Sunday is the first day of the week.
  8672. doy : 6 // The week that contains Jan 1st is the first week of the year.
  8673. }
  8674. });
  8675. //! moment.js locale configuration
  8676. //! locale : Korean [ko]
  8677. //! author : Kyungwook, Park : https://github.com/kyungw00k
  8678. //! author : Jeeeyul Lee <jeeeyul@gmail.com>
  8679. hooks.defineLocale('ko', {
  8680. months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  8681. monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  8682. weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
  8683. weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
  8684. weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
  8685. longDateFormat : {
  8686. LT : 'A h:mm',
  8687. LTS : 'A h:mm:ss',
  8688. L : 'YYYY.MM.DD',
  8689. LL : 'YYYY년 MMMM D일',
  8690. LLL : 'YYYY년 MMMM D일 A h:mm',
  8691. LLLL : 'YYYY년 MMMM D일 dddd A h:mm',
  8692. l : 'YYYY.MM.DD',
  8693. ll : 'YYYY년 MMMM D일',
  8694. lll : 'YYYY년 MMMM D일 A h:mm',
  8695. llll : 'YYYY년 MMMM D일 dddd A h:mm'
  8696. },
  8697. calendar : {
  8698. sameDay : '오늘 LT',
  8699. nextDay : '내일 LT',
  8700. nextWeek : 'dddd LT',
  8701. lastDay : '어제 LT',
  8702. lastWeek : '지난주 dddd LT',
  8703. sameElse : 'L'
  8704. },
  8705. relativeTime : {
  8706. future : '%s 후',
  8707. past : '%s 전',
  8708. s : '몇 초',
  8709. ss : '%d초',
  8710. m : '1분',
  8711. mm : '%d분',
  8712. h : '한 시간',
  8713. hh : '%d시간',
  8714. d : '하루',
  8715. dd : '%d일',
  8716. M : '한 달',
  8717. MM : '%d달',
  8718. y : '일 년',
  8719. yy : '%d년'
  8720. },
  8721. dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/,
  8722. ordinal : function (number, period) {
  8723. switch (period) {
  8724. case 'd':
  8725. case 'D':
  8726. case 'DDD':
  8727. return number + '일';
  8728. case 'M':
  8729. return number + '월';
  8730. case 'w':
  8731. case 'W':
  8732. return number + '주';
  8733. default:
  8734. return number;
  8735. }
  8736. },
  8737. meridiemParse : /오전|오후/,
  8738. isPM : function (token) {
  8739. return token === '오후';
  8740. },
  8741. meridiem : function (hour, minute, isUpper) {
  8742. return hour < 12 ? '오전' : '오후';
  8743. }
  8744. });
  8745. //! moment.js locale configuration
  8746. //! locale : Kyrgyz [ky]
  8747. //! author : Chyngyz Arystan uulu : https://github.com/chyngyz
  8748. var suffixes$2 = {
  8749. 0: '-чү',
  8750. 1: '-чи',
  8751. 2: '-чи',
  8752. 3: '-чү',
  8753. 4: '-чү',
  8754. 5: '-чи',
  8755. 6: '-чы',
  8756. 7: '-чи',
  8757. 8: '-чи',
  8758. 9: '-чу',
  8759. 10: '-чу',
  8760. 20: '-чы',
  8761. 30: '-чу',
  8762. 40: '-чы',
  8763. 50: '-чү',
  8764. 60: '-чы',
  8765. 70: '-чи',
  8766. 80: '-чи',
  8767. 90: '-чу',
  8768. 100: '-чү'
  8769. };
  8770. hooks.defineLocale('ky', {
  8771. months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  8772. monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
  8773. weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),
  8774. weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
  8775. weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
  8776. longDateFormat : {
  8777. LT : 'HH:mm',
  8778. LTS : 'HH:mm:ss',
  8779. L : 'DD.MM.YYYY',
  8780. LL : 'D MMMM YYYY',
  8781. LLL : 'D MMMM YYYY HH:mm',
  8782. LLLL : 'dddd, D MMMM YYYY HH:mm'
  8783. },
  8784. calendar : {
  8785. sameDay : '[Бүгүн саат] LT',
  8786. nextDay : '[Эртең саат] LT',
  8787. nextWeek : 'dddd [саат] LT',
  8788. lastDay : '[Кече саат] LT',
  8789. lastWeek : '[Өткен аптанын] dddd [күнү] [саат] LT',
  8790. sameElse : 'L'
  8791. },
  8792. relativeTime : {
  8793. future : '%s ичинде',
  8794. past : '%s мурун',
  8795. s : 'бирнече секунд',
  8796. ss : '%d секунд',
  8797. m : 'бир мүнөт',
  8798. mm : '%d мүнөт',
  8799. h : 'бир саат',
  8800. hh : '%d саат',
  8801. d : 'бир күн',
  8802. dd : '%d күн',
  8803. M : 'бир ай',
  8804. MM : '%d ай',
  8805. y : 'бир жыл',
  8806. yy : '%d жыл'
  8807. },
  8808. dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
  8809. ordinal : function (number) {
  8810. var a = number % 10,
  8811. b = number >= 100 ? 100 : null;
  8812. return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);
  8813. },
  8814. week : {
  8815. dow : 1, // Monday is the first day of the week.
  8816. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8817. }
  8818. });
  8819. //! moment.js locale configuration
  8820. //! locale : Luxembourgish [lb]
  8821. //! author : mweimerskirch : https://github.com/mweimerskirch
  8822. //! author : David Raison : https://github.com/kwisatz
  8823. function processRelativeTime$5(number, withoutSuffix, key, isFuture) {
  8824. var format = {
  8825. 'm': ['eng Minutt', 'enger Minutt'],
  8826. 'h': ['eng Stonn', 'enger Stonn'],
  8827. 'd': ['een Dag', 'engem Dag'],
  8828. 'M': ['ee Mount', 'engem Mount'],
  8829. 'y': ['ee Joer', 'engem Joer']
  8830. };
  8831. return withoutSuffix ? format[key][0] : format[key][1];
  8832. }
  8833. function processFutureTime(string) {
  8834. var number = string.substr(0, string.indexOf(' '));
  8835. if (eifelerRegelAppliesToNumber(number)) {
  8836. return 'a ' + string;
  8837. }
  8838. return 'an ' + string;
  8839. }
  8840. function processPastTime(string) {
  8841. var number = string.substr(0, string.indexOf(' '));
  8842. if (eifelerRegelAppliesToNumber(number)) {
  8843. return 'viru ' + string;
  8844. }
  8845. return 'virun ' + string;
  8846. }
  8847. /**
  8848. * Returns true if the word before the given number loses the '-n' ending.
  8849. * e.g. 'an 10 Deeg' but 'a 5 Deeg'
  8850. *
  8851. * @param number {integer}
  8852. * @returns {boolean}
  8853. */
  8854. function eifelerRegelAppliesToNumber(number) {
  8855. number = parseInt(number, 10);
  8856. if (isNaN(number)) {
  8857. return false;
  8858. }
  8859. if (number < 0) {
  8860. // Negative Number --> always true
  8861. return true;
  8862. } else if (number < 10) {
  8863. // Only 1 digit
  8864. if (4 <= number && number <= 7) {
  8865. return true;
  8866. }
  8867. return false;
  8868. } else if (number < 100) {
  8869. // 2 digits
  8870. var lastDigit = number % 10, firstDigit = number / 10;
  8871. if (lastDigit === 0) {
  8872. return eifelerRegelAppliesToNumber(firstDigit);
  8873. }
  8874. return eifelerRegelAppliesToNumber(lastDigit);
  8875. } else if (number < 10000) {
  8876. // 3 or 4 digits --> recursively check first digit
  8877. while (number >= 10) {
  8878. number = number / 10;
  8879. }
  8880. return eifelerRegelAppliesToNumber(number);
  8881. } else {
  8882. // Anything larger than 4 digits: recursively check first n-3 digits
  8883. number = number / 1000;
  8884. return eifelerRegelAppliesToNumber(number);
  8885. }
  8886. }
  8887. hooks.defineLocale('lb', {
  8888. months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  8889. monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  8890. monthsParseExact : true,
  8891. weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
  8892. weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
  8893. weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
  8894. weekdaysParseExact : true,
  8895. longDateFormat: {
  8896. LT: 'H:mm [Auer]',
  8897. LTS: 'H:mm:ss [Auer]',
  8898. L: 'DD.MM.YYYY',
  8899. LL: 'D. MMMM YYYY',
  8900. LLL: 'D. MMMM YYYY H:mm [Auer]',
  8901. LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
  8902. },
  8903. calendar: {
  8904. sameDay: '[Haut um] LT',
  8905. sameElse: 'L',
  8906. nextDay: '[Muer um] LT',
  8907. nextWeek: 'dddd [um] LT',
  8908. lastDay: '[Gëschter um] LT',
  8909. lastWeek: function () {
  8910. // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
  8911. switch (this.day()) {
  8912. case 2:
  8913. case 4:
  8914. return '[Leschten] dddd [um] LT';
  8915. default:
  8916. return '[Leschte] dddd [um] LT';
  8917. }
  8918. }
  8919. },
  8920. relativeTime : {
  8921. future : processFutureTime,
  8922. past : processPastTime,
  8923. s : 'e puer Sekonnen',
  8924. ss : '%d Sekonnen',
  8925. m : processRelativeTime$5,
  8926. mm : '%d Minutten',
  8927. h : processRelativeTime$5,
  8928. hh : '%d Stonnen',
  8929. d : processRelativeTime$5,
  8930. dd : '%d Deeg',
  8931. M : processRelativeTime$5,
  8932. MM : '%d Méint',
  8933. y : processRelativeTime$5,
  8934. yy : '%d Joer'
  8935. },
  8936. dayOfMonthOrdinalParse: /\d{1,2}\./,
  8937. ordinal: '%d.',
  8938. week: {
  8939. dow: 1, // Monday is the first day of the week.
  8940. doy: 4 // The week that contains Jan 4th is the first week of the year.
  8941. }
  8942. });
  8943. //! moment.js locale configuration
  8944. //! locale : Lao [lo]
  8945. //! author : Ryan Hart : https://github.com/ryanhart2
  8946. hooks.defineLocale('lo', {
  8947. months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
  8948. monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),
  8949. weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
  8950. weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
  8951. weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
  8952. weekdaysParseExact : true,
  8953. longDateFormat : {
  8954. LT : 'HH:mm',
  8955. LTS : 'HH:mm:ss',
  8956. L : 'DD/MM/YYYY',
  8957. LL : 'D MMMM YYYY',
  8958. LLL : 'D MMMM YYYY HH:mm',
  8959. LLLL : 'ວັນdddd D MMMM YYYY HH:mm'
  8960. },
  8961. meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
  8962. isPM: function (input) {
  8963. return input === 'ຕອນແລງ';
  8964. },
  8965. meridiem : function (hour, minute, isLower) {
  8966. if (hour < 12) {
  8967. return 'ຕອນເຊົ້າ';
  8968. } else {
  8969. return 'ຕອນແລງ';
  8970. }
  8971. },
  8972. calendar : {
  8973. sameDay : '[ມື້ນີ້ເວລາ] LT',
  8974. nextDay : '[ມື້ອື່ນເວລາ] LT',
  8975. nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',
  8976. lastDay : '[ມື້ວານນີ້ເວລາ] LT',
  8977. lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
  8978. sameElse : 'L'
  8979. },
  8980. relativeTime : {
  8981. future : 'ອີກ %s',
  8982. past : '%sຜ່ານມາ',
  8983. s : 'ບໍ່ເທົ່າໃດວິນາທີ',
  8984. ss : '%d ວິນາທີ' ,
  8985. m : '1 ນາທີ',
  8986. mm : '%d ນາທີ',
  8987. h : '1 ຊົ່ວໂມງ',
  8988. hh : '%d ຊົ່ວໂມງ',
  8989. d : '1 ມື້',
  8990. dd : '%d ມື້',
  8991. M : '1 ເດືອນ',
  8992. MM : '%d ເດືອນ',
  8993. y : '1 ປີ',
  8994. yy : '%d ປີ'
  8995. },
  8996. dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
  8997. ordinal : function (number) {
  8998. return 'ທີ່' + number;
  8999. }
  9000. });
  9001. //! moment.js locale configuration
  9002. //! locale : Lithuanian [lt]
  9003. //! author : Mindaugas Mozūras : https://github.com/mmozuras
  9004. var units = {
  9005. 'ss' : 'sekundė_sekundžių_sekundes',
  9006. 'm' : 'minutė_minutės_minutę',
  9007. 'mm': 'minutės_minučių_minutes',
  9008. 'h' : 'valanda_valandos_valandą',
  9009. 'hh': 'valandos_valandų_valandas',
  9010. 'd' : 'diena_dienos_dieną',
  9011. 'dd': 'dienos_dienų_dienas',
  9012. 'M' : 'mėnuo_mėnesio_mėnesį',
  9013. 'MM': 'mėnesiai_mėnesių_mėnesius',
  9014. 'y' : 'metai_metų_metus',
  9015. 'yy': 'metai_metų_metus'
  9016. };
  9017. function translateSeconds(number, withoutSuffix, key, isFuture) {
  9018. if (withoutSuffix) {
  9019. return 'kelios sekundės';
  9020. } else {
  9021. return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
  9022. }
  9023. }
  9024. function translateSingular(number, withoutSuffix, key, isFuture) {
  9025. return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
  9026. }
  9027. function special(number) {
  9028. return number % 10 === 0 || (number > 10 && number < 20);
  9029. }
  9030. function forms(key) {
  9031. return units[key].split('_');
  9032. }
  9033. function translate$6(number, withoutSuffix, key, isFuture) {
  9034. var result = number + ' ';
  9035. if (number === 1) {
  9036. return result + translateSingular(number, withoutSuffix, key[0], isFuture);
  9037. } else if (withoutSuffix) {
  9038. return result + (special(number) ? forms(key)[1] : forms(key)[0]);
  9039. } else {
  9040. if (isFuture) {
  9041. return result + forms(key)[1];
  9042. } else {
  9043. return result + (special(number) ? forms(key)[1] : forms(key)[2]);
  9044. }
  9045. }
  9046. }
  9047. hooks.defineLocale('lt', {
  9048. months : {
  9049. format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
  9050. standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),
  9051. isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/
  9052. },
  9053. monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
  9054. weekdays : {
  9055. format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),
  9056. standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),
  9057. isFormat: /dddd HH:mm/
  9058. },
  9059. weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
  9060. weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
  9061. weekdaysParseExact : true,
  9062. longDateFormat : {
  9063. LT : 'HH:mm',
  9064. LTS : 'HH:mm:ss',
  9065. L : 'YYYY-MM-DD',
  9066. LL : 'YYYY [m.] MMMM D [d.]',
  9067. LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
  9068. LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
  9069. l : 'YYYY-MM-DD',
  9070. ll : 'YYYY [m.] MMMM D [d.]',
  9071. lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
  9072. llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'
  9073. },
  9074. calendar : {
  9075. sameDay : '[Šiandien] LT',
  9076. nextDay : '[Rytoj] LT',
  9077. nextWeek : 'dddd LT',
  9078. lastDay : '[Vakar] LT',
  9079. lastWeek : '[Praėjusį] dddd LT',
  9080. sameElse : 'L'
  9081. },
  9082. relativeTime : {
  9083. future : 'po %s',
  9084. past : 'prieš %s',
  9085. s : translateSeconds,
  9086. ss : translate$6,
  9087. m : translateSingular,
  9088. mm : translate$6,
  9089. h : translateSingular,
  9090. hh : translate$6,
  9091. d : translateSingular,
  9092. dd : translate$6,
  9093. M : translateSingular,
  9094. MM : translate$6,
  9095. y : translateSingular,
  9096. yy : translate$6
  9097. },
  9098. dayOfMonthOrdinalParse: /\d{1,2}-oji/,
  9099. ordinal : function (number) {
  9100. return number + '-oji';
  9101. },
  9102. week : {
  9103. dow : 1, // Monday is the first day of the week.
  9104. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9105. }
  9106. });
  9107. //! moment.js locale configuration
  9108. //! locale : Latvian [lv]
  9109. //! author : Kristaps Karlsons : https://github.com/skakri
  9110. //! author : Jānis Elmeris : https://github.com/JanisE
  9111. var units$1 = {
  9112. 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
  9113. 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
  9114. 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),
  9115. 'h': 'stundas_stundām_stunda_stundas'.split('_'),
  9116. 'hh': 'stundas_stundām_stunda_stundas'.split('_'),
  9117. 'd': 'dienas_dienām_diena_dienas'.split('_'),
  9118. 'dd': 'dienas_dienām_diena_dienas'.split('_'),
  9119. 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
  9120. 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
  9121. 'y': 'gada_gadiem_gads_gadi'.split('_'),
  9122. 'yy': 'gada_gadiem_gads_gadi'.split('_')
  9123. };
  9124. /**
  9125. * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
  9126. */
  9127. function format$1(forms, number, withoutSuffix) {
  9128. if (withoutSuffix) {
  9129. // E.g. "21 minūte", "3 minūtes".
  9130. return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
  9131. } else {
  9132. // E.g. "21 minūtes" as in "pēc 21 minūtes".
  9133. // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
  9134. return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
  9135. }
  9136. }
  9137. function relativeTimeWithPlural$1(number, withoutSuffix, key) {
  9138. return number + ' ' + format$1(units$1[key], number, withoutSuffix);
  9139. }
  9140. function relativeTimeWithSingular(number, withoutSuffix, key) {
  9141. return format$1(units$1[key], number, withoutSuffix);
  9142. }
  9143. function relativeSeconds(number, withoutSuffix) {
  9144. return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
  9145. }
  9146. hooks.defineLocale('lv', {
  9147. months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
  9148. monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
  9149. weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
  9150. weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
  9151. weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
  9152. weekdaysParseExact : true,
  9153. longDateFormat : {
  9154. LT : 'HH:mm',
  9155. LTS : 'HH:mm:ss',
  9156. L : 'DD.MM.YYYY.',
  9157. LL : 'YYYY. [gada] D. MMMM',
  9158. LLL : 'YYYY. [gada] D. MMMM, HH:mm',
  9159. LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'
  9160. },
  9161. calendar : {
  9162. sameDay : '[Šodien pulksten] LT',
  9163. nextDay : '[Rīt pulksten] LT',
  9164. nextWeek : 'dddd [pulksten] LT',
  9165. lastDay : '[Vakar pulksten] LT',
  9166. lastWeek : '[Pagājušā] dddd [pulksten] LT',
  9167. sameElse : 'L'
  9168. },
  9169. relativeTime : {
  9170. future : 'pēc %s',
  9171. past : 'pirms %s',
  9172. s : relativeSeconds,
  9173. ss : relativeTimeWithPlural$1,
  9174. m : relativeTimeWithSingular,
  9175. mm : relativeTimeWithPlural$1,
  9176. h : relativeTimeWithSingular,
  9177. hh : relativeTimeWithPlural$1,
  9178. d : relativeTimeWithSingular,
  9179. dd : relativeTimeWithPlural$1,
  9180. M : relativeTimeWithSingular,
  9181. MM : relativeTimeWithPlural$1,
  9182. y : relativeTimeWithSingular,
  9183. yy : relativeTimeWithPlural$1
  9184. },
  9185. dayOfMonthOrdinalParse: /\d{1,2}\./,
  9186. ordinal : '%d.',
  9187. week : {
  9188. dow : 1, // Monday is the first day of the week.
  9189. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9190. }
  9191. });
  9192. //! moment.js locale configuration
  9193. //! locale : Montenegrin [me]
  9194. //! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac
  9195. var translator = {
  9196. words: { //Different grammatical cases
  9197. ss: ['sekund', 'sekunda', 'sekundi'],
  9198. m: ['jedan minut', 'jednog minuta'],
  9199. mm: ['minut', 'minuta', 'minuta'],
  9200. h: ['jedan sat', 'jednog sata'],
  9201. hh: ['sat', 'sata', 'sati'],
  9202. dd: ['dan', 'dana', 'dana'],
  9203. MM: ['mjesec', 'mjeseca', 'mjeseci'],
  9204. yy: ['godina', 'godine', 'godina']
  9205. },
  9206. correctGrammaticalCase: function (number, wordKey) {
  9207. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  9208. },
  9209. translate: function (number, withoutSuffix, key) {
  9210. var wordKey = translator.words[key];
  9211. if (key.length === 1) {
  9212. return withoutSuffix ? wordKey[0] : wordKey[1];
  9213. } else {
  9214. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  9215. }
  9216. }
  9217. };
  9218. hooks.defineLocale('me', {
  9219. months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
  9220. monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
  9221. monthsParseExact : true,
  9222. weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  9223. weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  9224. weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
  9225. weekdaysParseExact : true,
  9226. longDateFormat: {
  9227. LT: 'H:mm',
  9228. LTS : 'H:mm:ss',
  9229. L: 'DD.MM.YYYY',
  9230. LL: 'D. MMMM YYYY',
  9231. LLL: 'D. MMMM YYYY H:mm',
  9232. LLLL: 'dddd, D. MMMM YYYY H:mm'
  9233. },
  9234. calendar: {
  9235. sameDay: '[danas u] LT',
  9236. nextDay: '[sjutra u] LT',
  9237. nextWeek: function () {
  9238. switch (this.day()) {
  9239. case 0:
  9240. return '[u] [nedjelju] [u] LT';
  9241. case 3:
  9242. return '[u] [srijedu] [u] LT';
  9243. case 6:
  9244. return '[u] [subotu] [u] LT';
  9245. case 1:
  9246. case 2:
  9247. case 4:
  9248. case 5:
  9249. return '[u] dddd [u] LT';
  9250. }
  9251. },
  9252. lastDay : '[juče u] LT',
  9253. lastWeek : function () {
  9254. var lastWeekDays = [
  9255. '[prošle] [nedjelje] [u] LT',
  9256. '[prošlog] [ponedjeljka] [u] LT',
  9257. '[prošlog] [utorka] [u] LT',
  9258. '[prošle] [srijede] [u] LT',
  9259. '[prošlog] [četvrtka] [u] LT',
  9260. '[prošlog] [petka] [u] LT',
  9261. '[prošle] [subote] [u] LT'
  9262. ];
  9263. return lastWeekDays[this.day()];
  9264. },
  9265. sameElse : 'L'
  9266. },
  9267. relativeTime : {
  9268. future : 'za %s',
  9269. past : 'prije %s',
  9270. s : 'nekoliko sekundi',
  9271. ss : translator.translate,
  9272. m : translator.translate,
  9273. mm : translator.translate,
  9274. h : translator.translate,
  9275. hh : translator.translate,
  9276. d : 'dan',
  9277. dd : translator.translate,
  9278. M : 'mjesec',
  9279. MM : translator.translate,
  9280. y : 'godinu',
  9281. yy : translator.translate
  9282. },
  9283. dayOfMonthOrdinalParse: /\d{1,2}\./,
  9284. ordinal : '%d.',
  9285. week : {
  9286. dow : 1, // Monday is the first day of the week.
  9287. doy : 7 // The week that contains Jan 1st is the first week of the year.
  9288. }
  9289. });
  9290. //! moment.js locale configuration
  9291. //! locale : Maori [mi]
  9292. //! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal
  9293. hooks.defineLocale('mi', {
  9294. months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),
  9295. monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),
  9296. monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
  9297. monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
  9298. monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
  9299. monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
  9300. weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
  9301. weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
  9302. weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
  9303. longDateFormat: {
  9304. LT: 'HH:mm',
  9305. LTS: 'HH:mm:ss',
  9306. L: 'DD/MM/YYYY',
  9307. LL: 'D MMMM YYYY',
  9308. LLL: 'D MMMM YYYY [i] HH:mm',
  9309. LLLL: 'dddd, D MMMM YYYY [i] HH:mm'
  9310. },
  9311. calendar: {
  9312. sameDay: '[i teie mahana, i] LT',
  9313. nextDay: '[apopo i] LT',
  9314. nextWeek: 'dddd [i] LT',
  9315. lastDay: '[inanahi i] LT',
  9316. lastWeek: 'dddd [whakamutunga i] LT',
  9317. sameElse: 'L'
  9318. },
  9319. relativeTime: {
  9320. future: 'i roto i %s',
  9321. past: '%s i mua',
  9322. s: 'te hēkona ruarua',
  9323. ss: '%d hēkona',
  9324. m: 'he meneti',
  9325. mm: '%d meneti',
  9326. h: 'te haora',
  9327. hh: '%d haora',
  9328. d: 'he ra',
  9329. dd: '%d ra',
  9330. M: 'he marama',
  9331. MM: '%d marama',
  9332. y: 'he tau',
  9333. yy: '%d tau'
  9334. },
  9335. dayOfMonthOrdinalParse: /\d{1,2}º/,
  9336. ordinal: '%dº',
  9337. week : {
  9338. dow : 1, // Monday is the first day of the week.
  9339. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9340. }
  9341. });
  9342. //! moment.js locale configuration
  9343. //! locale : Macedonian [mk]
  9344. //! author : Borislav Mickov : https://github.com/B0k0
  9345. hooks.defineLocale('mk', {
  9346. months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
  9347. monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
  9348. weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
  9349. weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
  9350. weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
  9351. longDateFormat : {
  9352. LT : 'H:mm',
  9353. LTS : 'H:mm:ss',
  9354. L : 'D.MM.YYYY',
  9355. LL : 'D MMMM YYYY',
  9356. LLL : 'D MMMM YYYY H:mm',
  9357. LLLL : 'dddd, D MMMM YYYY H:mm'
  9358. },
  9359. calendar : {
  9360. sameDay : '[Денес во] LT',
  9361. nextDay : '[Утре во] LT',
  9362. nextWeek : '[Во] dddd [во] LT',
  9363. lastDay : '[Вчера во] LT',
  9364. lastWeek : function () {
  9365. switch (this.day()) {
  9366. case 0:
  9367. case 3:
  9368. case 6:
  9369. return '[Изминатата] dddd [во] LT';
  9370. case 1:
  9371. case 2:
  9372. case 4:
  9373. case 5:
  9374. return '[Изминатиот] dddd [во] LT';
  9375. }
  9376. },
  9377. sameElse : 'L'
  9378. },
  9379. relativeTime : {
  9380. future : 'после %s',
  9381. past : 'пред %s',
  9382. s : 'неколку секунди',
  9383. ss : '%d секунди',
  9384. m : 'минута',
  9385. mm : '%d минути',
  9386. h : 'час',
  9387. hh : '%d часа',
  9388. d : 'ден',
  9389. dd : '%d дена',
  9390. M : 'месец',
  9391. MM : '%d месеци',
  9392. y : 'година',
  9393. yy : '%d години'
  9394. },
  9395. dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  9396. ordinal : function (number) {
  9397. var lastDigit = number % 10,
  9398. last2Digits = number % 100;
  9399. if (number === 0) {
  9400. return number + '-ев';
  9401. } else if (last2Digits === 0) {
  9402. return number + '-ен';
  9403. } else if (last2Digits > 10 && last2Digits < 20) {
  9404. return number + '-ти';
  9405. } else if (lastDigit === 1) {
  9406. return number + '-ви';
  9407. } else if (lastDigit === 2) {
  9408. return number + '-ри';
  9409. } else if (lastDigit === 7 || lastDigit === 8) {
  9410. return number + '-ми';
  9411. } else {
  9412. return number + '-ти';
  9413. }
  9414. },
  9415. week : {
  9416. dow : 1, // Monday is the first day of the week.
  9417. doy : 7 // The week that contains Jan 1st is the first week of the year.
  9418. }
  9419. });
  9420. //! moment.js locale configuration
  9421. //! locale : Malayalam [ml]
  9422. //! author : Floyd Pink : https://github.com/floydpink
  9423. hooks.defineLocale('ml', {
  9424. months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
  9425. monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
  9426. monthsParseExact : true,
  9427. weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
  9428. weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
  9429. weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
  9430. longDateFormat : {
  9431. LT : 'A h:mm -നു',
  9432. LTS : 'A h:mm:ss -നു',
  9433. L : 'DD/MM/YYYY',
  9434. LL : 'D MMMM YYYY',
  9435. LLL : 'D MMMM YYYY, A h:mm -നു',
  9436. LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'
  9437. },
  9438. calendar : {
  9439. sameDay : '[ഇന്ന്] LT',
  9440. nextDay : '[നാളെ] LT',
  9441. nextWeek : 'dddd, LT',
  9442. lastDay : '[ഇന്നലെ] LT',
  9443. lastWeek : '[കഴിഞ്ഞ] dddd, LT',
  9444. sameElse : 'L'
  9445. },
  9446. relativeTime : {
  9447. future : '%s കഴിഞ്ഞ്',
  9448. past : '%s മുൻപ്',
  9449. s : 'അൽപ നിമിഷങ്ങൾ',
  9450. ss : '%d സെക്കൻഡ്',
  9451. m : 'ഒരു മിനിറ്റ്',
  9452. mm : '%d മിനിറ്റ്',
  9453. h : 'ഒരു മണിക്കൂർ',
  9454. hh : '%d മണിക്കൂർ',
  9455. d : 'ഒരു ദിവസം',
  9456. dd : '%d ദിവസം',
  9457. M : 'ഒരു മാസം',
  9458. MM : '%d മാസം',
  9459. y : 'ഒരു വർഷം',
  9460. yy : '%d വർഷം'
  9461. },
  9462. meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
  9463. meridiemHour : function (hour, meridiem) {
  9464. if (hour === 12) {
  9465. hour = 0;
  9466. }
  9467. if ((meridiem === 'രാത്രി' && hour >= 4) ||
  9468. meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
  9469. meridiem === 'വൈകുന്നേരം') {
  9470. return hour + 12;
  9471. } else {
  9472. return hour;
  9473. }
  9474. },
  9475. meridiem : function (hour, minute, isLower) {
  9476. if (hour < 4) {
  9477. return 'രാത്രി';
  9478. } else if (hour < 12) {
  9479. return 'രാവിലെ';
  9480. } else if (hour < 17) {
  9481. return 'ഉച്ച കഴിഞ്ഞ്';
  9482. } else if (hour < 20) {
  9483. return 'വൈകുന്നേരം';
  9484. } else {
  9485. return 'രാത്രി';
  9486. }
  9487. }
  9488. });
  9489. //! moment.js locale configuration
  9490. //! locale : Marathi [mr]
  9491. //! author : Harshad Kale : https://github.com/kalehv
  9492. //! author : Vivek Athalye : https://github.com/vnathalye
  9493. var symbolMap$9 = {
  9494. '1': '१',
  9495. '2': '२',
  9496. '3': '३',
  9497. '4': '४',
  9498. '5': '५',
  9499. '6': '६',
  9500. '7': '७',
  9501. '8': '८',
  9502. '9': '९',
  9503. '0': '०'
  9504. };
  9505. var numberMap$8 = {
  9506. '१': '1',
  9507. '२': '2',
  9508. '३': '3',
  9509. '४': '4',
  9510. '५': '5',
  9511. '६': '6',
  9512. '७': '7',
  9513. '८': '8',
  9514. '९': '9',
  9515. '०': '0'
  9516. };
  9517. function relativeTimeMr(number, withoutSuffix, string, isFuture)
  9518. {
  9519. var output = '';
  9520. if (withoutSuffix) {
  9521. switch (string) {
  9522. case 's': output = 'काही सेकंद'; break;
  9523. case 'ss': output = '%d सेकंद'; break;
  9524. case 'm': output = 'एक मिनिट'; break;
  9525. case 'mm': output = '%d मिनिटे'; break;
  9526. case 'h': output = 'एक तास'; break;
  9527. case 'hh': output = '%d तास'; break;
  9528. case 'd': output = 'एक दिवस'; break;
  9529. case 'dd': output = '%d दिवस'; break;
  9530. case 'M': output = 'एक महिना'; break;
  9531. case 'MM': output = '%d महिने'; break;
  9532. case 'y': output = 'एक वर्ष'; break;
  9533. case 'yy': output = '%d वर्षे'; break;
  9534. }
  9535. }
  9536. else {
  9537. switch (string) {
  9538. case 's': output = 'काही सेकंदां'; break;
  9539. case 'ss': output = '%d सेकंदां'; break;
  9540. case 'm': output = 'एका मिनिटा'; break;
  9541. case 'mm': output = '%d मिनिटां'; break;
  9542. case 'h': output = 'एका तासा'; break;
  9543. case 'hh': output = '%d तासां'; break;
  9544. case 'd': output = 'एका दिवसा'; break;
  9545. case 'dd': output = '%d दिवसां'; break;
  9546. case 'M': output = 'एका महिन्या'; break;
  9547. case 'MM': output = '%d महिन्यां'; break;
  9548. case 'y': output = 'एका वर्षा'; break;
  9549. case 'yy': output = '%d वर्षां'; break;
  9550. }
  9551. }
  9552. return output.replace(/%d/i, number);
  9553. }
  9554. hooks.defineLocale('mr', {
  9555. months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
  9556. monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
  9557. monthsParseExact : true,
  9558. weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  9559. weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
  9560. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  9561. longDateFormat : {
  9562. LT : 'A h:mm वाजता',
  9563. LTS : 'A h:mm:ss वाजता',
  9564. L : 'DD/MM/YYYY',
  9565. LL : 'D MMMM YYYY',
  9566. LLL : 'D MMMM YYYY, A h:mm वाजता',
  9567. LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'
  9568. },
  9569. calendar : {
  9570. sameDay : '[आज] LT',
  9571. nextDay : '[उद्या] LT',
  9572. nextWeek : 'dddd, LT',
  9573. lastDay : '[काल] LT',
  9574. lastWeek: '[मागील] dddd, LT',
  9575. sameElse : 'L'
  9576. },
  9577. relativeTime : {
  9578. future: '%sमध्ये',
  9579. past: '%sपूर्वी',
  9580. s: relativeTimeMr,
  9581. ss: relativeTimeMr,
  9582. m: relativeTimeMr,
  9583. mm: relativeTimeMr,
  9584. h: relativeTimeMr,
  9585. hh: relativeTimeMr,
  9586. d: relativeTimeMr,
  9587. dd: relativeTimeMr,
  9588. M: relativeTimeMr,
  9589. MM: relativeTimeMr,
  9590. y: relativeTimeMr,
  9591. yy: relativeTimeMr
  9592. },
  9593. preparse: function (string) {
  9594. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  9595. return numberMap$8[match];
  9596. });
  9597. },
  9598. postformat: function (string) {
  9599. return string.replace(/\d/g, function (match) {
  9600. return symbolMap$9[match];
  9601. });
  9602. },
  9603. meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
  9604. meridiemHour : function (hour, meridiem) {
  9605. if (hour === 12) {
  9606. hour = 0;
  9607. }
  9608. if (meridiem === 'रात्री') {
  9609. return hour < 4 ? hour : hour + 12;
  9610. } else if (meridiem === 'सकाळी') {
  9611. return hour;
  9612. } else if (meridiem === 'दुपारी') {
  9613. return hour >= 10 ? hour : hour + 12;
  9614. } else if (meridiem === 'सायंकाळी') {
  9615. return hour + 12;
  9616. }
  9617. },
  9618. meridiem: function (hour, minute, isLower) {
  9619. if (hour < 4) {
  9620. return 'रात्री';
  9621. } else if (hour < 10) {
  9622. return 'सकाळी';
  9623. } else if (hour < 17) {
  9624. return 'दुपारी';
  9625. } else if (hour < 20) {
  9626. return 'सायंकाळी';
  9627. } else {
  9628. return 'रात्री';
  9629. }
  9630. },
  9631. week : {
  9632. dow : 0, // Sunday is the first day of the week.
  9633. doy : 6 // The week that contains Jan 1st is the first week of the year.
  9634. }
  9635. });
  9636. //! moment.js locale configuration
  9637. //! locale : Malay [ms-my]
  9638. //! note : DEPRECATED, the correct one is [ms]
  9639. //! author : Weldan Jamili : https://github.com/weldan
  9640. hooks.defineLocale('ms-my', {
  9641. months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
  9642. monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
  9643. weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
  9644. weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
  9645. weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
  9646. longDateFormat : {
  9647. LT : 'HH.mm',
  9648. LTS : 'HH.mm.ss',
  9649. L : 'DD/MM/YYYY',
  9650. LL : 'D MMMM YYYY',
  9651. LLL : 'D MMMM YYYY [pukul] HH.mm',
  9652. LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
  9653. },
  9654. meridiemParse: /pagi|tengahari|petang|malam/,
  9655. meridiemHour: function (hour, meridiem) {
  9656. if (hour === 12) {
  9657. hour = 0;
  9658. }
  9659. if (meridiem === 'pagi') {
  9660. return hour;
  9661. } else if (meridiem === 'tengahari') {
  9662. return hour >= 11 ? hour : hour + 12;
  9663. } else if (meridiem === 'petang' || meridiem === 'malam') {
  9664. return hour + 12;
  9665. }
  9666. },
  9667. meridiem : function (hours, minutes, isLower) {
  9668. if (hours < 11) {
  9669. return 'pagi';
  9670. } else if (hours < 15) {
  9671. return 'tengahari';
  9672. } else if (hours < 19) {
  9673. return 'petang';
  9674. } else {
  9675. return 'malam';
  9676. }
  9677. },
  9678. calendar : {
  9679. sameDay : '[Hari ini pukul] LT',
  9680. nextDay : '[Esok pukul] LT',
  9681. nextWeek : 'dddd [pukul] LT',
  9682. lastDay : '[Kelmarin pukul] LT',
  9683. lastWeek : 'dddd [lepas pukul] LT',
  9684. sameElse : 'L'
  9685. },
  9686. relativeTime : {
  9687. future : 'dalam %s',
  9688. past : '%s yang lepas',
  9689. s : 'beberapa saat',
  9690. ss : '%d saat',
  9691. m : 'seminit',
  9692. mm : '%d minit',
  9693. h : 'sejam',
  9694. hh : '%d jam',
  9695. d : 'sehari',
  9696. dd : '%d hari',
  9697. M : 'sebulan',
  9698. MM : '%d bulan',
  9699. y : 'setahun',
  9700. yy : '%d tahun'
  9701. },
  9702. week : {
  9703. dow : 1, // Monday is the first day of the week.
  9704. doy : 7 // The week that contains Jan 1st is the first week of the year.
  9705. }
  9706. });
  9707. //! moment.js locale configuration
  9708. //! locale : Malay [ms]
  9709. //! author : Weldan Jamili : https://github.com/weldan
  9710. hooks.defineLocale('ms', {
  9711. months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
  9712. monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
  9713. weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
  9714. weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
  9715. weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
  9716. longDateFormat : {
  9717. LT : 'HH.mm',
  9718. LTS : 'HH.mm.ss',
  9719. L : 'DD/MM/YYYY',
  9720. LL : 'D MMMM YYYY',
  9721. LLL : 'D MMMM YYYY [pukul] HH.mm',
  9722. LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
  9723. },
  9724. meridiemParse: /pagi|tengahari|petang|malam/,
  9725. meridiemHour: function (hour, meridiem) {
  9726. if (hour === 12) {
  9727. hour = 0;
  9728. }
  9729. if (meridiem === 'pagi') {
  9730. return hour;
  9731. } else if (meridiem === 'tengahari') {
  9732. return hour >= 11 ? hour : hour + 12;
  9733. } else if (meridiem === 'petang' || meridiem === 'malam') {
  9734. return hour + 12;
  9735. }
  9736. },
  9737. meridiem : function (hours, minutes, isLower) {
  9738. if (hours < 11) {
  9739. return 'pagi';
  9740. } else if (hours < 15) {
  9741. return 'tengahari';
  9742. } else if (hours < 19) {
  9743. return 'petang';
  9744. } else {
  9745. return 'malam';
  9746. }
  9747. },
  9748. calendar : {
  9749. sameDay : '[Hari ini pukul] LT',
  9750. nextDay : '[Esok pukul] LT',
  9751. nextWeek : 'dddd [pukul] LT',
  9752. lastDay : '[Kelmarin pukul] LT',
  9753. lastWeek : 'dddd [lepas pukul] LT',
  9754. sameElse : 'L'
  9755. },
  9756. relativeTime : {
  9757. future : 'dalam %s',
  9758. past : '%s yang lepas',
  9759. s : 'beberapa saat',
  9760. ss : '%d saat',
  9761. m : 'seminit',
  9762. mm : '%d minit',
  9763. h : 'sejam',
  9764. hh : '%d jam',
  9765. d : 'sehari',
  9766. dd : '%d hari',
  9767. M : 'sebulan',
  9768. MM : '%d bulan',
  9769. y : 'setahun',
  9770. yy : '%d tahun'
  9771. },
  9772. week : {
  9773. dow : 1, // Monday is the first day of the week.
  9774. doy : 7 // The week that contains Jan 1st is the first week of the year.
  9775. }
  9776. });
  9777. //! moment.js locale configuration
  9778. //! locale : Maltese (Malta) [mt]
  9779. //! author : Alessandro Maruccia : https://github.com/alesma
  9780. hooks.defineLocale('mt', {
  9781. months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),
  9782. monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
  9783. weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),
  9784. weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
  9785. weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
  9786. longDateFormat : {
  9787. LT : 'HH:mm',
  9788. LTS : 'HH:mm:ss',
  9789. L : 'DD/MM/YYYY',
  9790. LL : 'D MMMM YYYY',
  9791. LLL : 'D MMMM YYYY HH:mm',
  9792. LLLL : 'dddd, D MMMM YYYY HH:mm'
  9793. },
  9794. calendar : {
  9795. sameDay : '[Illum fil-]LT',
  9796. nextDay : '[Għada fil-]LT',
  9797. nextWeek : 'dddd [fil-]LT',
  9798. lastDay : '[Il-bieraħ fil-]LT',
  9799. lastWeek : 'dddd [li għadda] [fil-]LT',
  9800. sameElse : 'L'
  9801. },
  9802. relativeTime : {
  9803. future : 'f’ %s',
  9804. past : '%s ilu',
  9805. s : 'ftit sekondi',
  9806. ss : '%d sekondi',
  9807. m : 'minuta',
  9808. mm : '%d minuti',
  9809. h : 'siegħa',
  9810. hh : '%d siegħat',
  9811. d : 'ġurnata',
  9812. dd : '%d ġranet',
  9813. M : 'xahar',
  9814. MM : '%d xhur',
  9815. y : 'sena',
  9816. yy : '%d sni'
  9817. },
  9818. dayOfMonthOrdinalParse : /\d{1,2}º/,
  9819. ordinal: '%dº',
  9820. week : {
  9821. dow : 1, // Monday is the first day of the week.
  9822. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9823. }
  9824. });
  9825. //! moment.js locale configuration
  9826. //! locale : Burmese [my]
  9827. //! author : Squar team, mysquar.com
  9828. //! author : David Rossellat : https://github.com/gholadr
  9829. //! author : Tin Aung Lin : https://github.com/thanyawzinmin
  9830. var symbolMap$10 = {
  9831. '1': '၁',
  9832. '2': '၂',
  9833. '3': '၃',
  9834. '4': '၄',
  9835. '5': '၅',
  9836. '6': '၆',
  9837. '7': '၇',
  9838. '8': '၈',
  9839. '9': '၉',
  9840. '0': '၀'
  9841. };
  9842. var numberMap$9 = {
  9843. '၁': '1',
  9844. '၂': '2',
  9845. '၃': '3',
  9846. '၄': '4',
  9847. '၅': '5',
  9848. '၆': '6',
  9849. '၇': '7',
  9850. '၈': '8',
  9851. '၉': '9',
  9852. '၀': '0'
  9853. };
  9854. hooks.defineLocale('my', {
  9855. months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
  9856. monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
  9857. weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
  9858. weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  9859. weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  9860. longDateFormat: {
  9861. LT: 'HH:mm',
  9862. LTS: 'HH:mm:ss',
  9863. L: 'DD/MM/YYYY',
  9864. LL: 'D MMMM YYYY',
  9865. LLL: 'D MMMM YYYY HH:mm',
  9866. LLLL: 'dddd D MMMM YYYY HH:mm'
  9867. },
  9868. calendar: {
  9869. sameDay: '[ယနေ.] LT [မှာ]',
  9870. nextDay: '[မနက်ဖြန်] LT [မှာ]',
  9871. nextWeek: 'dddd LT [မှာ]',
  9872. lastDay: '[မနေ.က] LT [မှာ]',
  9873. lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
  9874. sameElse: 'L'
  9875. },
  9876. relativeTime: {
  9877. future: 'လာမည့် %s မှာ',
  9878. past: 'လွန်ခဲ့သော %s က',
  9879. s: 'စက္ကန်.အနည်းငယ်',
  9880. ss : '%d စက္ကန့်',
  9881. m: 'တစ်မိနစ်',
  9882. mm: '%d မိနစ်',
  9883. h: 'တစ်နာရီ',
  9884. hh: '%d နာရီ',
  9885. d: 'တစ်ရက်',
  9886. dd: '%d ရက်',
  9887. M: 'တစ်လ',
  9888. MM: '%d လ',
  9889. y: 'တစ်နှစ်',
  9890. yy: '%d နှစ်'
  9891. },
  9892. preparse: function (string) {
  9893. return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
  9894. return numberMap$9[match];
  9895. });
  9896. },
  9897. postformat: function (string) {
  9898. return string.replace(/\d/g, function (match) {
  9899. return symbolMap$10[match];
  9900. });
  9901. },
  9902. week: {
  9903. dow: 1, // Monday is the first day of the week.
  9904. doy: 4 // The week that contains Jan 1st is the first week of the year.
  9905. }
  9906. });
  9907. //! moment.js locale configuration
  9908. //! locale : Norwegian Bokmål [nb]
  9909. //! authors : Espen Hovlandsdal : https://github.com/rexxars
  9910. //! Sigurd Gartmann : https://github.com/sigurdga
  9911. hooks.defineLocale('nb', {
  9912. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  9913. monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
  9914. monthsParseExact : true,
  9915. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  9916. weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),
  9917. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  9918. weekdaysParseExact : true,
  9919. longDateFormat : {
  9920. LT : 'HH:mm',
  9921. LTS : 'HH:mm:ss',
  9922. L : 'DD.MM.YYYY',
  9923. LL : 'D. MMMM YYYY',
  9924. LLL : 'D. MMMM YYYY [kl.] HH:mm',
  9925. LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
  9926. },
  9927. calendar : {
  9928. sameDay: '[i dag kl.] LT',
  9929. nextDay: '[i morgen kl.] LT',
  9930. nextWeek: 'dddd [kl.] LT',
  9931. lastDay: '[i går kl.] LT',
  9932. lastWeek: '[forrige] dddd [kl.] LT',
  9933. sameElse: 'L'
  9934. },
  9935. relativeTime : {
  9936. future : 'om %s',
  9937. past : '%s siden',
  9938. s : 'noen sekunder',
  9939. ss : '%d sekunder',
  9940. m : 'ett minutt',
  9941. mm : '%d minutter',
  9942. h : 'en time',
  9943. hh : '%d timer',
  9944. d : 'en dag',
  9945. dd : '%d dager',
  9946. M : 'en måned',
  9947. MM : '%d måneder',
  9948. y : 'ett år',
  9949. yy : '%d år'
  9950. },
  9951. dayOfMonthOrdinalParse: /\d{1,2}\./,
  9952. ordinal : '%d.',
  9953. week : {
  9954. dow : 1, // Monday is the first day of the week.
  9955. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9956. }
  9957. });
  9958. //! moment.js locale configuration
  9959. //! locale : Nepalese [ne]
  9960. //! author : suvash : https://github.com/suvash
  9961. var symbolMap$11 = {
  9962. '1': '१',
  9963. '2': '२',
  9964. '3': '३',
  9965. '4': '४',
  9966. '5': '५',
  9967. '6': '६',
  9968. '7': '७',
  9969. '8': '८',
  9970. '9': '९',
  9971. '0': '०'
  9972. };
  9973. var numberMap$10 = {
  9974. '१': '1',
  9975. '२': '2',
  9976. '३': '3',
  9977. '४': '4',
  9978. '५': '5',
  9979. '६': '6',
  9980. '७': '7',
  9981. '८': '8',
  9982. '९': '9',
  9983. '०': '0'
  9984. };
  9985. hooks.defineLocale('ne', {
  9986. months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
  9987. monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
  9988. monthsParseExact : true,
  9989. weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
  9990. weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
  9991. weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
  9992. weekdaysParseExact : true,
  9993. longDateFormat : {
  9994. LT : 'Aको h:mm बजे',
  9995. LTS : 'Aको h:mm:ss बजे',
  9996. L : 'DD/MM/YYYY',
  9997. LL : 'D MMMM YYYY',
  9998. LLL : 'D MMMM YYYY, Aको h:mm बजे',
  9999. LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'
  10000. },
  10001. preparse: function (string) {
  10002. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  10003. return numberMap$10[match];
  10004. });
  10005. },
  10006. postformat: function (string) {
  10007. return string.replace(/\d/g, function (match) {
  10008. return symbolMap$11[match];
  10009. });
  10010. },
  10011. meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
  10012. meridiemHour : function (hour, meridiem) {
  10013. if (hour === 12) {
  10014. hour = 0;
  10015. }
  10016. if (meridiem === 'राति') {
  10017. return hour < 4 ? hour : hour + 12;
  10018. } else if (meridiem === 'बिहान') {
  10019. return hour;
  10020. } else if (meridiem === 'दिउँसो') {
  10021. return hour >= 10 ? hour : hour + 12;
  10022. } else if (meridiem === 'साँझ') {
  10023. return hour + 12;
  10024. }
  10025. },
  10026. meridiem : function (hour, minute, isLower) {
  10027. if (hour < 3) {
  10028. return 'राति';
  10029. } else if (hour < 12) {
  10030. return 'बिहान';
  10031. } else if (hour < 16) {
  10032. return 'दिउँसो';
  10033. } else if (hour < 20) {
  10034. return 'साँझ';
  10035. } else {
  10036. return 'राति';
  10037. }
  10038. },
  10039. calendar : {
  10040. sameDay : '[आज] LT',
  10041. nextDay : '[भोलि] LT',
  10042. nextWeek : '[आउँदो] dddd[,] LT',
  10043. lastDay : '[हिजो] LT',
  10044. lastWeek : '[गएको] dddd[,] LT',
  10045. sameElse : 'L'
  10046. },
  10047. relativeTime : {
  10048. future : '%sमा',
  10049. past : '%s अगाडि',
  10050. s : 'केही क्षण',
  10051. ss : '%d सेकेण्ड',
  10052. m : 'एक मिनेट',
  10053. mm : '%d मिनेट',
  10054. h : 'एक घण्टा',
  10055. hh : '%d घण्टा',
  10056. d : 'एक दिन',
  10057. dd : '%d दिन',
  10058. M : 'एक महिना',
  10059. MM : '%d महिना',
  10060. y : 'एक बर्ष',
  10061. yy : '%d बर्ष'
  10062. },
  10063. week : {
  10064. dow : 0, // Sunday is the first day of the week.
  10065. doy : 6 // The week that contains Jan 1st is the first week of the year.
  10066. }
  10067. });
  10068. //! moment.js locale configuration
  10069. //! locale : Dutch (Belgium) [nl-be]
  10070. //! author : Joris Röling : https://github.com/jorisroling
  10071. //! author : Jacob Middag : https://github.com/middagj
  10072. var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');
  10073. var monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
  10074. var monthsParse$2 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
  10075. var monthsRegex$3 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
  10076. hooks.defineLocale('nl-be', {
  10077. months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
  10078. monthsShort : function (m, format) {
  10079. if (!m) {
  10080. return monthsShortWithDots$1;
  10081. } else if (/-MMM-/.test(format)) {
  10082. return monthsShortWithoutDots$1[m.month()];
  10083. } else {
  10084. return monthsShortWithDots$1[m.month()];
  10085. }
  10086. },
  10087. monthsRegex: monthsRegex$3,
  10088. monthsShortRegex: monthsRegex$3,
  10089. monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
  10090. monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
  10091. monthsParse : monthsParse$2,
  10092. longMonthsParse : monthsParse$2,
  10093. shortMonthsParse : monthsParse$2,
  10094. weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
  10095. weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
  10096. weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
  10097. weekdaysParseExact : true,
  10098. longDateFormat : {
  10099. LT : 'HH:mm',
  10100. LTS : 'HH:mm:ss',
  10101. L : 'DD/MM/YYYY',
  10102. LL : 'D MMMM YYYY',
  10103. LLL : 'D MMMM YYYY HH:mm',
  10104. LLLL : 'dddd D MMMM YYYY HH:mm'
  10105. },
  10106. calendar : {
  10107. sameDay: '[vandaag om] LT',
  10108. nextDay: '[morgen om] LT',
  10109. nextWeek: 'dddd [om] LT',
  10110. lastDay: '[gisteren om] LT',
  10111. lastWeek: '[afgelopen] dddd [om] LT',
  10112. sameElse: 'L'
  10113. },
  10114. relativeTime : {
  10115. future : 'over %s',
  10116. past : '%s geleden',
  10117. s : 'een paar seconden',
  10118. ss : '%d seconden',
  10119. m : 'één minuut',
  10120. mm : '%d minuten',
  10121. h : 'één uur',
  10122. hh : '%d uur',
  10123. d : 'één dag',
  10124. dd : '%d dagen',
  10125. M : 'één maand',
  10126. MM : '%d maanden',
  10127. y : 'één jaar',
  10128. yy : '%d jaar'
  10129. },
  10130. dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
  10131. ordinal : function (number) {
  10132. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  10133. },
  10134. week : {
  10135. dow : 1, // Monday is the first day of the week.
  10136. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10137. }
  10138. });
  10139. //! moment.js locale configuration
  10140. //! locale : Dutch [nl]
  10141. //! author : Joris Röling : https://github.com/jorisroling
  10142. //! author : Jacob Middag : https://github.com/middagj
  10143. var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');
  10144. var monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
  10145. var monthsParse$3 = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];
  10146. var monthsRegex$4 = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;
  10147. hooks.defineLocale('nl', {
  10148. months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
  10149. monthsShort : function (m, format) {
  10150. if (!m) {
  10151. return monthsShortWithDots$2;
  10152. } else if (/-MMM-/.test(format)) {
  10153. return monthsShortWithoutDots$2[m.month()];
  10154. } else {
  10155. return monthsShortWithDots$2[m.month()];
  10156. }
  10157. },
  10158. monthsRegex: monthsRegex$4,
  10159. monthsShortRegex: monthsRegex$4,
  10160. monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,
  10161. monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
  10162. monthsParse : monthsParse$3,
  10163. longMonthsParse : monthsParse$3,
  10164. shortMonthsParse : monthsParse$3,
  10165. weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
  10166. weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
  10167. weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),
  10168. weekdaysParseExact : true,
  10169. longDateFormat : {
  10170. LT : 'HH:mm',
  10171. LTS : 'HH:mm:ss',
  10172. L : 'DD-MM-YYYY',
  10173. LL : 'D MMMM YYYY',
  10174. LLL : 'D MMMM YYYY HH:mm',
  10175. LLLL : 'dddd D MMMM YYYY HH:mm'
  10176. },
  10177. calendar : {
  10178. sameDay: '[vandaag om] LT',
  10179. nextDay: '[morgen om] LT',
  10180. nextWeek: 'dddd [om] LT',
  10181. lastDay: '[gisteren om] LT',
  10182. lastWeek: '[afgelopen] dddd [om] LT',
  10183. sameElse: 'L'
  10184. },
  10185. relativeTime : {
  10186. future : 'over %s',
  10187. past : '%s geleden',
  10188. s : 'een paar seconden',
  10189. ss : '%d seconden',
  10190. m : 'één minuut',
  10191. mm : '%d minuten',
  10192. h : 'één uur',
  10193. hh : '%d uur',
  10194. d : 'één dag',
  10195. dd : '%d dagen',
  10196. M : 'één maand',
  10197. MM : '%d maanden',
  10198. y : 'één jaar',
  10199. yy : '%d jaar'
  10200. },
  10201. dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
  10202. ordinal : function (number) {
  10203. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  10204. },
  10205. week : {
  10206. dow : 1, // Monday is the first day of the week.
  10207. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10208. }
  10209. });
  10210. //! moment.js locale configuration
  10211. //! locale : Nynorsk [nn]
  10212. //! author : https://github.com/mechuwind
  10213. hooks.defineLocale('nn', {
  10214. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  10215. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  10216. weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
  10217. weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
  10218. weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
  10219. longDateFormat : {
  10220. LT : 'HH:mm',
  10221. LTS : 'HH:mm:ss',
  10222. L : 'DD.MM.YYYY',
  10223. LL : 'D. MMMM YYYY',
  10224. LLL : 'D. MMMM YYYY [kl.] H:mm',
  10225. LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'
  10226. },
  10227. calendar : {
  10228. sameDay: '[I dag klokka] LT',
  10229. nextDay: '[I morgon klokka] LT',
  10230. nextWeek: 'dddd [klokka] LT',
  10231. lastDay: '[I går klokka] LT',
  10232. lastWeek: '[Føregåande] dddd [klokka] LT',
  10233. sameElse: 'L'
  10234. },
  10235. relativeTime : {
  10236. future : 'om %s',
  10237. past : '%s sidan',
  10238. s : 'nokre sekund',
  10239. ss : '%d sekund',
  10240. m : 'eit minutt',
  10241. mm : '%d minutt',
  10242. h : 'ein time',
  10243. hh : '%d timar',
  10244. d : 'ein dag',
  10245. dd : '%d dagar',
  10246. M : 'ein månad',
  10247. MM : '%d månader',
  10248. y : 'eit år',
  10249. yy : '%d år'
  10250. },
  10251. dayOfMonthOrdinalParse: /\d{1,2}\./,
  10252. ordinal : '%d.',
  10253. week : {
  10254. dow : 1, // Monday is the first day of the week.
  10255. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10256. }
  10257. });
  10258. //! moment.js locale configuration
  10259. //! locale : Punjabi (India) [pa-in]
  10260. //! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit
  10261. var symbolMap$12 = {
  10262. '1': '੧',
  10263. '2': '੨',
  10264. '3': '੩',
  10265. '4': '੪',
  10266. '5': '੫',
  10267. '6': '੬',
  10268. '7': '੭',
  10269. '8': '੮',
  10270. '9': '੯',
  10271. '0': '੦'
  10272. };
  10273. var numberMap$11 = {
  10274. '੧': '1',
  10275. '੨': '2',
  10276. '੩': '3',
  10277. '੪': '4',
  10278. '੫': '5',
  10279. '੬': '6',
  10280. '੭': '7',
  10281. '੮': '8',
  10282. '੯': '9',
  10283. '੦': '0'
  10284. };
  10285. hooks.defineLocale('pa-in', {
  10286. // There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
  10287. months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
  10288. monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),
  10289. weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),
  10290. weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
  10291. weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
  10292. longDateFormat : {
  10293. LT : 'A h:mm ਵਜੇ',
  10294. LTS : 'A h:mm:ss ਵਜੇ',
  10295. L : 'DD/MM/YYYY',
  10296. LL : 'D MMMM YYYY',
  10297. LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',
  10298. LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'
  10299. },
  10300. calendar : {
  10301. sameDay : '[ਅਜ] LT',
  10302. nextDay : '[ਕਲ] LT',
  10303. nextWeek : 'dddd, LT',
  10304. lastDay : '[ਕਲ] LT',
  10305. lastWeek : '[ਪਿਛਲੇ] dddd, LT',
  10306. sameElse : 'L'
  10307. },
  10308. relativeTime : {
  10309. future : '%s ਵਿੱਚ',
  10310. past : '%s ਪਿਛਲੇ',
  10311. s : 'ਕੁਝ ਸਕਿੰਟ',
  10312. ss : '%d ਸਕਿੰਟ',
  10313. m : 'ਇਕ ਮਿੰਟ',
  10314. mm : '%d ਮਿੰਟ',
  10315. h : 'ਇੱਕ ਘੰਟਾ',
  10316. hh : '%d ਘੰਟੇ',
  10317. d : 'ਇੱਕ ਦਿਨ',
  10318. dd : '%d ਦਿਨ',
  10319. M : 'ਇੱਕ ਮਹੀਨਾ',
  10320. MM : '%d ਮਹੀਨੇ',
  10321. y : 'ਇੱਕ ਸਾਲ',
  10322. yy : '%d ਸਾਲ'
  10323. },
  10324. preparse: function (string) {
  10325. return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
  10326. return numberMap$11[match];
  10327. });
  10328. },
  10329. postformat: function (string) {
  10330. return string.replace(/\d/g, function (match) {
  10331. return symbolMap$12[match];
  10332. });
  10333. },
  10334. // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
  10335. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
  10336. meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
  10337. meridiemHour : function (hour, meridiem) {
  10338. if (hour === 12) {
  10339. hour = 0;
  10340. }
  10341. if (meridiem === 'ਰਾਤ') {
  10342. return hour < 4 ? hour : hour + 12;
  10343. } else if (meridiem === 'ਸਵੇਰ') {
  10344. return hour;
  10345. } else if (meridiem === 'ਦੁਪਹਿਰ') {
  10346. return hour >= 10 ? hour : hour + 12;
  10347. } else if (meridiem === 'ਸ਼ਾਮ') {
  10348. return hour + 12;
  10349. }
  10350. },
  10351. meridiem : function (hour, minute, isLower) {
  10352. if (hour < 4) {
  10353. return 'ਰਾਤ';
  10354. } else if (hour < 10) {
  10355. return 'ਸਵੇਰ';
  10356. } else if (hour < 17) {
  10357. return 'ਦੁਪਹਿਰ';
  10358. } else if (hour < 20) {
  10359. return 'ਸ਼ਾਮ';
  10360. } else {
  10361. return 'ਰਾਤ';
  10362. }
  10363. },
  10364. week : {
  10365. dow : 0, // Sunday is the first day of the week.
  10366. doy : 6 // The week that contains Jan 1st is the first week of the year.
  10367. }
  10368. });
  10369. //! moment.js locale configuration
  10370. //! locale : Polish [pl]
  10371. //! author : Rafal Hirsz : https://github.com/evoL
  10372. var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_');
  10373. var monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
  10374. function plural$3(n) {
  10375. return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
  10376. }
  10377. function translate$7(number, withoutSuffix, key) {
  10378. var result = number + ' ';
  10379. switch (key) {
  10380. case 'ss':
  10381. return result + (plural$3(number) ? 'sekundy' : 'sekund');
  10382. case 'm':
  10383. return withoutSuffix ? 'minuta' : 'minutę';
  10384. case 'mm':
  10385. return result + (plural$3(number) ? 'minuty' : 'minut');
  10386. case 'h':
  10387. return withoutSuffix ? 'godzina' : 'godzinę';
  10388. case 'hh':
  10389. return result + (plural$3(number) ? 'godziny' : 'godzin');
  10390. case 'MM':
  10391. return result + (plural$3(number) ? 'miesiące' : 'miesięcy');
  10392. case 'yy':
  10393. return result + (plural$3(number) ? 'lata' : 'lat');
  10394. }
  10395. }
  10396. hooks.defineLocale('pl', {
  10397. months : function (momentToFormat, format) {
  10398. if (!momentToFormat) {
  10399. return monthsNominative;
  10400. } else if (format === '') {
  10401. // Hack: if format empty we know this is used to generate
  10402. // RegExp by moment. Give then back both valid forms of months
  10403. // in RegExp ready format.
  10404. return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';
  10405. } else if (/D MMMM/.test(format)) {
  10406. return monthsSubjective[momentToFormat.month()];
  10407. } else {
  10408. return monthsNominative[momentToFormat.month()];
  10409. }
  10410. },
  10411. monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
  10412. weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
  10413. weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
  10414. weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
  10415. longDateFormat : {
  10416. LT : 'HH:mm',
  10417. LTS : 'HH:mm:ss',
  10418. L : 'DD.MM.YYYY',
  10419. LL : 'D MMMM YYYY',
  10420. LLL : 'D MMMM YYYY HH:mm',
  10421. LLLL : 'dddd, D MMMM YYYY HH:mm'
  10422. },
  10423. calendar : {
  10424. sameDay: '[Dziś o] LT',
  10425. nextDay: '[Jutro o] LT',
  10426. nextWeek: function () {
  10427. switch (this.day()) {
  10428. case 0:
  10429. return '[W niedzielę o] LT';
  10430. case 2:
  10431. return '[We wtorek o] LT';
  10432. case 3:
  10433. return '[W środę o] LT';
  10434. case 6:
  10435. return '[W sobotę o] LT';
  10436. default:
  10437. return '[W] dddd [o] LT';
  10438. }
  10439. },
  10440. lastDay: '[Wczoraj o] LT',
  10441. lastWeek: function () {
  10442. switch (this.day()) {
  10443. case 0:
  10444. return '[W zeszłą niedzielę o] LT';
  10445. case 3:
  10446. return '[W zeszłą środę o] LT';
  10447. case 6:
  10448. return '[W zeszłą sobotę o] LT';
  10449. default:
  10450. return '[W zeszły] dddd [o] LT';
  10451. }
  10452. },
  10453. sameElse: 'L'
  10454. },
  10455. relativeTime : {
  10456. future : 'za %s',
  10457. past : '%s temu',
  10458. s : 'kilka sekund',
  10459. ss : translate$7,
  10460. m : translate$7,
  10461. mm : translate$7,
  10462. h : translate$7,
  10463. hh : translate$7,
  10464. d : '1 dzień',
  10465. dd : '%d dni',
  10466. M : 'miesiąc',
  10467. MM : translate$7,
  10468. y : 'rok',
  10469. yy : translate$7
  10470. },
  10471. dayOfMonthOrdinalParse: /\d{1,2}\./,
  10472. ordinal : '%d.',
  10473. week : {
  10474. dow : 1, // Monday is the first day of the week.
  10475. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10476. }
  10477. });
  10478. //! moment.js locale configuration
  10479. //! locale : Portuguese (Brazil) [pt-br]
  10480. //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
  10481. hooks.defineLocale('pt-br', {
  10482. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  10483. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  10484. weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
  10485. weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
  10486. weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
  10487. weekdaysParseExact : true,
  10488. longDateFormat : {
  10489. LT : 'HH:mm',
  10490. LTS : 'HH:mm:ss',
  10491. L : 'DD/MM/YYYY',
  10492. LL : 'D [de] MMMM [de] YYYY',
  10493. LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',
  10494. LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'
  10495. },
  10496. calendar : {
  10497. sameDay: '[Hoje às] LT',
  10498. nextDay: '[Amanhã às] LT',
  10499. nextWeek: 'dddd [às] LT',
  10500. lastDay: '[Ontem às] LT',
  10501. lastWeek: function () {
  10502. return (this.day() === 0 || this.day() === 6) ?
  10503. '[Último] dddd [às] LT' : // Saturday + Sunday
  10504. '[Última] dddd [às] LT'; // Monday - Friday
  10505. },
  10506. sameElse: 'L'
  10507. },
  10508. relativeTime : {
  10509. future : 'em %s',
  10510. past : '%s atrás',
  10511. s : 'poucos segundos',
  10512. ss : '%d segundos',
  10513. m : 'um minuto',
  10514. mm : '%d minutos',
  10515. h : 'uma hora',
  10516. hh : '%d horas',
  10517. d : 'um dia',
  10518. dd : '%d dias',
  10519. M : 'um mês',
  10520. MM : '%d meses',
  10521. y : 'um ano',
  10522. yy : '%d anos'
  10523. },
  10524. dayOfMonthOrdinalParse: /\d{1,2}º/,
  10525. ordinal : '%dº'
  10526. });
  10527. //! moment.js locale configuration
  10528. //! locale : Portuguese [pt]
  10529. //! author : Jefferson : https://github.com/jalex79
  10530. hooks.defineLocale('pt', {
  10531. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  10532. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  10533. weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),
  10534. weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
  10535. weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
  10536. weekdaysParseExact : true,
  10537. longDateFormat : {
  10538. LT : 'HH:mm',
  10539. LTS : 'HH:mm:ss',
  10540. L : 'DD/MM/YYYY',
  10541. LL : 'D [de] MMMM [de] YYYY',
  10542. LLL : 'D [de] MMMM [de] YYYY HH:mm',
  10543. LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'
  10544. },
  10545. calendar : {
  10546. sameDay: '[Hoje às] LT',
  10547. nextDay: '[Amanhã às] LT',
  10548. nextWeek: 'dddd [às] LT',
  10549. lastDay: '[Ontem às] LT',
  10550. lastWeek: function () {
  10551. return (this.day() === 0 || this.day() === 6) ?
  10552. '[Último] dddd [às] LT' : // Saturday + Sunday
  10553. '[Última] dddd [às] LT'; // Monday - Friday
  10554. },
  10555. sameElse: 'L'
  10556. },
  10557. relativeTime : {
  10558. future : 'em %s',
  10559. past : 'há %s',
  10560. s : 'segundos',
  10561. ss : '%d segundos',
  10562. m : 'um minuto',
  10563. mm : '%d minutos',
  10564. h : 'uma hora',
  10565. hh : '%d horas',
  10566. d : 'um dia',
  10567. dd : '%d dias',
  10568. M : 'um mês',
  10569. MM : '%d meses',
  10570. y : 'um ano',
  10571. yy : '%d anos'
  10572. },
  10573. dayOfMonthOrdinalParse: /\d{1,2}º/,
  10574. ordinal : '%dº',
  10575. week : {
  10576. dow : 1, // Monday is the first day of the week.
  10577. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10578. }
  10579. });
  10580. //! moment.js locale configuration
  10581. //! locale : Romanian [ro]
  10582. //! author : Vlad Gurdiga : https://github.com/gurdiga
  10583. //! author : Valentin Agachi : https://github.com/avaly
  10584. function relativeTimeWithPlural$2(number, withoutSuffix, key) {
  10585. var format = {
  10586. 'ss': 'secunde',
  10587. 'mm': 'minute',
  10588. 'hh': 'ore',
  10589. 'dd': 'zile',
  10590. 'MM': 'luni',
  10591. 'yy': 'ani'
  10592. },
  10593. separator = ' ';
  10594. if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
  10595. separator = ' de ';
  10596. }
  10597. return number + separator + format[key];
  10598. }
  10599. hooks.defineLocale('ro', {
  10600. months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
  10601. monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
  10602. monthsParseExact: true,
  10603. weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
  10604. weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
  10605. weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
  10606. longDateFormat : {
  10607. LT : 'H:mm',
  10608. LTS : 'H:mm:ss',
  10609. L : 'DD.MM.YYYY',
  10610. LL : 'D MMMM YYYY',
  10611. LLL : 'D MMMM YYYY H:mm',
  10612. LLLL : 'dddd, D MMMM YYYY H:mm'
  10613. },
  10614. calendar : {
  10615. sameDay: '[azi la] LT',
  10616. nextDay: '[mâine la] LT',
  10617. nextWeek: 'dddd [la] LT',
  10618. lastDay: '[ieri la] LT',
  10619. lastWeek: '[fosta] dddd [la] LT',
  10620. sameElse: 'L'
  10621. },
  10622. relativeTime : {
  10623. future : 'peste %s',
  10624. past : '%s în urmă',
  10625. s : 'câteva secunde',
  10626. ss : relativeTimeWithPlural$2,
  10627. m : 'un minut',
  10628. mm : relativeTimeWithPlural$2,
  10629. h : 'o oră',
  10630. hh : relativeTimeWithPlural$2,
  10631. d : 'o zi',
  10632. dd : relativeTimeWithPlural$2,
  10633. M : 'o lună',
  10634. MM : relativeTimeWithPlural$2,
  10635. y : 'un an',
  10636. yy : relativeTimeWithPlural$2
  10637. },
  10638. week : {
  10639. dow : 1, // Monday is the first day of the week.
  10640. doy : 7 // The week that contains Jan 1st is the first week of the year.
  10641. }
  10642. });
  10643. //! moment.js locale configuration
  10644. //! locale : Russian [ru]
  10645. //! author : Viktorminator : https://github.com/Viktorminator
  10646. //! Author : Menelion Elensúle : https://github.com/Oire
  10647. //! author : Коренберг Марк : https://github.com/socketpair
  10648. function plural$4(word, num) {
  10649. var forms = word.split('_');
  10650. return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
  10651. }
  10652. function relativeTimeWithPlural$3(number, withoutSuffix, key) {
  10653. var format = {
  10654. 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
  10655. 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
  10656. 'hh': 'час_часа_часов',
  10657. 'dd': 'день_дня_дней',
  10658. 'MM': 'месяц_месяца_месяцев',
  10659. 'yy': 'год_года_лет'
  10660. };
  10661. if (key === 'm') {
  10662. return withoutSuffix ? 'минута' : 'минуту';
  10663. }
  10664. else {
  10665. return number + ' ' + plural$4(format[key], +number);
  10666. }
  10667. }
  10668. var monthsParse$4 = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];
  10669. // http://new.gramota.ru/spravka/rules/139-prop : § 103
  10670. // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
  10671. // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
  10672. hooks.defineLocale('ru', {
  10673. months : {
  10674. format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),
  10675. standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')
  10676. },
  10677. monthsShort : {
  10678. // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
  10679. format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),
  10680. standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')
  10681. },
  10682. weekdays : {
  10683. standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
  10684. format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),
  10685. isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/
  10686. },
  10687. weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  10688. weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  10689. monthsParse : monthsParse$4,
  10690. longMonthsParse : monthsParse$4,
  10691. shortMonthsParse : monthsParse$4,
  10692. // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
  10693. monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
  10694. // копия предыдущего
  10695. monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
  10696. // полные названия с падежами
  10697. monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
  10698. // Выражение, которое соотвествует только сокращённым формам
  10699. monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
  10700. longDateFormat : {
  10701. LT : 'H:mm',
  10702. LTS : 'H:mm:ss',
  10703. L : 'DD.MM.YYYY',
  10704. LL : 'D MMMM YYYY г.',
  10705. LLL : 'D MMMM YYYY г., H:mm',
  10706. LLLL : 'dddd, D MMMM YYYY г., H:mm'
  10707. },
  10708. calendar : {
  10709. sameDay: '[Сегодня в] LT',
  10710. nextDay: '[Завтра в] LT',
  10711. lastDay: '[Вчера в] LT',
  10712. nextWeek: function (now) {
  10713. if (now.week() !== this.week()) {
  10714. switch (this.day()) {
  10715. case 0:
  10716. return '[В следующее] dddd [в] LT';
  10717. case 1:
  10718. case 2:
  10719. case 4:
  10720. return '[В следующий] dddd [в] LT';
  10721. case 3:
  10722. case 5:
  10723. case 6:
  10724. return '[В следующую] dddd [в] LT';
  10725. }
  10726. } else {
  10727. if (this.day() === 2) {
  10728. return '[Во] dddd [в] LT';
  10729. } else {
  10730. return '[В] dddd [в] LT';
  10731. }
  10732. }
  10733. },
  10734. lastWeek: function (now) {
  10735. if (now.week() !== this.week()) {
  10736. switch (this.day()) {
  10737. case 0:
  10738. return '[В прошлое] dddd [в] LT';
  10739. case 1:
  10740. case 2:
  10741. case 4:
  10742. return '[В прошлый] dddd [в] LT';
  10743. case 3:
  10744. case 5:
  10745. case 6:
  10746. return '[В прошлую] dddd [в] LT';
  10747. }
  10748. } else {
  10749. if (this.day() === 2) {
  10750. return '[Во] dddd [в] LT';
  10751. } else {
  10752. return '[В] dddd [в] LT';
  10753. }
  10754. }
  10755. },
  10756. sameElse: 'L'
  10757. },
  10758. relativeTime : {
  10759. future : 'через %s',
  10760. past : '%s назад',
  10761. s : 'несколько секунд',
  10762. ss : relativeTimeWithPlural$3,
  10763. m : relativeTimeWithPlural$3,
  10764. mm : relativeTimeWithPlural$3,
  10765. h : 'час',
  10766. hh : relativeTimeWithPlural$3,
  10767. d : 'день',
  10768. dd : relativeTimeWithPlural$3,
  10769. M : 'месяц',
  10770. MM : relativeTimeWithPlural$3,
  10771. y : 'год',
  10772. yy : relativeTimeWithPlural$3
  10773. },
  10774. meridiemParse: /ночи|утра|дня|вечера/i,
  10775. isPM : function (input) {
  10776. return /^(дня|вечера)$/.test(input);
  10777. },
  10778. meridiem : function (hour, minute, isLower) {
  10779. if (hour < 4) {
  10780. return 'ночи';
  10781. } else if (hour < 12) {
  10782. return 'утра';
  10783. } else if (hour < 17) {
  10784. return 'дня';
  10785. } else {
  10786. return 'вечера';
  10787. }
  10788. },
  10789. dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
  10790. ordinal: function (number, period) {
  10791. switch (period) {
  10792. case 'M':
  10793. case 'd':
  10794. case 'DDD':
  10795. return number + '-й';
  10796. case 'D':
  10797. return number + '-го';
  10798. case 'w':
  10799. case 'W':
  10800. return number + '-я';
  10801. default:
  10802. return number;
  10803. }
  10804. },
  10805. week : {
  10806. dow : 1, // Monday is the first day of the week.
  10807. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10808. }
  10809. });
  10810. //! moment.js locale configuration
  10811. //! locale : Sindhi [sd]
  10812. //! author : Narain Sagar : https://github.com/narainsagar
  10813. var months$6 = [
  10814. 'جنوري',
  10815. 'فيبروري',
  10816. 'مارچ',
  10817. 'اپريل',
  10818. 'مئي',
  10819. 'جون',
  10820. 'جولاءِ',
  10821. 'آگسٽ',
  10822. 'سيپٽمبر',
  10823. 'آڪٽوبر',
  10824. 'نومبر',
  10825. 'ڊسمبر'
  10826. ];
  10827. var days$1 = [
  10828. 'آچر',
  10829. 'سومر',
  10830. 'اڱارو',
  10831. 'اربع',
  10832. 'خميس',
  10833. 'جمع',
  10834. 'ڇنڇر'
  10835. ];
  10836. hooks.defineLocale('sd', {
  10837. months : months$6,
  10838. monthsShort : months$6,
  10839. weekdays : days$1,
  10840. weekdaysShort : days$1,
  10841. weekdaysMin : days$1,
  10842. longDateFormat : {
  10843. LT : 'HH:mm',
  10844. LTS : 'HH:mm:ss',
  10845. L : 'DD/MM/YYYY',
  10846. LL : 'D MMMM YYYY',
  10847. LLL : 'D MMMM YYYY HH:mm',
  10848. LLLL : 'dddd، D MMMM YYYY HH:mm'
  10849. },
  10850. meridiemParse: /صبح|شام/,
  10851. isPM : function (input) {
  10852. return 'شام' === input;
  10853. },
  10854. meridiem : function (hour, minute, isLower) {
  10855. if (hour < 12) {
  10856. return 'صبح';
  10857. }
  10858. return 'شام';
  10859. },
  10860. calendar : {
  10861. sameDay : '[اڄ] LT',
  10862. nextDay : '[سڀاڻي] LT',
  10863. nextWeek : 'dddd [اڳين هفتي تي] LT',
  10864. lastDay : '[ڪالهه] LT',
  10865. lastWeek : '[گزريل هفتي] dddd [تي] LT',
  10866. sameElse : 'L'
  10867. },
  10868. relativeTime : {
  10869. future : '%s پوء',
  10870. past : '%s اڳ',
  10871. s : 'چند سيڪنڊ',
  10872. ss : '%d سيڪنڊ',
  10873. m : 'هڪ منٽ',
  10874. mm : '%d منٽ',
  10875. h : 'هڪ ڪلاڪ',
  10876. hh : '%d ڪلاڪ',
  10877. d : 'هڪ ڏينهن',
  10878. dd : '%d ڏينهن',
  10879. M : 'هڪ مهينو',
  10880. MM : '%d مهينا',
  10881. y : 'هڪ سال',
  10882. yy : '%d سال'
  10883. },
  10884. preparse: function (string) {
  10885. return string.replace(/،/g, ',');
  10886. },
  10887. postformat: function (string) {
  10888. return string.replace(/,/g, '،');
  10889. },
  10890. week : {
  10891. dow : 1, // Monday is the first day of the week.
  10892. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10893. }
  10894. });
  10895. //! moment.js locale configuration
  10896. //! locale : Northern Sami [se]
  10897. //! authors : Bård Rolstad Henriksen : https://github.com/karamell
  10898. hooks.defineLocale('se', {
  10899. months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),
  10900. monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
  10901. weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),
  10902. weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
  10903. weekdaysMin : 's_v_m_g_d_b_L'.split('_'),
  10904. longDateFormat : {
  10905. LT : 'HH:mm',
  10906. LTS : 'HH:mm:ss',
  10907. L : 'DD.MM.YYYY',
  10908. LL : 'MMMM D. [b.] YYYY',
  10909. LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',
  10910. LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'
  10911. },
  10912. calendar : {
  10913. sameDay: '[otne ti] LT',
  10914. nextDay: '[ihttin ti] LT',
  10915. nextWeek: 'dddd [ti] LT',
  10916. lastDay: '[ikte ti] LT',
  10917. lastWeek: '[ovddit] dddd [ti] LT',
  10918. sameElse: 'L'
  10919. },
  10920. relativeTime : {
  10921. future : '%s geažes',
  10922. past : 'maŋit %s',
  10923. s : 'moadde sekunddat',
  10924. ss: '%d sekunddat',
  10925. m : 'okta minuhta',
  10926. mm : '%d minuhtat',
  10927. h : 'okta diimmu',
  10928. hh : '%d diimmut',
  10929. d : 'okta beaivi',
  10930. dd : '%d beaivvit',
  10931. M : 'okta mánnu',
  10932. MM : '%d mánut',
  10933. y : 'okta jahki',
  10934. yy : '%d jagit'
  10935. },
  10936. dayOfMonthOrdinalParse: /\d{1,2}\./,
  10937. ordinal : '%d.',
  10938. week : {
  10939. dow : 1, // Monday is the first day of the week.
  10940. doy : 4 // The week that contains Jan 4th is the first week of the year.
  10941. }
  10942. });
  10943. //! moment.js locale configuration
  10944. //! locale : Sinhalese [si]
  10945. //! author : Sampath Sitinamaluwa : https://github.com/sampathsris
  10946. /*jshint -W100*/
  10947. hooks.defineLocale('si', {
  10948. months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),
  10949. monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),
  10950. weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),
  10951. weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
  10952. weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
  10953. weekdaysParseExact : true,
  10954. longDateFormat : {
  10955. LT : 'a h:mm',
  10956. LTS : 'a h:mm:ss',
  10957. L : 'YYYY/MM/DD',
  10958. LL : 'YYYY MMMM D',
  10959. LLL : 'YYYY MMMM D, a h:mm',
  10960. LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'
  10961. },
  10962. calendar : {
  10963. sameDay : '[අද] LT[ට]',
  10964. nextDay : '[හෙට] LT[ට]',
  10965. nextWeek : 'dddd LT[ට]',
  10966. lastDay : '[ඊයේ] LT[ට]',
  10967. lastWeek : '[පසුගිය] dddd LT[ට]',
  10968. sameElse : 'L'
  10969. },
  10970. relativeTime : {
  10971. future : '%sකින්',
  10972. past : '%sකට පෙර',
  10973. s : 'තත්පර කිහිපය',
  10974. ss : 'තත්පර %d',
  10975. m : 'මිනිත්තුව',
  10976. mm : 'මිනිත්තු %d',
  10977. h : 'පැය',
  10978. hh : 'පැය %d',
  10979. d : 'දිනය',
  10980. dd : 'දින %d',
  10981. M : 'මාසය',
  10982. MM : 'මාස %d',
  10983. y : 'වසර',
  10984. yy : 'වසර %d'
  10985. },
  10986. dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
  10987. ordinal : function (number) {
  10988. return number + ' වැනි';
  10989. },
  10990. meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
  10991. isPM : function (input) {
  10992. return input === 'ප.ව.' || input === 'පස් වරු';
  10993. },
  10994. meridiem : function (hours, minutes, isLower) {
  10995. if (hours > 11) {
  10996. return isLower ? 'ප.ව.' : 'පස් වරු';
  10997. } else {
  10998. return isLower ? 'පෙ.ව.' : 'පෙර වරු';
  10999. }
  11000. }
  11001. });
  11002. //! moment.js locale configuration
  11003. //! locale : Slovak [sk]
  11004. //! author : Martin Minka : https://github.com/k2s
  11005. //! based on work of petrbela : https://github.com/petrbela
  11006. var months$7 = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_');
  11007. var monthsShort$5 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
  11008. function plural$5(n) {
  11009. return (n > 1) && (n < 5);
  11010. }
  11011. function translate$8(number, withoutSuffix, key, isFuture) {
  11012. var result = number + ' ';
  11013. switch (key) {
  11014. case 's': // a few seconds / in a few seconds / a few seconds ago
  11015. return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
  11016. case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
  11017. if (withoutSuffix || isFuture) {
  11018. return result + (plural$5(number) ? 'sekundy' : 'sekúnd');
  11019. } else {
  11020. return result + 'sekundami';
  11021. }
  11022. break;
  11023. case 'm': // a minute / in a minute / a minute ago
  11024. return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
  11025. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  11026. if (withoutSuffix || isFuture) {
  11027. return result + (plural$5(number) ? 'minúty' : 'minút');
  11028. } else {
  11029. return result + 'minútami';
  11030. }
  11031. break;
  11032. case 'h': // an hour / in an hour / an hour ago
  11033. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  11034. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  11035. if (withoutSuffix || isFuture) {
  11036. return result + (plural$5(number) ? 'hodiny' : 'hodín');
  11037. } else {
  11038. return result + 'hodinami';
  11039. }
  11040. break;
  11041. case 'd': // a day / in a day / a day ago
  11042. return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
  11043. case 'dd': // 9 days / in 9 days / 9 days ago
  11044. if (withoutSuffix || isFuture) {
  11045. return result + (plural$5(number) ? 'dni' : 'dní');
  11046. } else {
  11047. return result + 'dňami';
  11048. }
  11049. break;
  11050. case 'M': // a month / in a month / a month ago
  11051. return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
  11052. case 'MM': // 9 months / in 9 months / 9 months ago
  11053. if (withoutSuffix || isFuture) {
  11054. return result + (plural$5(number) ? 'mesiace' : 'mesiacov');
  11055. } else {
  11056. return result + 'mesiacmi';
  11057. }
  11058. break;
  11059. case 'y': // a year / in a year / a year ago
  11060. return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
  11061. case 'yy': // 9 years / in 9 years / 9 years ago
  11062. if (withoutSuffix || isFuture) {
  11063. return result + (plural$5(number) ? 'roky' : 'rokov');
  11064. } else {
  11065. return result + 'rokmi';
  11066. }
  11067. break;
  11068. }
  11069. }
  11070. hooks.defineLocale('sk', {
  11071. months : months$7,
  11072. monthsShort : monthsShort$5,
  11073. weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
  11074. weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
  11075. weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
  11076. longDateFormat : {
  11077. LT: 'H:mm',
  11078. LTS : 'H:mm:ss',
  11079. L : 'DD.MM.YYYY',
  11080. LL : 'D. MMMM YYYY',
  11081. LLL : 'D. MMMM YYYY H:mm',
  11082. LLLL : 'dddd D. MMMM YYYY H:mm'
  11083. },
  11084. calendar : {
  11085. sameDay: '[dnes o] LT',
  11086. nextDay: '[zajtra o] LT',
  11087. nextWeek: function () {
  11088. switch (this.day()) {
  11089. case 0:
  11090. return '[v nedeľu o] LT';
  11091. case 1:
  11092. case 2:
  11093. return '[v] dddd [o] LT';
  11094. case 3:
  11095. return '[v stredu o] LT';
  11096. case 4:
  11097. return '[vo štvrtok o] LT';
  11098. case 5:
  11099. return '[v piatok o] LT';
  11100. case 6:
  11101. return '[v sobotu o] LT';
  11102. }
  11103. },
  11104. lastDay: '[včera o] LT',
  11105. lastWeek: function () {
  11106. switch (this.day()) {
  11107. case 0:
  11108. return '[minulú nedeľu o] LT';
  11109. case 1:
  11110. case 2:
  11111. return '[minulý] dddd [o] LT';
  11112. case 3:
  11113. return '[minulú stredu o] LT';
  11114. case 4:
  11115. case 5:
  11116. return '[minulý] dddd [o] LT';
  11117. case 6:
  11118. return '[minulú sobotu o] LT';
  11119. }
  11120. },
  11121. sameElse: 'L'
  11122. },
  11123. relativeTime : {
  11124. future : 'za %s',
  11125. past : 'pred %s',
  11126. s : translate$8,
  11127. ss : translate$8,
  11128. m : translate$8,
  11129. mm : translate$8,
  11130. h : translate$8,
  11131. hh : translate$8,
  11132. d : translate$8,
  11133. dd : translate$8,
  11134. M : translate$8,
  11135. MM : translate$8,
  11136. y : translate$8,
  11137. yy : translate$8
  11138. },
  11139. dayOfMonthOrdinalParse: /\d{1,2}\./,
  11140. ordinal : '%d.',
  11141. week : {
  11142. dow : 1, // Monday is the first day of the week.
  11143. doy : 4 // The week that contains Jan 4th is the first week of the year.
  11144. }
  11145. });
  11146. //! moment.js locale configuration
  11147. //! locale : Slovenian [sl]
  11148. //! author : Robert Sedovšek : https://github.com/sedovsek
  11149. function processRelativeTime$6(number, withoutSuffix, key, isFuture) {
  11150. var result = number + ' ';
  11151. switch (key) {
  11152. case 's':
  11153. return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';
  11154. case 'ss':
  11155. if (number === 1) {
  11156. result += withoutSuffix ? 'sekundo' : 'sekundi';
  11157. } else if (number === 2) {
  11158. result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
  11159. } else if (number < 5) {
  11160. result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
  11161. } else {
  11162. result += withoutSuffix || isFuture ? 'sekund' : 'sekund';
  11163. }
  11164. return result;
  11165. case 'm':
  11166. return withoutSuffix ? 'ena minuta' : 'eno minuto';
  11167. case 'mm':
  11168. if (number === 1) {
  11169. result += withoutSuffix ? 'minuta' : 'minuto';
  11170. } else if (number === 2) {
  11171. result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
  11172. } else if (number < 5) {
  11173. result += withoutSuffix || isFuture ? 'minute' : 'minutami';
  11174. } else {
  11175. result += withoutSuffix || isFuture ? 'minut' : 'minutami';
  11176. }
  11177. return result;
  11178. case 'h':
  11179. return withoutSuffix ? 'ena ura' : 'eno uro';
  11180. case 'hh':
  11181. if (number === 1) {
  11182. result += withoutSuffix ? 'ura' : 'uro';
  11183. } else if (number === 2) {
  11184. result += withoutSuffix || isFuture ? 'uri' : 'urama';
  11185. } else if (number < 5) {
  11186. result += withoutSuffix || isFuture ? 'ure' : 'urami';
  11187. } else {
  11188. result += withoutSuffix || isFuture ? 'ur' : 'urami';
  11189. }
  11190. return result;
  11191. case 'd':
  11192. return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
  11193. case 'dd':
  11194. if (number === 1) {
  11195. result += withoutSuffix || isFuture ? 'dan' : 'dnem';
  11196. } else if (number === 2) {
  11197. result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
  11198. } else {
  11199. result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
  11200. }
  11201. return result;
  11202. case 'M':
  11203. return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
  11204. case 'MM':
  11205. if (number === 1) {
  11206. result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
  11207. } else if (number === 2) {
  11208. result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
  11209. } else if (number < 5) {
  11210. result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
  11211. } else {
  11212. result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
  11213. }
  11214. return result;
  11215. case 'y':
  11216. return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
  11217. case 'yy':
  11218. if (number === 1) {
  11219. result += withoutSuffix || isFuture ? 'leto' : 'letom';
  11220. } else if (number === 2) {
  11221. result += withoutSuffix || isFuture ? 'leti' : 'letoma';
  11222. } else if (number < 5) {
  11223. result += withoutSuffix || isFuture ? 'leta' : 'leti';
  11224. } else {
  11225. result += withoutSuffix || isFuture ? 'let' : 'leti';
  11226. }
  11227. return result;
  11228. }
  11229. }
  11230. hooks.defineLocale('sl', {
  11231. months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
  11232. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
  11233. monthsParseExact: true,
  11234. weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
  11235. weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
  11236. weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
  11237. weekdaysParseExact : true,
  11238. longDateFormat : {
  11239. LT : 'H:mm',
  11240. LTS : 'H:mm:ss',
  11241. L : 'DD.MM.YYYY',
  11242. LL : 'D. MMMM YYYY',
  11243. LLL : 'D. MMMM YYYY H:mm',
  11244. LLLL : 'dddd, D. MMMM YYYY H:mm'
  11245. },
  11246. calendar : {
  11247. sameDay : '[danes ob] LT',
  11248. nextDay : '[jutri ob] LT',
  11249. nextWeek : function () {
  11250. switch (this.day()) {
  11251. case 0:
  11252. return '[v] [nedeljo] [ob] LT';
  11253. case 3:
  11254. return '[v] [sredo] [ob] LT';
  11255. case 6:
  11256. return '[v] [soboto] [ob] LT';
  11257. case 1:
  11258. case 2:
  11259. case 4:
  11260. case 5:
  11261. return '[v] dddd [ob] LT';
  11262. }
  11263. },
  11264. lastDay : '[včeraj ob] LT',
  11265. lastWeek : function () {
  11266. switch (this.day()) {
  11267. case 0:
  11268. return '[prejšnjo] [nedeljo] [ob] LT';
  11269. case 3:
  11270. return '[prejšnjo] [sredo] [ob] LT';
  11271. case 6:
  11272. return '[prejšnjo] [soboto] [ob] LT';
  11273. case 1:
  11274. case 2:
  11275. case 4:
  11276. case 5:
  11277. return '[prejšnji] dddd [ob] LT';
  11278. }
  11279. },
  11280. sameElse : 'L'
  11281. },
  11282. relativeTime : {
  11283. future : 'čez %s',
  11284. past : 'pred %s',
  11285. s : processRelativeTime$6,
  11286. ss : processRelativeTime$6,
  11287. m : processRelativeTime$6,
  11288. mm : processRelativeTime$6,
  11289. h : processRelativeTime$6,
  11290. hh : processRelativeTime$6,
  11291. d : processRelativeTime$6,
  11292. dd : processRelativeTime$6,
  11293. M : processRelativeTime$6,
  11294. MM : processRelativeTime$6,
  11295. y : processRelativeTime$6,
  11296. yy : processRelativeTime$6
  11297. },
  11298. dayOfMonthOrdinalParse: /\d{1,2}\./,
  11299. ordinal : '%d.',
  11300. week : {
  11301. dow : 1, // Monday is the first day of the week.
  11302. doy : 7 // The week that contains Jan 1st is the first week of the year.
  11303. }
  11304. });
  11305. //! moment.js locale configuration
  11306. //! locale : Albanian [sq]
  11307. //! author : Flakërim Ismani : https://github.com/flakerimi
  11308. //! author : Menelion Elensúle : https://github.com/Oire
  11309. //! author : Oerd Cukalla : https://github.com/oerd
  11310. hooks.defineLocale('sq', {
  11311. months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
  11312. monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
  11313. weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
  11314. weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
  11315. weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
  11316. weekdaysParseExact : true,
  11317. meridiemParse: /PD|MD/,
  11318. isPM: function (input) {
  11319. return input.charAt(0) === 'M';
  11320. },
  11321. meridiem : function (hours, minutes, isLower) {
  11322. return hours < 12 ? 'PD' : 'MD';
  11323. },
  11324. longDateFormat : {
  11325. LT : 'HH:mm',
  11326. LTS : 'HH:mm:ss',
  11327. L : 'DD/MM/YYYY',
  11328. LL : 'D MMMM YYYY',
  11329. LLL : 'D MMMM YYYY HH:mm',
  11330. LLLL : 'dddd, D MMMM YYYY HH:mm'
  11331. },
  11332. calendar : {
  11333. sameDay : '[Sot në] LT',
  11334. nextDay : '[Nesër në] LT',
  11335. nextWeek : 'dddd [në] LT',
  11336. lastDay : '[Dje në] LT',
  11337. lastWeek : 'dddd [e kaluar në] LT',
  11338. sameElse : 'L'
  11339. },
  11340. relativeTime : {
  11341. future : 'në %s',
  11342. past : '%s më parë',
  11343. s : 'disa sekonda',
  11344. ss : '%d sekonda',
  11345. m : 'një minutë',
  11346. mm : '%d minuta',
  11347. h : 'një orë',
  11348. hh : '%d orë',
  11349. d : 'një ditë',
  11350. dd : '%d ditë',
  11351. M : 'një muaj',
  11352. MM : '%d muaj',
  11353. y : 'një vit',
  11354. yy : '%d vite'
  11355. },
  11356. dayOfMonthOrdinalParse: /\d{1,2}\./,
  11357. ordinal : '%d.',
  11358. week : {
  11359. dow : 1, // Monday is the first day of the week.
  11360. doy : 4 // The week that contains Jan 4th is the first week of the year.
  11361. }
  11362. });
  11363. //! moment.js locale configuration
  11364. //! locale : Serbian Cyrillic [sr-cyrl]
  11365. //! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  11366. var translator$1 = {
  11367. words: { //Different grammatical cases
  11368. ss: ['секунда', 'секунде', 'секунди'],
  11369. m: ['један минут', 'једне минуте'],
  11370. mm: ['минут', 'минуте', 'минута'],
  11371. h: ['један сат', 'једног сата'],
  11372. hh: ['сат', 'сата', 'сати'],
  11373. dd: ['дан', 'дана', 'дана'],
  11374. MM: ['месец', 'месеца', 'месеци'],
  11375. yy: ['година', 'године', 'година']
  11376. },
  11377. correctGrammaticalCase: function (number, wordKey) {
  11378. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  11379. },
  11380. translate: function (number, withoutSuffix, key) {
  11381. var wordKey = translator$1.words[key];
  11382. if (key.length === 1) {
  11383. return withoutSuffix ? wordKey[0] : wordKey[1];
  11384. } else {
  11385. return number + ' ' + translator$1.correctGrammaticalCase(number, wordKey);
  11386. }
  11387. }
  11388. };
  11389. hooks.defineLocale('sr-cyrl', {
  11390. months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),
  11391. monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
  11392. monthsParseExact: true,
  11393. weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
  11394. weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
  11395. weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
  11396. weekdaysParseExact : true,
  11397. longDateFormat: {
  11398. LT: 'H:mm',
  11399. LTS : 'H:mm:ss',
  11400. L: 'DD.MM.YYYY',
  11401. LL: 'D. MMMM YYYY',
  11402. LLL: 'D. MMMM YYYY H:mm',
  11403. LLLL: 'dddd, D. MMMM YYYY H:mm'
  11404. },
  11405. calendar: {
  11406. sameDay: '[данас у] LT',
  11407. nextDay: '[сутра у] LT',
  11408. nextWeek: function () {
  11409. switch (this.day()) {
  11410. case 0:
  11411. return '[у] [недељу] [у] LT';
  11412. case 3:
  11413. return '[у] [среду] [у] LT';
  11414. case 6:
  11415. return '[у] [суботу] [у] LT';
  11416. case 1:
  11417. case 2:
  11418. case 4:
  11419. case 5:
  11420. return '[у] dddd [у] LT';
  11421. }
  11422. },
  11423. lastDay : '[јуче у] LT',
  11424. lastWeek : function () {
  11425. var lastWeekDays = [
  11426. '[прошле] [недеље] [у] LT',
  11427. '[прошлог] [понедељка] [у] LT',
  11428. '[прошлог] [уторка] [у] LT',
  11429. '[прошле] [среде] [у] LT',
  11430. '[прошлог] [четвртка] [у] LT',
  11431. '[прошлог] [петка] [у] LT',
  11432. '[прошле] [суботе] [у] LT'
  11433. ];
  11434. return lastWeekDays[this.day()];
  11435. },
  11436. sameElse : 'L'
  11437. },
  11438. relativeTime : {
  11439. future : 'за %s',
  11440. past : 'пре %s',
  11441. s : 'неколико секунди',
  11442. ss : translator$1.translate,
  11443. m : translator$1.translate,
  11444. mm : translator$1.translate,
  11445. h : translator$1.translate,
  11446. hh : translator$1.translate,
  11447. d : 'дан',
  11448. dd : translator$1.translate,
  11449. M : 'месец',
  11450. MM : translator$1.translate,
  11451. y : 'годину',
  11452. yy : translator$1.translate
  11453. },
  11454. dayOfMonthOrdinalParse: /\d{1,2}\./,
  11455. ordinal : '%d.',
  11456. week : {
  11457. dow : 1, // Monday is the first day of the week.
  11458. doy : 7 // The week that contains Jan 1st is the first week of the year.
  11459. }
  11460. });
  11461. //! moment.js locale configuration
  11462. //! locale : Serbian [sr]
  11463. //! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  11464. var translator$2 = {
  11465. words: { //Different grammatical cases
  11466. ss: ['sekunda', 'sekunde', 'sekundi'],
  11467. m: ['jedan minut', 'jedne minute'],
  11468. mm: ['minut', 'minute', 'minuta'],
  11469. h: ['jedan sat', 'jednog sata'],
  11470. hh: ['sat', 'sata', 'sati'],
  11471. dd: ['dan', 'dana', 'dana'],
  11472. MM: ['mesec', 'meseca', 'meseci'],
  11473. yy: ['godina', 'godine', 'godina']
  11474. },
  11475. correctGrammaticalCase: function (number, wordKey) {
  11476. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  11477. },
  11478. translate: function (number, withoutSuffix, key) {
  11479. var wordKey = translator$2.words[key];
  11480. if (key.length === 1) {
  11481. return withoutSuffix ? wordKey[0] : wordKey[1];
  11482. } else {
  11483. return number + ' ' + translator$2.correctGrammaticalCase(number, wordKey);
  11484. }
  11485. }
  11486. };
  11487. hooks.defineLocale('sr', {
  11488. months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
  11489. monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
  11490. monthsParseExact: true,
  11491. weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
  11492. weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
  11493. weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
  11494. weekdaysParseExact : true,
  11495. longDateFormat: {
  11496. LT: 'H:mm',
  11497. LTS : 'H:mm:ss',
  11498. L: 'DD.MM.YYYY',
  11499. LL: 'D. MMMM YYYY',
  11500. LLL: 'D. MMMM YYYY H:mm',
  11501. LLLL: 'dddd, D. MMMM YYYY H:mm'
  11502. },
  11503. calendar: {
  11504. sameDay: '[danas u] LT',
  11505. nextDay: '[sutra u] LT',
  11506. nextWeek: function () {
  11507. switch (this.day()) {
  11508. case 0:
  11509. return '[u] [nedelju] [u] LT';
  11510. case 3:
  11511. return '[u] [sredu] [u] LT';
  11512. case 6:
  11513. return '[u] [subotu] [u] LT';
  11514. case 1:
  11515. case 2:
  11516. case 4:
  11517. case 5:
  11518. return '[u] dddd [u] LT';
  11519. }
  11520. },
  11521. lastDay : '[juče u] LT',
  11522. lastWeek : function () {
  11523. var lastWeekDays = [
  11524. '[prošle] [nedelje] [u] LT',
  11525. '[prošlog] [ponedeljka] [u] LT',
  11526. '[prošlog] [utorka] [u] LT',
  11527. '[prošle] [srede] [u] LT',
  11528. '[prošlog] [četvrtka] [u] LT',
  11529. '[prošlog] [petka] [u] LT',
  11530. '[prošle] [subote] [u] LT'
  11531. ];
  11532. return lastWeekDays[this.day()];
  11533. },
  11534. sameElse : 'L'
  11535. },
  11536. relativeTime : {
  11537. future : 'za %s',
  11538. past : 'pre %s',
  11539. s : 'nekoliko sekundi',
  11540. ss : translator$2.translate,
  11541. m : translator$2.translate,
  11542. mm : translator$2.translate,
  11543. h : translator$2.translate,
  11544. hh : translator$2.translate,
  11545. d : 'dan',
  11546. dd : translator$2.translate,
  11547. M : 'mesec',
  11548. MM : translator$2.translate,
  11549. y : 'godinu',
  11550. yy : translator$2.translate
  11551. },
  11552. dayOfMonthOrdinalParse: /\d{1,2}\./,
  11553. ordinal : '%d.',
  11554. week : {
  11555. dow : 1, // Monday is the first day of the week.
  11556. doy : 7 // The week that contains Jan 1st is the first week of the year.
  11557. }
  11558. });
  11559. //! moment.js locale configuration
  11560. //! locale : siSwati [ss]
  11561. //! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies
  11562. hooks.defineLocale('ss', {
  11563. months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'),
  11564. monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
  11565. weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),
  11566. weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
  11567. weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
  11568. weekdaysParseExact : true,
  11569. longDateFormat : {
  11570. LT : 'h:mm A',
  11571. LTS : 'h:mm:ss A',
  11572. L : 'DD/MM/YYYY',
  11573. LL : 'D MMMM YYYY',
  11574. LLL : 'D MMMM YYYY h:mm A',
  11575. LLLL : 'dddd, D MMMM YYYY h:mm A'
  11576. },
  11577. calendar : {
  11578. sameDay : '[Namuhla nga] LT',
  11579. nextDay : '[Kusasa nga] LT',
  11580. nextWeek : 'dddd [nga] LT',
  11581. lastDay : '[Itolo nga] LT',
  11582. lastWeek : 'dddd [leliphelile] [nga] LT',
  11583. sameElse : 'L'
  11584. },
  11585. relativeTime : {
  11586. future : 'nga %s',
  11587. past : 'wenteka nga %s',
  11588. s : 'emizuzwana lomcane',
  11589. ss : '%d mzuzwana',
  11590. m : 'umzuzu',
  11591. mm : '%d emizuzu',
  11592. h : 'lihora',
  11593. hh : '%d emahora',
  11594. d : 'lilanga',
  11595. dd : '%d emalanga',
  11596. M : 'inyanga',
  11597. MM : '%d tinyanga',
  11598. y : 'umnyaka',
  11599. yy : '%d iminyaka'
  11600. },
  11601. meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
  11602. meridiem : function (hours, minutes, isLower) {
  11603. if (hours < 11) {
  11604. return 'ekuseni';
  11605. } else if (hours < 15) {
  11606. return 'emini';
  11607. } else if (hours < 19) {
  11608. return 'entsambama';
  11609. } else {
  11610. return 'ebusuku';
  11611. }
  11612. },
  11613. meridiemHour : function (hour, meridiem) {
  11614. if (hour === 12) {
  11615. hour = 0;
  11616. }
  11617. if (meridiem === 'ekuseni') {
  11618. return hour;
  11619. } else if (meridiem === 'emini') {
  11620. return hour >= 11 ? hour : hour + 12;
  11621. } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
  11622. if (hour === 0) {
  11623. return 0;
  11624. }
  11625. return hour + 12;
  11626. }
  11627. },
  11628. dayOfMonthOrdinalParse: /\d{1,2}/,
  11629. ordinal : '%d',
  11630. week : {
  11631. dow : 1, // Monday is the first day of the week.
  11632. doy : 4 // The week that contains Jan 4th is the first week of the year.
  11633. }
  11634. });
  11635. //! moment.js locale configuration
  11636. //! locale : Swedish [sv]
  11637. //! author : Jens Alm : https://github.com/ulmus
  11638. hooks.defineLocale('sv', {
  11639. months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
  11640. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  11641. weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
  11642. weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
  11643. weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
  11644. longDateFormat : {
  11645. LT : 'HH:mm',
  11646. LTS : 'HH:mm:ss',
  11647. L : 'YYYY-MM-DD',
  11648. LL : 'D MMMM YYYY',
  11649. LLL : 'D MMMM YYYY [kl.] HH:mm',
  11650. LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',
  11651. lll : 'D MMM YYYY HH:mm',
  11652. llll : 'ddd D MMM YYYY HH:mm'
  11653. },
  11654. calendar : {
  11655. sameDay: '[Idag] LT',
  11656. nextDay: '[Imorgon] LT',
  11657. lastDay: '[Igår] LT',
  11658. nextWeek: '[På] dddd LT',
  11659. lastWeek: '[I] dddd[s] LT',
  11660. sameElse: 'L'
  11661. },
  11662. relativeTime : {
  11663. future : 'om %s',
  11664. past : 'för %s sedan',
  11665. s : 'några sekunder',
  11666. ss : '%d sekunder',
  11667. m : 'en minut',
  11668. mm : '%d minuter',
  11669. h : 'en timme',
  11670. hh : '%d timmar',
  11671. d : 'en dag',
  11672. dd : '%d dagar',
  11673. M : 'en månad',
  11674. MM : '%d månader',
  11675. y : 'ett år',
  11676. yy : '%d år'
  11677. },
  11678. dayOfMonthOrdinalParse: /\d{1,2}(e|a)/,
  11679. ordinal : function (number) {
  11680. var b = number % 10,
  11681. output = (~~(number % 100 / 10) === 1) ? 'e' :
  11682. (b === 1) ? 'a' :
  11683. (b === 2) ? 'a' :
  11684. (b === 3) ? 'e' : 'e';
  11685. return number + output;
  11686. },
  11687. week : {
  11688. dow : 1, // Monday is the first day of the week.
  11689. doy : 4 // The week that contains Jan 4th is the first week of the year.
  11690. }
  11691. });
  11692. //! moment.js locale configuration
  11693. //! locale : Swahili [sw]
  11694. //! author : Fahad Kassim : https://github.com/fadsel
  11695. hooks.defineLocale('sw', {
  11696. months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),
  11697. monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
  11698. weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),
  11699. weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
  11700. weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
  11701. weekdaysParseExact : true,
  11702. longDateFormat : {
  11703. LT : 'HH:mm',
  11704. LTS : 'HH:mm:ss',
  11705. L : 'DD.MM.YYYY',
  11706. LL : 'D MMMM YYYY',
  11707. LLL : 'D MMMM YYYY HH:mm',
  11708. LLLL : 'dddd, D MMMM YYYY HH:mm'
  11709. },
  11710. calendar : {
  11711. sameDay : '[leo saa] LT',
  11712. nextDay : '[kesho saa] LT',
  11713. nextWeek : '[wiki ijayo] dddd [saat] LT',
  11714. lastDay : '[jana] LT',
  11715. lastWeek : '[wiki iliyopita] dddd [saat] LT',
  11716. sameElse : 'L'
  11717. },
  11718. relativeTime : {
  11719. future : '%s baadaye',
  11720. past : 'tokea %s',
  11721. s : 'hivi punde',
  11722. ss : 'sekunde %d',
  11723. m : 'dakika moja',
  11724. mm : 'dakika %d',
  11725. h : 'saa limoja',
  11726. hh : 'masaa %d',
  11727. d : 'siku moja',
  11728. dd : 'masiku %d',
  11729. M : 'mwezi mmoja',
  11730. MM : 'miezi %d',
  11731. y : 'mwaka mmoja',
  11732. yy : 'miaka %d'
  11733. },
  11734. week : {
  11735. dow : 1, // Monday is the first day of the week.
  11736. doy : 7 // The week that contains Jan 1st is the first week of the year.
  11737. }
  11738. });
  11739. //! moment.js locale configuration
  11740. //! locale : Tamil [ta]
  11741. //! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
  11742. var symbolMap$13 = {
  11743. '1': '௧',
  11744. '2': '௨',
  11745. '3': '௩',
  11746. '4': '௪',
  11747. '5': '௫',
  11748. '6': '௬',
  11749. '7': '௭',
  11750. '8': '௮',
  11751. '9': '௯',
  11752. '0': '௦'
  11753. };
  11754. var numberMap$12 = {
  11755. '௧': '1',
  11756. '௨': '2',
  11757. '௩': '3',
  11758. '௪': '4',
  11759. '௫': '5',
  11760. '௬': '6',
  11761. '௭': '7',
  11762. '௮': '8',
  11763. '௯': '9',
  11764. '௦': '0'
  11765. };
  11766. hooks.defineLocale('ta', {
  11767. months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  11768. monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  11769. weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
  11770. weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
  11771. weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
  11772. longDateFormat : {
  11773. LT : 'HH:mm',
  11774. LTS : 'HH:mm:ss',
  11775. L : 'DD/MM/YYYY',
  11776. LL : 'D MMMM YYYY',
  11777. LLL : 'D MMMM YYYY, HH:mm',
  11778. LLLL : 'dddd, D MMMM YYYY, HH:mm'
  11779. },
  11780. calendar : {
  11781. sameDay : '[இன்று] LT',
  11782. nextDay : '[நாளை] LT',
  11783. nextWeek : 'dddd, LT',
  11784. lastDay : '[நேற்று] LT',
  11785. lastWeek : '[கடந்த வாரம்] dddd, LT',
  11786. sameElse : 'L'
  11787. },
  11788. relativeTime : {
  11789. future : '%s இல்',
  11790. past : '%s முன்',
  11791. s : 'ஒரு சில விநாடிகள்',
  11792. ss : '%d விநாடிகள்',
  11793. m : 'ஒரு நிமிடம்',
  11794. mm : '%d நிமிடங்கள்',
  11795. h : 'ஒரு மணி நேரம்',
  11796. hh : '%d மணி நேரம்',
  11797. d : 'ஒரு நாள்',
  11798. dd : '%d நாட்கள்',
  11799. M : 'ஒரு மாதம்',
  11800. MM : '%d மாதங்கள்',
  11801. y : 'ஒரு வருடம்',
  11802. yy : '%d ஆண்டுகள்'
  11803. },
  11804. dayOfMonthOrdinalParse: /\d{1,2}வது/,
  11805. ordinal : function (number) {
  11806. return number + 'வது';
  11807. },
  11808. preparse: function (string) {
  11809. return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
  11810. return numberMap$12[match];
  11811. });
  11812. },
  11813. postformat: function (string) {
  11814. return string.replace(/\d/g, function (match) {
  11815. return symbolMap$13[match];
  11816. });
  11817. },
  11818. // refer http://ta.wikipedia.org/s/1er1
  11819. meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
  11820. meridiem : function (hour, minute, isLower) {
  11821. if (hour < 2) {
  11822. return ' யாமம்';
  11823. } else if (hour < 6) {
  11824. return ' வைகறை'; // வைகறை
  11825. } else if (hour < 10) {
  11826. return ' காலை'; // காலை
  11827. } else if (hour < 14) {
  11828. return ' நண்பகல்'; // நண்பகல்
  11829. } else if (hour < 18) {
  11830. return ' எற்பாடு'; // எற்பாடு
  11831. } else if (hour < 22) {
  11832. return ' மாலை'; // மாலை
  11833. } else {
  11834. return ' யாமம்';
  11835. }
  11836. },
  11837. meridiemHour : function (hour, meridiem) {
  11838. if (hour === 12) {
  11839. hour = 0;
  11840. }
  11841. if (meridiem === 'யாமம்') {
  11842. return hour < 2 ? hour : hour + 12;
  11843. } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
  11844. return hour;
  11845. } else if (meridiem === 'நண்பகல்') {
  11846. return hour >= 10 ? hour : hour + 12;
  11847. } else {
  11848. return hour + 12;
  11849. }
  11850. },
  11851. week : {
  11852. dow : 0, // Sunday is the first day of the week.
  11853. doy : 6 // The week that contains Jan 1st is the first week of the year.
  11854. }
  11855. });
  11856. //! moment.js locale configuration
  11857. //! locale : Telugu [te]
  11858. //! author : Krishna Chaitanya Thota : https://github.com/kcthota
  11859. hooks.defineLocale('te', {
  11860. months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),
  11861. monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),
  11862. monthsParseExact : true,
  11863. weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),
  11864. weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
  11865. weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
  11866. longDateFormat : {
  11867. LT : 'A h:mm',
  11868. LTS : 'A h:mm:ss',
  11869. L : 'DD/MM/YYYY',
  11870. LL : 'D MMMM YYYY',
  11871. LLL : 'D MMMM YYYY, A h:mm',
  11872. LLLL : 'dddd, D MMMM YYYY, A h:mm'
  11873. },
  11874. calendar : {
  11875. sameDay : '[నేడు] LT',
  11876. nextDay : '[రేపు] LT',
  11877. nextWeek : 'dddd, LT',
  11878. lastDay : '[నిన్న] LT',
  11879. lastWeek : '[గత] dddd, LT',
  11880. sameElse : 'L'
  11881. },
  11882. relativeTime : {
  11883. future : '%s లో',
  11884. past : '%s క్రితం',
  11885. s : 'కొన్ని క్షణాలు',
  11886. ss : '%d సెకన్లు',
  11887. m : 'ఒక నిమిషం',
  11888. mm : '%d నిమిషాలు',
  11889. h : 'ఒక గంట',
  11890. hh : '%d గంటలు',
  11891. d : 'ఒక రోజు',
  11892. dd : '%d రోజులు',
  11893. M : 'ఒక నెల',
  11894. MM : '%d నెలలు',
  11895. y : 'ఒక సంవత్సరం',
  11896. yy : '%d సంవత్సరాలు'
  11897. },
  11898. dayOfMonthOrdinalParse : /\d{1,2}వ/,
  11899. ordinal : '%dవ',
  11900. meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
  11901. meridiemHour : function (hour, meridiem) {
  11902. if (hour === 12) {
  11903. hour = 0;
  11904. }
  11905. if (meridiem === 'రాత్రి') {
  11906. return hour < 4 ? hour : hour + 12;
  11907. } else if (meridiem === 'ఉదయం') {
  11908. return hour;
  11909. } else if (meridiem === 'మధ్యాహ్నం') {
  11910. return hour >= 10 ? hour : hour + 12;
  11911. } else if (meridiem === 'సాయంత్రం') {
  11912. return hour + 12;
  11913. }
  11914. },
  11915. meridiem : function (hour, minute, isLower) {
  11916. if (hour < 4) {
  11917. return 'రాత్రి';
  11918. } else if (hour < 10) {
  11919. return 'ఉదయం';
  11920. } else if (hour < 17) {
  11921. return 'మధ్యాహ్నం';
  11922. } else if (hour < 20) {
  11923. return 'సాయంత్రం';
  11924. } else {
  11925. return 'రాత్రి';
  11926. }
  11927. },
  11928. week : {
  11929. dow : 0, // Sunday is the first day of the week.
  11930. doy : 6 // The week that contains Jan 1st is the first week of the year.
  11931. }
  11932. });
  11933. //! moment.js locale configuration
  11934. //! locale : Tetun Dili (East Timor) [tet]
  11935. //! author : Joshua Brooks : https://github.com/joshbrooks
  11936. //! author : Onorio De J. Afonso : https://github.com/marobo
  11937. hooks.defineLocale('tet', {
  11938. months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),
  11939. monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez'.split('_'),
  11940. weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu'.split('_'),
  11941. weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sext_Sab'.split('_'),
  11942. weekdaysMin : 'Do_Seg_Te_Ku_Ki_Sex_Sa'.split('_'),
  11943. longDateFormat : {
  11944. LT : 'HH:mm',
  11945. LTS : 'HH:mm:ss',
  11946. L : 'DD/MM/YYYY',
  11947. LL : 'D MMMM YYYY',
  11948. LLL : 'D MMMM YYYY HH:mm',
  11949. LLLL : 'dddd, D MMMM YYYY HH:mm'
  11950. },
  11951. calendar : {
  11952. sameDay: '[Ohin iha] LT',
  11953. nextDay: '[Aban iha] LT',
  11954. nextWeek: 'dddd [iha] LT',
  11955. lastDay: '[Horiseik iha] LT',
  11956. lastWeek: 'dddd [semana kotuk] [iha] LT',
  11957. sameElse: 'L'
  11958. },
  11959. relativeTime : {
  11960. future : 'iha %s',
  11961. past : '%s liuba',
  11962. s : 'minutu balun',
  11963. ss : 'minutu %d',
  11964. m : 'minutu ida',
  11965. mm : 'minutus %d',
  11966. h : 'horas ida',
  11967. hh : 'horas %d',
  11968. d : 'loron ida',
  11969. dd : 'loron %d',
  11970. M : 'fulan ida',
  11971. MM : 'fulan %d',
  11972. y : 'tinan ida',
  11973. yy : 'tinan %d'
  11974. },
  11975. dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
  11976. ordinal : function (number) {
  11977. var b = number % 10,
  11978. output = (~~(number % 100 / 10) === 1) ? 'th' :
  11979. (b === 1) ? 'st' :
  11980. (b === 2) ? 'nd' :
  11981. (b === 3) ? 'rd' : 'th';
  11982. return number + output;
  11983. },
  11984. week : {
  11985. dow : 1, // Monday is the first day of the week.
  11986. doy : 4 // The week that contains Jan 4th is the first week of the year.
  11987. }
  11988. });
  11989. //! moment.js locale configuration
  11990. //! locale : Thai [th]
  11991. //! author : Kridsada Thanabulpong : https://github.com/sirn
  11992. hooks.defineLocale('th', {
  11993. months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
  11994. monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),
  11995. monthsParseExact: true,
  11996. weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
  11997. weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
  11998. weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
  11999. weekdaysParseExact : true,
  12000. longDateFormat : {
  12001. LT : 'H:mm',
  12002. LTS : 'H:mm:ss',
  12003. L : 'DD/MM/YYYY',
  12004. LL : 'D MMMM YYYY',
  12005. LLL : 'D MMMM YYYY เวลา H:mm',
  12006. LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'
  12007. },
  12008. meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
  12009. isPM: function (input) {
  12010. return input === 'หลังเที่ยง';
  12011. },
  12012. meridiem : function (hour, minute, isLower) {
  12013. if (hour < 12) {
  12014. return 'ก่อนเที่ยง';
  12015. } else {
  12016. return 'หลังเที่ยง';
  12017. }
  12018. },
  12019. calendar : {
  12020. sameDay : '[วันนี้ เวลา] LT',
  12021. nextDay : '[พรุ่งนี้ เวลา] LT',
  12022. nextWeek : 'dddd[หน้า เวลา] LT',
  12023. lastDay : '[เมื่อวานนี้ เวลา] LT',
  12024. lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
  12025. sameElse : 'L'
  12026. },
  12027. relativeTime : {
  12028. future : 'อีก %s',
  12029. past : '%sที่แล้ว',
  12030. s : 'ไม่กี่วินาที',
  12031. ss : '%d วินาที',
  12032. m : '1 นาที',
  12033. mm : '%d นาที',
  12034. h : '1 ชั่วโมง',
  12035. hh : '%d ชั่วโมง',
  12036. d : '1 วัน',
  12037. dd : '%d วัน',
  12038. M : '1 เดือน',
  12039. MM : '%d เดือน',
  12040. y : '1 ปี',
  12041. yy : '%d ปี'
  12042. }
  12043. });
  12044. //! moment.js locale configuration
  12045. //! locale : Tagalog (Philippines) [tl-ph]
  12046. //! author : Dan Hagman : https://github.com/hagmandan
  12047. hooks.defineLocale('tl-ph', {
  12048. months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
  12049. monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
  12050. weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
  12051. weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
  12052. weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
  12053. longDateFormat : {
  12054. LT : 'HH:mm',
  12055. LTS : 'HH:mm:ss',
  12056. L : 'MM/D/YYYY',
  12057. LL : 'MMMM D, YYYY',
  12058. LLL : 'MMMM D, YYYY HH:mm',
  12059. LLLL : 'dddd, MMMM DD, YYYY HH:mm'
  12060. },
  12061. calendar : {
  12062. sameDay: 'LT [ngayong araw]',
  12063. nextDay: '[Bukas ng] LT',
  12064. nextWeek: 'LT [sa susunod na] dddd',
  12065. lastDay: 'LT [kahapon]',
  12066. lastWeek: 'LT [noong nakaraang] dddd',
  12067. sameElse: 'L'
  12068. },
  12069. relativeTime : {
  12070. future : 'sa loob ng %s',
  12071. past : '%s ang nakalipas',
  12072. s : 'ilang segundo',
  12073. ss : '%d segundo',
  12074. m : 'isang minuto',
  12075. mm : '%d minuto',
  12076. h : 'isang oras',
  12077. hh : '%d oras',
  12078. d : 'isang araw',
  12079. dd : '%d araw',
  12080. M : 'isang buwan',
  12081. MM : '%d buwan',
  12082. y : 'isang taon',
  12083. yy : '%d taon'
  12084. },
  12085. dayOfMonthOrdinalParse: /\d{1,2}/,
  12086. ordinal : function (number) {
  12087. return number;
  12088. },
  12089. week : {
  12090. dow : 1, // Monday is the first day of the week.
  12091. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12092. }
  12093. });
  12094. //! moment.js locale configuration
  12095. //! locale : Klingon [tlh]
  12096. //! author : Dominika Kruk : https://github.com/amaranthrose
  12097. var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
  12098. function translateFuture(output) {
  12099. var time = output;
  12100. time = (output.indexOf('jaj') !== -1) ?
  12101. time.slice(0, -3) + 'leS' :
  12102. (output.indexOf('jar') !== -1) ?
  12103. time.slice(0, -3) + 'waQ' :
  12104. (output.indexOf('DIS') !== -1) ?
  12105. time.slice(0, -3) + 'nem' :
  12106. time + ' pIq';
  12107. return time;
  12108. }
  12109. function translatePast(output) {
  12110. var time = output;
  12111. time = (output.indexOf('jaj') !== -1) ?
  12112. time.slice(0, -3) + 'Hu’' :
  12113. (output.indexOf('jar') !== -1) ?
  12114. time.slice(0, -3) + 'wen' :
  12115. (output.indexOf('DIS') !== -1) ?
  12116. time.slice(0, -3) + 'ben' :
  12117. time + ' ret';
  12118. return time;
  12119. }
  12120. function translate$9(number, withoutSuffix, string, isFuture) {
  12121. var numberNoun = numberAsNoun(number);
  12122. switch (string) {
  12123. case 'ss':
  12124. return numberNoun + ' lup';
  12125. case 'mm':
  12126. return numberNoun + ' tup';
  12127. case 'hh':
  12128. return numberNoun + ' rep';
  12129. case 'dd':
  12130. return numberNoun + ' jaj';
  12131. case 'MM':
  12132. return numberNoun + ' jar';
  12133. case 'yy':
  12134. return numberNoun + ' DIS';
  12135. }
  12136. }
  12137. function numberAsNoun(number) {
  12138. var hundred = Math.floor((number % 1000) / 100),
  12139. ten = Math.floor((number % 100) / 10),
  12140. one = number % 10,
  12141. word = '';
  12142. if (hundred > 0) {
  12143. word += numbersNouns[hundred] + 'vatlh';
  12144. }
  12145. if (ten > 0) {
  12146. word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';
  12147. }
  12148. if (one > 0) {
  12149. word += ((word !== '') ? ' ' : '') + numbersNouns[one];
  12150. }
  12151. return (word === '') ? 'pagh' : word;
  12152. }
  12153. hooks.defineLocale('tlh', {
  12154. months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),
  12155. monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),
  12156. monthsParseExact : true,
  12157. weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
  12158. weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
  12159. weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
  12160. longDateFormat : {
  12161. LT : 'HH:mm',
  12162. LTS : 'HH:mm:ss',
  12163. L : 'DD.MM.YYYY',
  12164. LL : 'D MMMM YYYY',
  12165. LLL : 'D MMMM YYYY HH:mm',
  12166. LLLL : 'dddd, D MMMM YYYY HH:mm'
  12167. },
  12168. calendar : {
  12169. sameDay: '[DaHjaj] LT',
  12170. nextDay: '[wa’leS] LT',
  12171. nextWeek: 'LLL',
  12172. lastDay: '[wa’Hu’] LT',
  12173. lastWeek: 'LLL',
  12174. sameElse: 'L'
  12175. },
  12176. relativeTime : {
  12177. future : translateFuture,
  12178. past : translatePast,
  12179. s : 'puS lup',
  12180. ss : translate$9,
  12181. m : 'wa’ tup',
  12182. mm : translate$9,
  12183. h : 'wa’ rep',
  12184. hh : translate$9,
  12185. d : 'wa’ jaj',
  12186. dd : translate$9,
  12187. M : 'wa’ jar',
  12188. MM : translate$9,
  12189. y : 'wa’ DIS',
  12190. yy : translate$9
  12191. },
  12192. dayOfMonthOrdinalParse: /\d{1,2}\./,
  12193. ordinal : '%d.',
  12194. week : {
  12195. dow : 1, // Monday is the first day of the week.
  12196. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12197. }
  12198. });
  12199. //! moment.js locale configuration
  12200. //! locale : Turkish [tr]
  12201. //! authors : Erhan Gundogan : https://github.com/erhangundogan,
  12202. //! Burak Yiğit Kaya: https://github.com/BYK
  12203. var suffixes$3 = {
  12204. 1: '\'inci',
  12205. 5: '\'inci',
  12206. 8: '\'inci',
  12207. 70: '\'inci',
  12208. 80: '\'inci',
  12209. 2: '\'nci',
  12210. 7: '\'nci',
  12211. 20: '\'nci',
  12212. 50: '\'nci',
  12213. 3: '\'üncü',
  12214. 4: '\'üncü',
  12215. 100: '\'üncü',
  12216. 6: '\'ncı',
  12217. 9: '\'uncu',
  12218. 10: '\'uncu',
  12219. 30: '\'uncu',
  12220. 60: '\'ıncı',
  12221. 90: '\'ıncı'
  12222. };
  12223. hooks.defineLocale('tr', {
  12224. months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
  12225. monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
  12226. weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
  12227. weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
  12228. weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
  12229. longDateFormat : {
  12230. LT : 'HH:mm',
  12231. LTS : 'HH:mm:ss',
  12232. L : 'DD.MM.YYYY',
  12233. LL : 'D MMMM YYYY',
  12234. LLL : 'D MMMM YYYY HH:mm',
  12235. LLLL : 'dddd, D MMMM YYYY HH:mm'
  12236. },
  12237. calendar : {
  12238. sameDay : '[bugün saat] LT',
  12239. nextDay : '[yarın saat] LT',
  12240. nextWeek : '[gelecek] dddd [saat] LT',
  12241. lastDay : '[dün] LT',
  12242. lastWeek : '[geçen] dddd [saat] LT',
  12243. sameElse : 'L'
  12244. },
  12245. relativeTime : {
  12246. future : '%s sonra',
  12247. past : '%s önce',
  12248. s : 'birkaç saniye',
  12249. ss : '%d saniye',
  12250. m : 'bir dakika',
  12251. mm : '%d dakika',
  12252. h : 'bir saat',
  12253. hh : '%d saat',
  12254. d : 'bir gün',
  12255. dd : '%d gün',
  12256. M : 'bir ay',
  12257. MM : '%d ay',
  12258. y : 'bir yıl',
  12259. yy : '%d yıl'
  12260. },
  12261. dayOfMonthOrdinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
  12262. ordinal : function (number) {
  12263. if (number === 0) { // special case for zero
  12264. return number + '\'ıncı';
  12265. }
  12266. var a = number % 10,
  12267. b = number % 100 - a,
  12268. c = number >= 100 ? 100 : null;
  12269. return number + (suffixes$3[a] || suffixes$3[b] || suffixes$3[c]);
  12270. },
  12271. week : {
  12272. dow : 1, // Monday is the first day of the week.
  12273. doy : 7 // The week that contains Jan 1st is the first week of the year.
  12274. }
  12275. });
  12276. //! moment.js locale configuration
  12277. //! locale : Talossan [tzl]
  12278. //! author : Robin van der Vliet : https://github.com/robin0van0der0v
  12279. //! author : Iustì Canun
  12280. // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
  12281. // This is currently too difficult (maybe even impossible) to add.
  12282. hooks.defineLocale('tzl', {
  12283. months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),
  12284. monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
  12285. weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
  12286. weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
  12287. weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
  12288. longDateFormat : {
  12289. LT : 'HH.mm',
  12290. LTS : 'HH.mm.ss',
  12291. L : 'DD.MM.YYYY',
  12292. LL : 'D. MMMM [dallas] YYYY',
  12293. LLL : 'D. MMMM [dallas] YYYY HH.mm',
  12294. LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'
  12295. },
  12296. meridiemParse: /d\'o|d\'a/i,
  12297. isPM : function (input) {
  12298. return 'd\'o' === input.toLowerCase();
  12299. },
  12300. meridiem : function (hours, minutes, isLower) {
  12301. if (hours > 11) {
  12302. return isLower ? 'd\'o' : 'D\'O';
  12303. } else {
  12304. return isLower ? 'd\'a' : 'D\'A';
  12305. }
  12306. },
  12307. calendar : {
  12308. sameDay : '[oxhi à] LT',
  12309. nextDay : '[demà à] LT',
  12310. nextWeek : 'dddd [à] LT',
  12311. lastDay : '[ieiri à] LT',
  12312. lastWeek : '[sür el] dddd [lasteu à] LT',
  12313. sameElse : 'L'
  12314. },
  12315. relativeTime : {
  12316. future : 'osprei %s',
  12317. past : 'ja%s',
  12318. s : processRelativeTime$7,
  12319. ss : processRelativeTime$7,
  12320. m : processRelativeTime$7,
  12321. mm : processRelativeTime$7,
  12322. h : processRelativeTime$7,
  12323. hh : processRelativeTime$7,
  12324. d : processRelativeTime$7,
  12325. dd : processRelativeTime$7,
  12326. M : processRelativeTime$7,
  12327. MM : processRelativeTime$7,
  12328. y : processRelativeTime$7,
  12329. yy : processRelativeTime$7
  12330. },
  12331. dayOfMonthOrdinalParse: /\d{1,2}\./,
  12332. ordinal : '%d.',
  12333. week : {
  12334. dow : 1, // Monday is the first day of the week.
  12335. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12336. }
  12337. });
  12338. function processRelativeTime$7(number, withoutSuffix, key, isFuture) {
  12339. var format = {
  12340. 's': ['viensas secunds', '\'iensas secunds'],
  12341. 'ss': [number + ' secunds', '' + number + ' secunds'],
  12342. 'm': ['\'n míut', '\'iens míut'],
  12343. 'mm': [number + ' míuts', '' + number + ' míuts'],
  12344. 'h': ['\'n þora', '\'iensa þora'],
  12345. 'hh': [number + ' þoras', '' + number + ' þoras'],
  12346. 'd': ['\'n ziua', '\'iensa ziua'],
  12347. 'dd': [number + ' ziuas', '' + number + ' ziuas'],
  12348. 'M': ['\'n mes', '\'iens mes'],
  12349. 'MM': [number + ' mesen', '' + number + ' mesen'],
  12350. 'y': ['\'n ar', '\'iens ar'],
  12351. 'yy': [number + ' ars', '' + number + ' ars']
  12352. };
  12353. return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);
  12354. }
  12355. //! moment.js locale configuration
  12356. //! locale : Central Atlas Tamazight Latin [tzm-latn]
  12357. //! author : Abdel Said : https://github.com/abdelsaid
  12358. hooks.defineLocale('tzm-latn', {
  12359. months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  12360. monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  12361. weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  12362. weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  12363. weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  12364. longDateFormat : {
  12365. LT : 'HH:mm',
  12366. LTS : 'HH:mm:ss',
  12367. L : 'DD/MM/YYYY',
  12368. LL : 'D MMMM YYYY',
  12369. LLL : 'D MMMM YYYY HH:mm',
  12370. LLLL : 'dddd D MMMM YYYY HH:mm'
  12371. },
  12372. calendar : {
  12373. sameDay: '[asdkh g] LT',
  12374. nextDay: '[aska g] LT',
  12375. nextWeek: 'dddd [g] LT',
  12376. lastDay: '[assant g] LT',
  12377. lastWeek: 'dddd [g] LT',
  12378. sameElse: 'L'
  12379. },
  12380. relativeTime : {
  12381. future : 'dadkh s yan %s',
  12382. past : 'yan %s',
  12383. s : 'imik',
  12384. ss : '%d imik',
  12385. m : 'minuḍ',
  12386. mm : '%d minuḍ',
  12387. h : 'saɛa',
  12388. hh : '%d tassaɛin',
  12389. d : 'ass',
  12390. dd : '%d ossan',
  12391. M : 'ayowr',
  12392. MM : '%d iyyirn',
  12393. y : 'asgas',
  12394. yy : '%d isgasn'
  12395. },
  12396. week : {
  12397. dow : 6, // Saturday is the first day of the week.
  12398. doy : 12 // The week that contains Jan 1st is the first week of the year.
  12399. }
  12400. });
  12401. //! moment.js locale configuration
  12402. //! locale : Central Atlas Tamazight [tzm]
  12403. //! author : Abdel Said : https://github.com/abdelsaid
  12404. hooks.defineLocale('tzm', {
  12405. months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  12406. monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  12407. weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  12408. weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  12409. weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  12410. longDateFormat : {
  12411. LT : 'HH:mm',
  12412. LTS: 'HH:mm:ss',
  12413. L : 'DD/MM/YYYY',
  12414. LL : 'D MMMM YYYY',
  12415. LLL : 'D MMMM YYYY HH:mm',
  12416. LLLL : 'dddd D MMMM YYYY HH:mm'
  12417. },
  12418. calendar : {
  12419. sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
  12420. nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
  12421. nextWeek: 'dddd [ⴴ] LT',
  12422. lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
  12423. lastWeek: 'dddd [ⴴ] LT',
  12424. sameElse: 'L'
  12425. },
  12426. relativeTime : {
  12427. future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
  12428. past : 'ⵢⴰⵏ %s',
  12429. s : 'ⵉⵎⵉⴽ',
  12430. ss : '%d ⵉⵎⵉⴽ',
  12431. m : 'ⵎⵉⵏⵓⴺ',
  12432. mm : '%d ⵎⵉⵏⵓⴺ',
  12433. h : 'ⵙⴰⵄⴰ',
  12434. hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
  12435. d : 'ⴰⵙⵙ',
  12436. dd : '%d oⵙⵙⴰⵏ',
  12437. M : 'ⴰⵢoⵓⵔ',
  12438. MM : '%d ⵉⵢⵢⵉⵔⵏ',
  12439. y : 'ⴰⵙⴳⴰⵙ',
  12440. yy : '%d ⵉⵙⴳⴰⵙⵏ'
  12441. },
  12442. week : {
  12443. dow : 6, // Saturday is the first day of the week.
  12444. doy : 12 // The week that contains Jan 1st is the first week of the year.
  12445. }
  12446. });
  12447. //! moment.js locale configuration
  12448. //! locale : Ukrainian [uk]
  12449. //! author : zemlanin : https://github.com/zemlanin
  12450. //! Author : Menelion Elensúle : https://github.com/Oire
  12451. function plural$6(word, num) {
  12452. var forms = word.split('_');
  12453. return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
  12454. }
  12455. function relativeTimeWithPlural$4(number, withoutSuffix, key) {
  12456. var format = {
  12457. 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
  12458. 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
  12459. 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
  12460. 'dd': 'день_дні_днів',
  12461. 'MM': 'місяць_місяці_місяців',
  12462. 'yy': 'рік_роки_років'
  12463. };
  12464. if (key === 'm') {
  12465. return withoutSuffix ? 'хвилина' : 'хвилину';
  12466. }
  12467. else if (key === 'h') {
  12468. return withoutSuffix ? 'година' : 'годину';
  12469. }
  12470. else {
  12471. return number + ' ' + plural$6(format[key], +number);
  12472. }
  12473. }
  12474. function weekdaysCaseReplace(m, format) {
  12475. var weekdays = {
  12476. 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
  12477. 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
  12478. 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
  12479. };
  12480. if (!m) {
  12481. return weekdays['nominative'];
  12482. }
  12483. var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
  12484. 'accusative' :
  12485. ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
  12486. 'genitive' :
  12487. 'nominative');
  12488. return weekdays[nounCase][m.day()];
  12489. }
  12490. function processHoursFunction(str) {
  12491. return function () {
  12492. return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
  12493. };
  12494. }
  12495. hooks.defineLocale('uk', {
  12496. months : {
  12497. 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),
  12498. 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')
  12499. },
  12500. monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
  12501. weekdays : weekdaysCaseReplace,
  12502. weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  12503. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  12504. longDateFormat : {
  12505. LT : 'HH:mm',
  12506. LTS : 'HH:mm:ss',
  12507. L : 'DD.MM.YYYY',
  12508. LL : 'D MMMM YYYY р.',
  12509. LLL : 'D MMMM YYYY р., HH:mm',
  12510. LLLL : 'dddd, D MMMM YYYY р., HH:mm'
  12511. },
  12512. calendar : {
  12513. sameDay: processHoursFunction('[Сьогодні '),
  12514. nextDay: processHoursFunction('[Завтра '),
  12515. lastDay: processHoursFunction('[Вчора '),
  12516. nextWeek: processHoursFunction('[У] dddd ['),
  12517. lastWeek: function () {
  12518. switch (this.day()) {
  12519. case 0:
  12520. case 3:
  12521. case 5:
  12522. case 6:
  12523. return processHoursFunction('[Минулої] dddd [').call(this);
  12524. case 1:
  12525. case 2:
  12526. case 4:
  12527. return processHoursFunction('[Минулого] dddd [').call(this);
  12528. }
  12529. },
  12530. sameElse: 'L'
  12531. },
  12532. relativeTime : {
  12533. future : 'за %s',
  12534. past : '%s тому',
  12535. s : 'декілька секунд',
  12536. ss : relativeTimeWithPlural$4,
  12537. m : relativeTimeWithPlural$4,
  12538. mm : relativeTimeWithPlural$4,
  12539. h : 'годину',
  12540. hh : relativeTimeWithPlural$4,
  12541. d : 'день',
  12542. dd : relativeTimeWithPlural$4,
  12543. M : 'місяць',
  12544. MM : relativeTimeWithPlural$4,
  12545. y : 'рік',
  12546. yy : relativeTimeWithPlural$4
  12547. },
  12548. // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
  12549. meridiemParse: /ночі|ранку|дня|вечора/,
  12550. isPM: function (input) {
  12551. return /^(дня|вечора)$/.test(input);
  12552. },
  12553. meridiem : function (hour, minute, isLower) {
  12554. if (hour < 4) {
  12555. return 'ночі';
  12556. } else if (hour < 12) {
  12557. return 'ранку';
  12558. } else if (hour < 17) {
  12559. return 'дня';
  12560. } else {
  12561. return 'вечора';
  12562. }
  12563. },
  12564. dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
  12565. ordinal: function (number, period) {
  12566. switch (period) {
  12567. case 'M':
  12568. case 'd':
  12569. case 'DDD':
  12570. case 'w':
  12571. case 'W':
  12572. return number + '-й';
  12573. case 'D':
  12574. return number + '-го';
  12575. default:
  12576. return number;
  12577. }
  12578. },
  12579. week : {
  12580. dow : 1, // Monday is the first day of the week.
  12581. doy : 7 // The week that contains Jan 1st is the first week of the year.
  12582. }
  12583. });
  12584. //! moment.js locale configuration
  12585. //! locale : Urdu [ur]
  12586. //! author : Sawood Alam : https://github.com/ibnesayeed
  12587. //! author : Zack : https://github.com/ZackVision
  12588. var months$8 = [
  12589. 'جنوری',
  12590. 'فروری',
  12591. 'مارچ',
  12592. 'اپریل',
  12593. 'مئی',
  12594. 'جون',
  12595. 'جولائی',
  12596. 'اگست',
  12597. 'ستمبر',
  12598. 'اکتوبر',
  12599. 'نومبر',
  12600. 'دسمبر'
  12601. ];
  12602. var days$2 = [
  12603. 'اتوار',
  12604. 'پیر',
  12605. 'منگل',
  12606. 'بدھ',
  12607. 'جمعرات',
  12608. 'جمعہ',
  12609. 'ہفتہ'
  12610. ];
  12611. hooks.defineLocale('ur', {
  12612. months : months$8,
  12613. monthsShort : months$8,
  12614. weekdays : days$2,
  12615. weekdaysShort : days$2,
  12616. weekdaysMin : days$2,
  12617. longDateFormat : {
  12618. LT : 'HH:mm',
  12619. LTS : 'HH:mm:ss',
  12620. L : 'DD/MM/YYYY',
  12621. LL : 'D MMMM YYYY',
  12622. LLL : 'D MMMM YYYY HH:mm',
  12623. LLLL : 'dddd، D MMMM YYYY HH:mm'
  12624. },
  12625. meridiemParse: /صبح|شام/,
  12626. isPM : function (input) {
  12627. return 'شام' === input;
  12628. },
  12629. meridiem : function (hour, minute, isLower) {
  12630. if (hour < 12) {
  12631. return 'صبح';
  12632. }
  12633. return 'شام';
  12634. },
  12635. calendar : {
  12636. sameDay : '[آج بوقت] LT',
  12637. nextDay : '[کل بوقت] LT',
  12638. nextWeek : 'dddd [بوقت] LT',
  12639. lastDay : '[گذشتہ روز بوقت] LT',
  12640. lastWeek : '[گذشتہ] dddd [بوقت] LT',
  12641. sameElse : 'L'
  12642. },
  12643. relativeTime : {
  12644. future : '%s بعد',
  12645. past : '%s قبل',
  12646. s : 'چند سیکنڈ',
  12647. ss : '%d سیکنڈ',
  12648. m : 'ایک منٹ',
  12649. mm : '%d منٹ',
  12650. h : 'ایک گھنٹہ',
  12651. hh : '%d گھنٹے',
  12652. d : 'ایک دن',
  12653. dd : '%d دن',
  12654. M : 'ایک ماہ',
  12655. MM : '%d ماہ',
  12656. y : 'ایک سال',
  12657. yy : '%d سال'
  12658. },
  12659. preparse: function (string) {
  12660. return string.replace(/،/g, ',');
  12661. },
  12662. postformat: function (string) {
  12663. return string.replace(/,/g, '،');
  12664. },
  12665. week : {
  12666. dow : 1, // Monday is the first day of the week.
  12667. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12668. }
  12669. });
  12670. //! moment.js locale configuration
  12671. //! locale : Uzbek Latin [uz-latn]
  12672. //! author : Rasulbek Mirzayev : github.com/Rasulbeeek
  12673. hooks.defineLocale('uz-latn', {
  12674. months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),
  12675. monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
  12676. weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),
  12677. weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
  12678. weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
  12679. longDateFormat : {
  12680. LT : 'HH:mm',
  12681. LTS : 'HH:mm:ss',
  12682. L : 'DD/MM/YYYY',
  12683. LL : 'D MMMM YYYY',
  12684. LLL : 'D MMMM YYYY HH:mm',
  12685. LLLL : 'D MMMM YYYY, dddd HH:mm'
  12686. },
  12687. calendar : {
  12688. sameDay : '[Bugun soat] LT [da]',
  12689. nextDay : '[Ertaga] LT [da]',
  12690. nextWeek : 'dddd [kuni soat] LT [da]',
  12691. lastDay : '[Kecha soat] LT [da]',
  12692. lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]',
  12693. sameElse : 'L'
  12694. },
  12695. relativeTime : {
  12696. future : 'Yaqin %s ichida',
  12697. past : 'Bir necha %s oldin',
  12698. s : 'soniya',
  12699. ss : '%d soniya',
  12700. m : 'bir daqiqa',
  12701. mm : '%d daqiqa',
  12702. h : 'bir soat',
  12703. hh : '%d soat',
  12704. d : 'bir kun',
  12705. dd : '%d kun',
  12706. M : 'bir oy',
  12707. MM : '%d oy',
  12708. y : 'bir yil',
  12709. yy : '%d yil'
  12710. },
  12711. week : {
  12712. dow : 1, // Monday is the first day of the week.
  12713. doy : 7 // The week that contains Jan 1st is the first week of the year.
  12714. }
  12715. });
  12716. //! moment.js locale configuration
  12717. //! locale : Uzbek [uz]
  12718. //! author : Sardor Muminov : https://github.com/muminoff
  12719. hooks.defineLocale('uz', {
  12720. months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),
  12721. monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
  12722. weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
  12723. weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
  12724. weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
  12725. longDateFormat : {
  12726. LT : 'HH:mm',
  12727. LTS : 'HH:mm:ss',
  12728. L : 'DD/MM/YYYY',
  12729. LL : 'D MMMM YYYY',
  12730. LLL : 'D MMMM YYYY HH:mm',
  12731. LLLL : 'D MMMM YYYY, dddd HH:mm'
  12732. },
  12733. calendar : {
  12734. sameDay : '[Бугун соат] LT [да]',
  12735. nextDay : '[Эртага] LT [да]',
  12736. nextWeek : 'dddd [куни соат] LT [да]',
  12737. lastDay : '[Кеча соат] LT [да]',
  12738. lastWeek : '[Утган] dddd [куни соат] LT [да]',
  12739. sameElse : 'L'
  12740. },
  12741. relativeTime : {
  12742. future : 'Якин %s ичида',
  12743. past : 'Бир неча %s олдин',
  12744. s : 'фурсат',
  12745. ss : '%d фурсат',
  12746. m : 'бир дакика',
  12747. mm : '%d дакика',
  12748. h : 'бир соат',
  12749. hh : '%d соат',
  12750. d : 'бир кун',
  12751. dd : '%d кун',
  12752. M : 'бир ой',
  12753. MM : '%d ой',
  12754. y : 'бир йил',
  12755. yy : '%d йил'
  12756. },
  12757. week : {
  12758. dow : 1, // Monday is the first day of the week.
  12759. doy : 7 // The week that contains Jan 4th is the first week of the year.
  12760. }
  12761. });
  12762. //! moment.js locale configuration
  12763. //! locale : Vietnamese [vi]
  12764. //! author : Bang Nguyen : https://github.com/bangnk
  12765. hooks.defineLocale('vi', {
  12766. months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),
  12767. monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
  12768. monthsParseExact : true,
  12769. weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
  12770. weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  12771. weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  12772. weekdaysParseExact : true,
  12773. meridiemParse: /sa|ch/i,
  12774. isPM : function (input) {
  12775. return /^ch$/i.test(input);
  12776. },
  12777. meridiem : function (hours, minutes, isLower) {
  12778. if (hours < 12) {
  12779. return isLower ? 'sa' : 'SA';
  12780. } else {
  12781. return isLower ? 'ch' : 'CH';
  12782. }
  12783. },
  12784. longDateFormat : {
  12785. LT : 'HH:mm',
  12786. LTS : 'HH:mm:ss',
  12787. L : 'DD/MM/YYYY',
  12788. LL : 'D MMMM [năm] YYYY',
  12789. LLL : 'D MMMM [năm] YYYY HH:mm',
  12790. LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',
  12791. l : 'DD/M/YYYY',
  12792. ll : 'D MMM YYYY',
  12793. lll : 'D MMM YYYY HH:mm',
  12794. llll : 'ddd, D MMM YYYY HH:mm'
  12795. },
  12796. calendar : {
  12797. sameDay: '[Hôm nay lúc] LT',
  12798. nextDay: '[Ngày mai lúc] LT',
  12799. nextWeek: 'dddd [tuần tới lúc] LT',
  12800. lastDay: '[Hôm qua lúc] LT',
  12801. lastWeek: 'dddd [tuần rồi lúc] LT',
  12802. sameElse: 'L'
  12803. },
  12804. relativeTime : {
  12805. future : '%s tới',
  12806. past : '%s trước',
  12807. s : 'vài giây',
  12808. ss : '%d giây' ,
  12809. m : 'một phút',
  12810. mm : '%d phút',
  12811. h : 'một giờ',
  12812. hh : '%d giờ',
  12813. d : 'một ngày',
  12814. dd : '%d ngày',
  12815. M : 'một tháng',
  12816. MM : '%d tháng',
  12817. y : 'một năm',
  12818. yy : '%d năm'
  12819. },
  12820. dayOfMonthOrdinalParse: /\d{1,2}/,
  12821. ordinal : function (number) {
  12822. return number;
  12823. },
  12824. week : {
  12825. dow : 1, // Monday is the first day of the week.
  12826. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12827. }
  12828. });
  12829. //! moment.js locale configuration
  12830. //! locale : Pseudo [x-pseudo]
  12831. //! author : Andrew Hood : https://github.com/andrewhood125
  12832. hooks.defineLocale('x-pseudo', {
  12833. months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),
  12834. monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),
  12835. monthsParseExact : true,
  12836. weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),
  12837. weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
  12838. weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
  12839. weekdaysParseExact : true,
  12840. longDateFormat : {
  12841. LT : 'HH:mm',
  12842. L : 'DD/MM/YYYY',
  12843. LL : 'D MMMM YYYY',
  12844. LLL : 'D MMMM YYYY HH:mm',
  12845. LLLL : 'dddd, D MMMM YYYY HH:mm'
  12846. },
  12847. calendar : {
  12848. sameDay : '[T~ódá~ý át] LT',
  12849. nextDay : '[T~ómó~rró~w át] LT',
  12850. nextWeek : 'dddd [át] LT',
  12851. lastDay : '[Ý~ést~érdá~ý át] LT',
  12852. lastWeek : '[L~ást] dddd [át] LT',
  12853. sameElse : 'L'
  12854. },
  12855. relativeTime : {
  12856. future : 'í~ñ %s',
  12857. past : '%s á~gó',
  12858. s : 'á ~féw ~sécó~ñds',
  12859. ss : '%d s~écóñ~ds',
  12860. m : 'á ~míñ~úté',
  12861. mm : '%d m~íñú~tés',
  12862. h : 'á~ñ hó~úr',
  12863. hh : '%d h~óúrs',
  12864. d : 'á ~dáý',
  12865. dd : '%d d~áýs',
  12866. M : 'á ~móñ~th',
  12867. MM : '%d m~óñt~hs',
  12868. y : 'á ~ýéár',
  12869. yy : '%d ý~éárs'
  12870. },
  12871. dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
  12872. ordinal : function (number) {
  12873. var b = number % 10,
  12874. output = (~~(number % 100 / 10) === 1) ? 'th' :
  12875. (b === 1) ? 'st' :
  12876. (b === 2) ? 'nd' :
  12877. (b === 3) ? 'rd' : 'th';
  12878. return number + output;
  12879. },
  12880. week : {
  12881. dow : 1, // Monday is the first day of the week.
  12882. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12883. }
  12884. });
  12885. //! moment.js locale configuration
  12886. //! locale : Yoruba Nigeria [yo]
  12887. //! author : Atolagbe Abisoye : https://github.com/andela-batolagbe
  12888. hooks.defineLocale('yo', {
  12889. months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),
  12890. monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
  12891. weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
  12892. weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
  12893. weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
  12894. longDateFormat : {
  12895. LT : 'h:mm A',
  12896. LTS : 'h:mm:ss A',
  12897. L : 'DD/MM/YYYY',
  12898. LL : 'D MMMM YYYY',
  12899. LLL : 'D MMMM YYYY h:mm A',
  12900. LLLL : 'dddd, D MMMM YYYY h:mm A'
  12901. },
  12902. calendar : {
  12903. sameDay : '[Ònì ni] LT',
  12904. nextDay : '[Ọ̀la ni] LT',
  12905. nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
  12906. lastDay : '[Àna ni] LT',
  12907. lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
  12908. sameElse : 'L'
  12909. },
  12910. relativeTime : {
  12911. future : 'ní %s',
  12912. past : '%s kọjá',
  12913. s : 'ìsẹjú aayá die',
  12914. ss :'aayá %d',
  12915. m : 'ìsẹjú kan',
  12916. mm : 'ìsẹjú %d',
  12917. h : 'wákati kan',
  12918. hh : 'wákati %d',
  12919. d : 'ọjọ́ kan',
  12920. dd : 'ọjọ́ %d',
  12921. M : 'osù kan',
  12922. MM : 'osù %d',
  12923. y : 'ọdún kan',
  12924. yy : 'ọdún %d'
  12925. },
  12926. dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/,
  12927. ordinal : 'ọjọ́ %d',
  12928. week : {
  12929. dow : 1, // Monday is the first day of the week.
  12930. doy : 4 // The week that contains Jan 4th is the first week of the year.
  12931. }
  12932. });
  12933. //! moment.js locale configuration
  12934. //! locale : Chinese (China) [zh-cn]
  12935. //! author : suupic : https://github.com/suupic
  12936. //! author : Zeno Zeng : https://github.com/zenozeng
  12937. hooks.defineLocale('zh-cn', {
  12938. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  12939. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  12940. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  12941. weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
  12942. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  12943. longDateFormat : {
  12944. LT : 'HH:mm',
  12945. LTS : 'HH:mm:ss',
  12946. L : 'YYYY/MM/DD',
  12947. LL : 'YYYY年M月D日',
  12948. LLL : 'YYYY年M月D日Ah点mm分',
  12949. LLLL : 'YYYY年M月D日ddddAh点mm分',
  12950. l : 'YYYY/M/D',
  12951. ll : 'YYYY年M月D日',
  12952. lll : 'YYYY年M月D日 HH:mm',
  12953. llll : 'YYYY年M月D日dddd HH:mm'
  12954. },
  12955. meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  12956. meridiemHour: function (hour, meridiem) {
  12957. if (hour === 12) {
  12958. hour = 0;
  12959. }
  12960. if (meridiem === '凌晨' || meridiem === '早上' ||
  12961. meridiem === '上午') {
  12962. return hour;
  12963. } else if (meridiem === '下午' || meridiem === '晚上') {
  12964. return hour + 12;
  12965. } else {
  12966. // '中午'
  12967. return hour >= 11 ? hour : hour + 12;
  12968. }
  12969. },
  12970. meridiem : function (hour, minute, isLower) {
  12971. var hm = hour * 100 + minute;
  12972. if (hm < 600) {
  12973. return '凌晨';
  12974. } else if (hm < 900) {
  12975. return '早上';
  12976. } else if (hm < 1130) {
  12977. return '上午';
  12978. } else if (hm < 1230) {
  12979. return '中午';
  12980. } else if (hm < 1800) {
  12981. return '下午';
  12982. } else {
  12983. return '晚上';
  12984. }
  12985. },
  12986. calendar : {
  12987. sameDay : '[今天]LT',
  12988. nextDay : '[明天]LT',
  12989. nextWeek : '[下]ddddLT',
  12990. lastDay : '[昨天]LT',
  12991. lastWeek : '[上]ddddLT',
  12992. sameElse : 'L'
  12993. },
  12994. dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
  12995. ordinal : function (number, period) {
  12996. switch (period) {
  12997. case 'd':
  12998. case 'D':
  12999. case 'DDD':
  13000. return number + '日';
  13001. case 'M':
  13002. return number + '月';
  13003. case 'w':
  13004. case 'W':
  13005. return number + '周';
  13006. default:
  13007. return number;
  13008. }
  13009. },
  13010. relativeTime : {
  13011. future : '%s内',
  13012. past : '%s前',
  13013. s : '几秒',
  13014. ss : '%d 秒',
  13015. m : '1 分钟',
  13016. mm : '%d 分钟',
  13017. h : '1 小时',
  13018. hh : '%d 小时',
  13019. d : '1 天',
  13020. dd : '%d 天',
  13021. M : '1 个月',
  13022. MM : '%d 个月',
  13023. y : '1 年',
  13024. yy : '%d 年'
  13025. },
  13026. week : {
  13027. // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
  13028. dow : 1, // Monday is the first day of the week.
  13029. doy : 4 // The week that contains Jan 4th is the first week of the year.
  13030. }
  13031. });
  13032. //! moment.js locale configuration
  13033. //! locale : Chinese (Hong Kong) [zh-hk]
  13034. //! author : Ben : https://github.com/ben-lin
  13035. //! author : Chris Lam : https://github.com/hehachris
  13036. //! author : Konstantin : https://github.com/skfd
  13037. hooks.defineLocale('zh-hk', {
  13038. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  13039. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  13040. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  13041. weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
  13042. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  13043. longDateFormat : {
  13044. LT : 'HH:mm',
  13045. LTS : 'HH:mm:ss',
  13046. L : 'YYYY/MM/DD',
  13047. LL : 'YYYY年M月D日',
  13048. LLL : 'YYYY年M月D日 HH:mm',
  13049. LLLL : 'YYYY年M月D日dddd HH:mm',
  13050. l : 'YYYY/M/D',
  13051. ll : 'YYYY年M月D日',
  13052. lll : 'YYYY年M月D日 HH:mm',
  13053. llll : 'YYYY年M月D日dddd HH:mm'
  13054. },
  13055. meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  13056. meridiemHour : function (hour, meridiem) {
  13057. if (hour === 12) {
  13058. hour = 0;
  13059. }
  13060. if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
  13061. return hour;
  13062. } else if (meridiem === '中午') {
  13063. return hour >= 11 ? hour : hour + 12;
  13064. } else if (meridiem === '下午' || meridiem === '晚上') {
  13065. return hour + 12;
  13066. }
  13067. },
  13068. meridiem : function (hour, minute, isLower) {
  13069. var hm = hour * 100 + minute;
  13070. if (hm < 600) {
  13071. return '凌晨';
  13072. } else if (hm < 900) {
  13073. return '早上';
  13074. } else if (hm < 1130) {
  13075. return '上午';
  13076. } else if (hm < 1230) {
  13077. return '中午';
  13078. } else if (hm < 1800) {
  13079. return '下午';
  13080. } else {
  13081. return '晚上';
  13082. }
  13083. },
  13084. calendar : {
  13085. sameDay : '[今天]LT',
  13086. nextDay : '[明天]LT',
  13087. nextWeek : '[下]ddddLT',
  13088. lastDay : '[昨天]LT',
  13089. lastWeek : '[上]ddddLT',
  13090. sameElse : 'L'
  13091. },
  13092. dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
  13093. ordinal : function (number, period) {
  13094. switch (period) {
  13095. case 'd' :
  13096. case 'D' :
  13097. case 'DDD' :
  13098. return number + '日';
  13099. case 'M' :
  13100. return number + '月';
  13101. case 'w' :
  13102. case 'W' :
  13103. return number + '週';
  13104. default :
  13105. return number;
  13106. }
  13107. },
  13108. relativeTime : {
  13109. future : '%s內',
  13110. past : '%s前',
  13111. s : '幾秒',
  13112. ss : '%d 秒',
  13113. m : '1 分鐘',
  13114. mm : '%d 分鐘',
  13115. h : '1 小時',
  13116. hh : '%d 小時',
  13117. d : '1 天',
  13118. dd : '%d 天',
  13119. M : '1 個月',
  13120. MM : '%d 個月',
  13121. y : '1 年',
  13122. yy : '%d 年'
  13123. }
  13124. });
  13125. //! moment.js locale configuration
  13126. //! locale : Chinese (Taiwan) [zh-tw]
  13127. //! author : Ben : https://github.com/ben-lin
  13128. //! author : Chris Lam : https://github.com/hehachris
  13129. hooks.defineLocale('zh-tw', {
  13130. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  13131. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  13132. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  13133. weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
  13134. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  13135. longDateFormat : {
  13136. LT : 'HH:mm',
  13137. LTS : 'HH:mm:ss',
  13138. L : 'YYYY/MM/DD',
  13139. LL : 'YYYY年M月D日',
  13140. LLL : 'YYYY年M月D日 HH:mm',
  13141. LLLL : 'YYYY年M月D日dddd HH:mm',
  13142. l : 'YYYY/M/D',
  13143. ll : 'YYYY年M月D日',
  13144. lll : 'YYYY年M月D日 HH:mm',
  13145. llll : 'YYYY年M月D日dddd HH:mm'
  13146. },
  13147. meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  13148. meridiemHour : function (hour, meridiem) {
  13149. if (hour === 12) {
  13150. hour = 0;
  13151. }
  13152. if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
  13153. return hour;
  13154. } else if (meridiem === '中午') {
  13155. return hour >= 11 ? hour : hour + 12;
  13156. } else if (meridiem === '下午' || meridiem === '晚上') {
  13157. return hour + 12;
  13158. }
  13159. },
  13160. meridiem : function (hour, minute, isLower) {
  13161. var hm = hour * 100 + minute;
  13162. if (hm < 600) {
  13163. return '凌晨';
  13164. } else if (hm < 900) {
  13165. return '早上';
  13166. } else if (hm < 1130) {
  13167. return '上午';
  13168. } else if (hm < 1230) {
  13169. return '中午';
  13170. } else if (hm < 1800) {
  13171. return '下午';
  13172. } else {
  13173. return '晚上';
  13174. }
  13175. },
  13176. calendar : {
  13177. sameDay : '[今天]LT',
  13178. nextDay : '[明天]LT',
  13179. nextWeek : '[下]ddddLT',
  13180. lastDay : '[昨天]LT',
  13181. lastWeek : '[上]ddddLT',
  13182. sameElse : 'L'
  13183. },
  13184. dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
  13185. ordinal : function (number, period) {
  13186. switch (period) {
  13187. case 'd' :
  13188. case 'D' :
  13189. case 'DDD' :
  13190. return number + '日';
  13191. case 'M' :
  13192. return number + '月';
  13193. case 'w' :
  13194. case 'W' :
  13195. return number + '週';
  13196. default :
  13197. return number;
  13198. }
  13199. },
  13200. relativeTime : {
  13201. future : '%s內',
  13202. past : '%s前',
  13203. s : '幾秒',
  13204. ss : '%d 秒',
  13205. m : '1 分鐘',
  13206. mm : '%d 分鐘',
  13207. h : '1 小時',
  13208. hh : '%d 小時',
  13209. d : '1 天',
  13210. dd : '%d 天',
  13211. M : '1 個月',
  13212. MM : '%d 個月',
  13213. y : '1 年',
  13214. yy : '%d 年'
  13215. }
  13216. });
  13217. hooks.locale('en');
  13218. return hooks;
  13219. })));