moment.js 327 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394
  1. //! moment.js
  2. //! version : 2.8.4
  3. //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
  4. //! license : MIT
  5. //! momentjs.com
  6. (function (undefined) {
  7. /************************************
  8. Constants
  9. ************************************/
  10. var moment,
  11. VERSION = '2.8.4',
  12. // the global-scope this is NOT the global object in Node.js
  13. globalScope = typeof global !== 'undefined' ? global : this,
  14. oldGlobalMoment,
  15. round = Math.round,
  16. hasOwnProperty = Object.prototype.hasOwnProperty,
  17. i,
  18. YEAR = 0,
  19. MONTH = 1,
  20. DATE = 2,
  21. HOUR = 3,
  22. MINUTE = 4,
  23. SECOND = 5,
  24. MILLISECOND = 6,
  25. // internal storage for locale config files
  26. locales = {},
  27. // extra moment internal properties (plugins register props here)
  28. momentProperties = [],
  29. // check for nodeJS
  30. hasModule = (typeof module !== 'undefined' && module && module.exports),
  31. // ASP.NET json date format regex
  32. aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
  33. aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
  34. // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
  35. // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
  36. isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
  37. // format tokens
  38. formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,
  39. localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
  40. // parsing token regexes
  41. parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
  42. parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
  43. parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999
  44. parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
  45. parseTokenDigits = /\d+/, // nonzero number of digits
  46. parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
  47. parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
  48. parseTokenT = /T/i, // T (ISO separator)
  49. parseTokenOffsetMs = /[\+\-]?\d+/, // 1234567890123
  50. parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
  51. //strict parsing regexes
  52. parseTokenOneDigit = /\d/, // 0 - 9
  53. parseTokenTwoDigits = /\d\d/, // 00 - 99
  54. parseTokenThreeDigits = /\d{3}/, // 000 - 999
  55. parseTokenFourDigits = /\d{4}/, // 0000 - 9999
  56. parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999
  57. parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf
  58. // iso 8601 regex
  59. // 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)
  60. isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
  61. isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
  62. isoDates = [
  63. ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
  64. ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
  65. ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
  66. ['GGGG-[W]WW', /\d{4}-W\d{2}/],
  67. ['YYYY-DDD', /\d{4}-\d{3}/]
  68. ],
  69. // iso time formats and regexes
  70. isoTimes = [
  71. ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/],
  72. ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
  73. ['HH:mm', /(T| )\d\d:\d\d/],
  74. ['HH', /(T| )\d\d/]
  75. ],
  76. // timezone chunker '+10:00' > ['10', '00'] or '-1530' > ['-15', '30']
  77. parseTimezoneChunker = /([\+\-]|\d\d)/gi,
  78. // getter and setter names
  79. proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
  80. unitMillisecondFactors = {
  81. 'Milliseconds' : 1,
  82. 'Seconds' : 1e3,
  83. 'Minutes' : 6e4,
  84. 'Hours' : 36e5,
  85. 'Days' : 864e5,
  86. 'Months' : 2592e6,
  87. 'Years' : 31536e6
  88. },
  89. unitAliases = {
  90. ms : 'millisecond',
  91. s : 'second',
  92. m : 'minute',
  93. h : 'hour',
  94. d : 'day',
  95. D : 'date',
  96. w : 'week',
  97. W : 'isoWeek',
  98. M : 'month',
  99. Q : 'quarter',
  100. y : 'year',
  101. DDD : 'dayOfYear',
  102. e : 'weekday',
  103. E : 'isoWeekday',
  104. gg: 'weekYear',
  105. GG: 'isoWeekYear'
  106. },
  107. camelFunctions = {
  108. dayofyear : 'dayOfYear',
  109. isoweekday : 'isoWeekday',
  110. isoweek : 'isoWeek',
  111. weekyear : 'weekYear',
  112. isoweekyear : 'isoWeekYear'
  113. },
  114. // format function strings
  115. formatFunctions = {},
  116. // default relative time thresholds
  117. relativeTimeThresholds = {
  118. s: 45, // seconds to minute
  119. m: 45, // minutes to hour
  120. h: 22, // hours to day
  121. d: 26, // days to month
  122. M: 11 // months to year
  123. },
  124. // tokens to ordinalize and pad
  125. ordinalizeTokens = 'DDD w W M D d'.split(' '),
  126. paddedTokens = 'M D H h m s w W'.split(' '),
  127. formatTokenFunctions = {
  128. M : function () {
  129. return this.month() + 1;
  130. },
  131. MMM : function (format) {
  132. return this.localeData().monthsShort(this, format);
  133. },
  134. MMMM : function (format) {
  135. return this.localeData().months(this, format);
  136. },
  137. D : function () {
  138. return this.date();
  139. },
  140. DDD : function () {
  141. return this.dayOfYear();
  142. },
  143. d : function () {
  144. return this.day();
  145. },
  146. dd : function (format) {
  147. return this.localeData().weekdaysMin(this, format);
  148. },
  149. ddd : function (format) {
  150. return this.localeData().weekdaysShort(this, format);
  151. },
  152. dddd : function (format) {
  153. return this.localeData().weekdays(this, format);
  154. },
  155. w : function () {
  156. return this.week();
  157. },
  158. W : function () {
  159. return this.isoWeek();
  160. },
  161. YY : function () {
  162. return leftZeroFill(this.year() % 100, 2);
  163. },
  164. YYYY : function () {
  165. return leftZeroFill(this.year(), 4);
  166. },
  167. YYYYY : function () {
  168. return leftZeroFill(this.year(), 5);
  169. },
  170. YYYYYY : function () {
  171. var y = this.year(), sign = y >= 0 ? '+' : '-';
  172. return sign + leftZeroFill(Math.abs(y), 6);
  173. },
  174. gg : function () {
  175. return leftZeroFill(this.weekYear() % 100, 2);
  176. },
  177. gggg : function () {
  178. return leftZeroFill(this.weekYear(), 4);
  179. },
  180. ggggg : function () {
  181. return leftZeroFill(this.weekYear(), 5);
  182. },
  183. GG : function () {
  184. return leftZeroFill(this.isoWeekYear() % 100, 2);
  185. },
  186. GGGG : function () {
  187. return leftZeroFill(this.isoWeekYear(), 4);
  188. },
  189. GGGGG : function () {
  190. return leftZeroFill(this.isoWeekYear(), 5);
  191. },
  192. e : function () {
  193. return this.weekday();
  194. },
  195. E : function () {
  196. return this.isoWeekday();
  197. },
  198. a : function () {
  199. return this.localeData().meridiem(this.hours(), this.minutes(), true);
  200. },
  201. A : function () {
  202. return this.localeData().meridiem(this.hours(), this.minutes(), false);
  203. },
  204. H : function () {
  205. return this.hours();
  206. },
  207. h : function () {
  208. return this.hours() % 12 || 12;
  209. },
  210. m : function () {
  211. return this.minutes();
  212. },
  213. s : function () {
  214. return this.seconds();
  215. },
  216. S : function () {
  217. return toInt(this.milliseconds() / 100);
  218. },
  219. SS : function () {
  220. return leftZeroFill(toInt(this.milliseconds() / 10), 2);
  221. },
  222. SSS : function () {
  223. return leftZeroFill(this.milliseconds(), 3);
  224. },
  225. SSSS : function () {
  226. return leftZeroFill(this.milliseconds(), 3);
  227. },
  228. Z : function () {
  229. var a = -this.zone(),
  230. b = '+';
  231. if (a < 0) {
  232. a = -a;
  233. b = '-';
  234. }
  235. return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2);
  236. },
  237. ZZ : function () {
  238. var a = -this.zone(),
  239. b = '+';
  240. if (a < 0) {
  241. a = -a;
  242. b = '-';
  243. }
  244. return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2);
  245. },
  246. z : function () {
  247. return this.zoneAbbr();
  248. },
  249. zz : function () {
  250. return this.zoneName();
  251. },
  252. x : function () {
  253. return this.valueOf();
  254. },
  255. X : function () {
  256. return this.unix();
  257. },
  258. Q : function () {
  259. return this.quarter();
  260. }
  261. },
  262. deprecations = {},
  263. lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'];
  264. // Pick the first defined of two or three arguments. dfl comes from
  265. // default.
  266. function dfl(a, b, c) {
  267. switch (arguments.length) {
  268. case 2: return a != null ? a : b;
  269. case 3: return a != null ? a : b != null ? b : c;
  270. default: throw new Error('Implement me');
  271. }
  272. }
  273. function hasOwnProp(a, b) {
  274. return hasOwnProperty.call(a, b);
  275. }
  276. function defaultParsingFlags() {
  277. // We need to deep clone this object, and es5 standard is not very
  278. // helpful.
  279. return {
  280. empty : false,
  281. unusedTokens : [],
  282. unusedInput : [],
  283. overflow : -2,
  284. charsLeftOver : 0,
  285. nullInput : false,
  286. invalidMonth : null,
  287. invalidFormat : false,
  288. userInvalidated : false,
  289. iso: false
  290. };
  291. }
  292. function printMsg(msg) {
  293. if (moment.suppressDeprecationWarnings === false &&
  294. typeof console !== 'undefined' && console.warn) {
  295. console.warn('Deprecation warning: ' + msg);
  296. }
  297. }
  298. function deprecate(msg, fn) {
  299. var firstTime = true;
  300. return extend(function () {
  301. if (firstTime) {
  302. printMsg(msg);
  303. firstTime = false;
  304. }
  305. return fn.apply(this, arguments);
  306. }, fn);
  307. }
  308. function deprecateSimple(name, msg) {
  309. if (!deprecations[name]) {
  310. printMsg(msg);
  311. deprecations[name] = true;
  312. }
  313. }
  314. function padToken(func, count) {
  315. return function (a) {
  316. return leftZeroFill(func.call(this, a), count);
  317. };
  318. }
  319. function ordinalizeToken(func, period) {
  320. return function (a) {
  321. return this.localeData().ordinal(func.call(this, a), period);
  322. };
  323. }
  324. while (ordinalizeTokens.length) {
  325. i = ordinalizeTokens.pop();
  326. formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i);
  327. }
  328. while (paddedTokens.length) {
  329. i = paddedTokens.pop();
  330. formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2);
  331. }
  332. formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
  333. /************************************
  334. Constructors
  335. ************************************/
  336. function Locale() {
  337. }
  338. // Moment prototype object
  339. function Moment(config, skipOverflow) {
  340. if (skipOverflow !== false) {
  341. checkOverflow(config);
  342. }
  343. copyConfig(this, config);
  344. this._d = new Date(+config._d);
  345. }
  346. // Duration Constructor
  347. function Duration(duration) {
  348. var normalizedInput = normalizeObjectUnits(duration),
  349. years = normalizedInput.year || 0,
  350. quarters = normalizedInput.quarter || 0,
  351. months = normalizedInput.month || 0,
  352. weeks = normalizedInput.week || 0,
  353. days = normalizedInput.day || 0,
  354. hours = normalizedInput.hour || 0,
  355. minutes = normalizedInput.minute || 0,
  356. seconds = normalizedInput.second || 0,
  357. milliseconds = normalizedInput.millisecond || 0;
  358. // representation for dateAddRemove
  359. this._milliseconds = +milliseconds +
  360. seconds * 1e3 + // 1000
  361. minutes * 6e4 + // 1000 * 60
  362. hours * 36e5; // 1000 * 60 * 60
  363. // Because of dateAddRemove treats 24 hours as different from a
  364. // day when working around DST, we need to store them separately
  365. this._days = +days +
  366. weeks * 7;
  367. // It is impossible translate months into days without knowing
  368. // which months you are are talking about, so we have to store
  369. // it separately.
  370. this._months = +months +
  371. quarters * 3 +
  372. years * 12;
  373. this._data = {};
  374. this._locale = moment.localeData();
  375. this._bubble();
  376. }
  377. /************************************
  378. Helpers
  379. ************************************/
  380. function extend(a, b) {
  381. for (var i in b) {
  382. if (hasOwnProp(b, i)) {
  383. a[i] = b[i];
  384. }
  385. }
  386. if (hasOwnProp(b, 'toString')) {
  387. a.toString = b.toString;
  388. }
  389. if (hasOwnProp(b, 'valueOf')) {
  390. a.valueOf = b.valueOf;
  391. }
  392. return a;
  393. }
  394. function copyConfig(to, from) {
  395. var i, prop, val;
  396. if (typeof from._isAMomentObject !== 'undefined') {
  397. to._isAMomentObject = from._isAMomentObject;
  398. }
  399. if (typeof from._i !== 'undefined') {
  400. to._i = from._i;
  401. }
  402. if (typeof from._f !== 'undefined') {
  403. to._f = from._f;
  404. }
  405. if (typeof from._l !== 'undefined') {
  406. to._l = from._l;
  407. }
  408. if (typeof from._strict !== 'undefined') {
  409. to._strict = from._strict;
  410. }
  411. if (typeof from._tzm !== 'undefined') {
  412. to._tzm = from._tzm;
  413. }
  414. if (typeof from._isUTC !== 'undefined') {
  415. to._isUTC = from._isUTC;
  416. }
  417. if (typeof from._offset !== 'undefined') {
  418. to._offset = from._offset;
  419. }
  420. if (typeof from._pf !== 'undefined') {
  421. to._pf = from._pf;
  422. }
  423. if (typeof from._locale !== 'undefined') {
  424. to._locale = from._locale;
  425. }
  426. if (momentProperties.length > 0) {
  427. for (i in momentProperties) {
  428. prop = momentProperties[i];
  429. val = from[prop];
  430. if (typeof val !== 'undefined') {
  431. to[prop] = val;
  432. }
  433. }
  434. }
  435. return to;
  436. }
  437. function absRound(number) {
  438. if (number < 0) {
  439. return Math.ceil(number);
  440. } else {
  441. return Math.floor(number);
  442. }
  443. }
  444. // left zero fill a number
  445. // see http://jsperf.com/left-zero-filling for performance comparison
  446. function leftZeroFill(number, targetLength, forceSign) {
  447. var output = '' + Math.abs(number),
  448. sign = number >= 0;
  449. while (output.length < targetLength) {
  450. output = '0' + output;
  451. }
  452. return (sign ? (forceSign ? '+' : '') : '-') + output;
  453. }
  454. function positiveMomentsDifference(base, other) {
  455. var res = {milliseconds: 0, months: 0};
  456. res.months = other.month() - base.month() +
  457. (other.year() - base.year()) * 12;
  458. if (base.clone().add(res.months, 'M').isAfter(other)) {
  459. --res.months;
  460. }
  461. res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
  462. return res;
  463. }
  464. function momentsDifference(base, other) {
  465. var res;
  466. other = makeAs(other, base);
  467. if (base.isBefore(other)) {
  468. res = positiveMomentsDifference(base, other);
  469. } else {
  470. res = positiveMomentsDifference(other, base);
  471. res.milliseconds = -res.milliseconds;
  472. res.months = -res.months;
  473. }
  474. return res;
  475. }
  476. // TODO: remove 'name' arg after deprecation is removed
  477. function createAdder(direction, name) {
  478. return function (val, period) {
  479. var dur, tmp;
  480. //invert the arguments, but complain about it
  481. if (period !== null && !isNaN(+period)) {
  482. deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');
  483. tmp = val; val = period; period = tmp;
  484. }
  485. val = typeof val === 'string' ? +val : val;
  486. dur = moment.duration(val, period);
  487. addOrSubtractDurationFromMoment(this, dur, direction);
  488. return this;
  489. };
  490. }
  491. function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) {
  492. var milliseconds = duration._milliseconds,
  493. days = duration._days,
  494. months = duration._months;
  495. updateOffset = updateOffset == null ? true : updateOffset;
  496. if (milliseconds) {
  497. mom._d.setTime(+mom._d + milliseconds * isAdding);
  498. }
  499. if (days) {
  500. rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding);
  501. }
  502. if (months) {
  503. rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding);
  504. }
  505. if (updateOffset) {
  506. moment.updateOffset(mom, days || months);
  507. }
  508. }
  509. // check if is an array
  510. function isArray(input) {
  511. return Object.prototype.toString.call(input) === '[object Array]';
  512. }
  513. function isDate(input) {
  514. return Object.prototype.toString.call(input) === '[object Date]' ||
  515. input instanceof Date;
  516. }
  517. // compare two arrays, return the number of differences
  518. function compareArrays(array1, array2, dontConvert) {
  519. var len = Math.min(array1.length, array2.length),
  520. lengthDiff = Math.abs(array1.length - array2.length),
  521. diffs = 0,
  522. i;
  523. for (i = 0; i < len; i++) {
  524. if ((dontConvert && array1[i] !== array2[i]) ||
  525. (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
  526. diffs++;
  527. }
  528. }
  529. return diffs + lengthDiff;
  530. }
  531. function normalizeUnits(units) {
  532. if (units) {
  533. var lowered = units.toLowerCase().replace(/(.)s$/, '$1');
  534. units = unitAliases[units] || camelFunctions[lowered] || lowered;
  535. }
  536. return units;
  537. }
  538. function normalizeObjectUnits(inputObject) {
  539. var normalizedInput = {},
  540. normalizedProp,
  541. prop;
  542. for (prop in inputObject) {
  543. if (hasOwnProp(inputObject, prop)) {
  544. normalizedProp = normalizeUnits(prop);
  545. if (normalizedProp) {
  546. normalizedInput[normalizedProp] = inputObject[prop];
  547. }
  548. }
  549. }
  550. return normalizedInput;
  551. }
  552. function makeList(field) {
  553. var count, setter;
  554. if (field.indexOf('week') === 0) {
  555. count = 7;
  556. setter = 'day';
  557. }
  558. else if (field.indexOf('month') === 0) {
  559. count = 12;
  560. setter = 'month';
  561. }
  562. else {
  563. return;
  564. }
  565. moment[field] = function (format, index) {
  566. var i, getter,
  567. method = moment._locale[field],
  568. results = [];
  569. if (typeof format === 'number') {
  570. index = format;
  571. format = undefined;
  572. }
  573. getter = function (i) {
  574. var m = moment().utc().set(setter, i);
  575. return method.call(moment._locale, m, format || '');
  576. };
  577. if (index != null) {
  578. return getter(index);
  579. }
  580. else {
  581. for (i = 0; i < count; i++) {
  582. results.push(getter(i));
  583. }
  584. return results;
  585. }
  586. };
  587. }
  588. function toInt(argumentForCoercion) {
  589. var coercedNumber = +argumentForCoercion,
  590. value = 0;
  591. if (coercedNumber !== 0 && isFinite(coercedNumber)) {
  592. if (coercedNumber >= 0) {
  593. value = Math.floor(coercedNumber);
  594. } else {
  595. value = Math.ceil(coercedNumber);
  596. }
  597. }
  598. return value;
  599. }
  600. function daysInMonth(year, month) {
  601. return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
  602. }
  603. function weeksInYear(year, dow, doy) {
  604. return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week;
  605. }
  606. function daysInYear(year) {
  607. return isLeapYear(year) ? 366 : 365;
  608. }
  609. function isLeapYear(year) {
  610. return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
  611. }
  612. function checkOverflow(m) {
  613. var overflow;
  614. if (m._a && m._pf.overflow === -2) {
  615. overflow =
  616. m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
  617. m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
  618. m._a[HOUR] < 0 || m._a[HOUR] > 24 ||
  619. (m._a[HOUR] === 24 && (m._a[MINUTE] !== 0 ||
  620. m._a[SECOND] !== 0 ||
  621. m._a[MILLISECOND] !== 0)) ? HOUR :
  622. m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
  623. m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
  624. m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
  625. -1;
  626. if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
  627. overflow = DATE;
  628. }
  629. m._pf.overflow = overflow;
  630. }
  631. }
  632. function isValid(m) {
  633. if (m._isValid == null) {
  634. m._isValid = !isNaN(m._d.getTime()) &&
  635. m._pf.overflow < 0 &&
  636. !m._pf.empty &&
  637. !m._pf.invalidMonth &&
  638. !m._pf.nullInput &&
  639. !m._pf.invalidFormat &&
  640. !m._pf.userInvalidated;
  641. if (m._strict) {
  642. m._isValid = m._isValid &&
  643. m._pf.charsLeftOver === 0 &&
  644. m._pf.unusedTokens.length === 0 &&
  645. m._pf.bigHour === undefined;
  646. }
  647. }
  648. return m._isValid;
  649. }
  650. function normalizeLocale(key) {
  651. return key ? key.toLowerCase().replace('_', '-') : key;
  652. }
  653. // pick the locale from the array
  654. // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
  655. // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
  656. function chooseLocale(names) {
  657. var i = 0, j, next, locale, split;
  658. while (i < names.length) {
  659. split = normalizeLocale(names[i]).split('-');
  660. j = split.length;
  661. next = normalizeLocale(names[i + 1]);
  662. next = next ? next.split('-') : null;
  663. while (j > 0) {
  664. locale = loadLocale(split.slice(0, j).join('-'));
  665. if (locale) {
  666. return locale;
  667. }
  668. if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
  669. //the next array item is better than a shallower substring of this one
  670. break;
  671. }
  672. j--;
  673. }
  674. i++;
  675. }
  676. return null;
  677. }
  678. function loadLocale(name) {
  679. var oldLocale = null;
  680. if (!locales[name] && hasModule) {
  681. try {
  682. oldLocale = moment.locale();
  683. require('./locale/' + name);
  684. // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales
  685. moment.locale(oldLocale);
  686. } catch (e) { }
  687. }
  688. return locales[name];
  689. }
  690. // Return a moment from input, that is local/utc/zone equivalent to model.
  691. function makeAs(input, model) {
  692. var res, diff;
  693. if (model._isUTC) {
  694. res = model.clone();
  695. diff = (moment.isMoment(input) || isDate(input) ?
  696. +input : +moment(input)) - (+res);
  697. // Use low-level api, because this fn is low-level api.
  698. res._d.setTime(+res._d + diff);
  699. moment.updateOffset(res, false);
  700. return res;
  701. } else {
  702. return moment(input).local();
  703. }
  704. }
  705. /************************************
  706. Locale
  707. ************************************/
  708. extend(Locale.prototype, {
  709. set : function (config) {
  710. var prop, i;
  711. for (i in config) {
  712. prop = config[i];
  713. if (typeof prop === 'function') {
  714. this[i] = prop;
  715. } else {
  716. this['_' + i] = prop;
  717. }
  718. }
  719. // Lenient ordinal parsing accepts just a number in addition to
  720. // number + (possibly) stuff coming from _ordinalParseLenient.
  721. this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
  722. },
  723. _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  724. months : function (m) {
  725. return this._months[m.month()];
  726. },
  727. _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  728. monthsShort : function (m) {
  729. return this._monthsShort[m.month()];
  730. },
  731. monthsParse : function (monthName, format, strict) {
  732. var i, mom, regex;
  733. if (!this._monthsParse) {
  734. this._monthsParse = [];
  735. this._longMonthsParse = [];
  736. this._shortMonthsParse = [];
  737. }
  738. for (i = 0; i < 12; i++) {
  739. // make the regex if we don't have it already
  740. mom = moment.utc([2000, i]);
  741. if (strict && !this._longMonthsParse[i]) {
  742. this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
  743. this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
  744. }
  745. if (!strict && !this._monthsParse[i]) {
  746. regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
  747. this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
  748. }
  749. // test the regex
  750. if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
  751. return i;
  752. } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
  753. return i;
  754. } else if (!strict && this._monthsParse[i].test(monthName)) {
  755. return i;
  756. }
  757. }
  758. },
  759. _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  760. weekdays : function (m) {
  761. return this._weekdays[m.day()];
  762. },
  763. _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  764. weekdaysShort : function (m) {
  765. return this._weekdaysShort[m.day()];
  766. },
  767. _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  768. weekdaysMin : function (m) {
  769. return this._weekdaysMin[m.day()];
  770. },
  771. weekdaysParse : function (weekdayName) {
  772. var i, mom, regex;
  773. if (!this._weekdaysParse) {
  774. this._weekdaysParse = [];
  775. }
  776. for (i = 0; i < 7; i++) {
  777. // make the regex if we don't have it already
  778. if (!this._weekdaysParse[i]) {
  779. mom = moment([2000, 1]).day(i);
  780. regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
  781. this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
  782. }
  783. // test the regex
  784. if (this._weekdaysParse[i].test(weekdayName)) {
  785. return i;
  786. }
  787. }
  788. },
  789. _longDateFormat : {
  790. LTS : 'h:mm:ss A',
  791. LT : 'h:mm A',
  792. L : 'MM/DD/YYYY',
  793. LL : 'MMMM D, YYYY',
  794. LLL : 'MMMM D, YYYY LT',
  795. LLLL : 'dddd, MMMM D, YYYY LT'
  796. },
  797. longDateFormat : function (key) {
  798. var output = this._longDateFormat[key];
  799. if (!output && this._longDateFormat[key.toUpperCase()]) {
  800. output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
  801. return val.slice(1);
  802. });
  803. this._longDateFormat[key] = output;
  804. }
  805. return output;
  806. },
  807. isPM : function (input) {
  808. // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
  809. // Using charAt should be more compatible.
  810. return ((input + '').toLowerCase().charAt(0) === 'p');
  811. },
  812. _meridiemParse : /[ap]\.?m?\.?/i,
  813. meridiem : function (hours, minutes, isLower) {
  814. if (hours > 11) {
  815. return isLower ? 'pm' : 'PM';
  816. } else {
  817. return isLower ? 'am' : 'AM';
  818. }
  819. },
  820. _calendar : {
  821. sameDay : '[Today at] LT',
  822. nextDay : '[Tomorrow at] LT',
  823. nextWeek : 'dddd [at] LT',
  824. lastDay : '[Yesterday at] LT',
  825. lastWeek : '[Last] dddd [at] LT',
  826. sameElse : 'L'
  827. },
  828. calendar : function (key, mom, now) {
  829. var output = this._calendar[key];
  830. return typeof output === 'function' ? output.apply(mom, [now]) : output;
  831. },
  832. _relativeTime : {
  833. future : 'in %s',
  834. past : '%s ago',
  835. s : 'a few seconds',
  836. m : 'a minute',
  837. mm : '%d minutes',
  838. h : 'an hour',
  839. hh : '%d hours',
  840. d : 'a day',
  841. dd : '%d days',
  842. M : 'a month',
  843. MM : '%d months',
  844. y : 'a year',
  845. yy : '%d years'
  846. },
  847. relativeTime : function (number, withoutSuffix, string, isFuture) {
  848. var output = this._relativeTime[string];
  849. return (typeof output === 'function') ?
  850. output(number, withoutSuffix, string, isFuture) :
  851. output.replace(/%d/i, number);
  852. },
  853. pastFuture : function (diff, output) {
  854. var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
  855. return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
  856. },
  857. ordinal : function (number) {
  858. return this._ordinal.replace('%d', number);
  859. },
  860. _ordinal : '%d',
  861. _ordinalParse : /\d{1,2}/,
  862. preparse : function (string) {
  863. return string;
  864. },
  865. postformat : function (string) {
  866. return string;
  867. },
  868. week : function (mom) {
  869. return weekOfYear(mom, this._week.dow, this._week.doy).week;
  870. },
  871. _week : {
  872. dow : 0, // Sunday is the first day of the week.
  873. doy : 6 // The week that contains Jan 1st is the first week of the year.
  874. },
  875. _invalidDate: 'Invalid date',
  876. invalidDate: function () {
  877. return this._invalidDate;
  878. }
  879. });
  880. /************************************
  881. Formatting
  882. ************************************/
  883. function removeFormattingTokens(input) {
  884. if (input.match(/\[[\s\S]/)) {
  885. return input.replace(/^\[|\]$/g, '');
  886. }
  887. return input.replace(/\\/g, '');
  888. }
  889. function makeFormatFunction(format) {
  890. var array = format.match(formattingTokens), i, length;
  891. for (i = 0, length = array.length; i < length; i++) {
  892. if (formatTokenFunctions[array[i]]) {
  893. array[i] = formatTokenFunctions[array[i]];
  894. } else {
  895. array[i] = removeFormattingTokens(array[i]);
  896. }
  897. }
  898. return function (mom) {
  899. var output = '';
  900. for (i = 0; i < length; i++) {
  901. output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
  902. }
  903. return output;
  904. };
  905. }
  906. // format date using native date object
  907. function formatMoment(m, format) {
  908. if (!m.isValid()) {
  909. return m.localeData().invalidDate();
  910. }
  911. format = expandFormat(format, m.localeData());
  912. if (!formatFunctions[format]) {
  913. formatFunctions[format] = makeFormatFunction(format);
  914. }
  915. return formatFunctions[format](m);
  916. }
  917. function expandFormat(format, locale) {
  918. var i = 5;
  919. function replaceLongDateFormatTokens(input) {
  920. return locale.longDateFormat(input) || input;
  921. }
  922. localFormattingTokens.lastIndex = 0;
  923. while (i >= 0 && localFormattingTokens.test(format)) {
  924. format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
  925. localFormattingTokens.lastIndex = 0;
  926. i -= 1;
  927. }
  928. return format;
  929. }
  930. /************************************
  931. Parsing
  932. ************************************/
  933. // get the regex to find the next token
  934. function getParseRegexForToken(token, config) {
  935. var a, strict = config._strict;
  936. switch (token) {
  937. case 'Q':
  938. return parseTokenOneDigit;
  939. case 'DDDD':
  940. return parseTokenThreeDigits;
  941. case 'YYYY':
  942. case 'GGGG':
  943. case 'gggg':
  944. return strict ? parseTokenFourDigits : parseTokenOneToFourDigits;
  945. case 'Y':
  946. case 'G':
  947. case 'g':
  948. return parseTokenSignedNumber;
  949. case 'YYYYYY':
  950. case 'YYYYY':
  951. case 'GGGGG':
  952. case 'ggggg':
  953. return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
  954. case 'S':
  955. if (strict) {
  956. return parseTokenOneDigit;
  957. }
  958. /* falls through */
  959. case 'SS':
  960. if (strict) {
  961. return parseTokenTwoDigits;
  962. }
  963. /* falls through */
  964. case 'SSS':
  965. if (strict) {
  966. return parseTokenThreeDigits;
  967. }
  968. /* falls through */
  969. case 'DDD':
  970. return parseTokenOneToThreeDigits;
  971. case 'MMM':
  972. case 'MMMM':
  973. case 'dd':
  974. case 'ddd':
  975. case 'dddd':
  976. return parseTokenWord;
  977. case 'a':
  978. case 'A':
  979. return config._locale._meridiemParse;
  980. case 'x':
  981. return parseTokenOffsetMs;
  982. case 'X':
  983. return parseTokenTimestampMs;
  984. case 'Z':
  985. case 'ZZ':
  986. return parseTokenTimezone;
  987. case 'T':
  988. return parseTokenT;
  989. case 'SSSS':
  990. return parseTokenDigits;
  991. case 'MM':
  992. case 'DD':
  993. case 'YY':
  994. case 'GG':
  995. case 'gg':
  996. case 'HH':
  997. case 'hh':
  998. case 'mm':
  999. case 'ss':
  1000. case 'ww':
  1001. case 'WW':
  1002. return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits;
  1003. case 'M':
  1004. case 'D':
  1005. case 'd':
  1006. case 'H':
  1007. case 'h':
  1008. case 'm':
  1009. case 's':
  1010. case 'w':
  1011. case 'W':
  1012. case 'e':
  1013. case 'E':
  1014. return parseTokenOneOrTwoDigits;
  1015. case 'Do':
  1016. return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient;
  1017. default :
  1018. a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
  1019. return a;
  1020. }
  1021. }
  1022. function timezoneMinutesFromString(string) {
  1023. string = string || '';
  1024. var possibleTzMatches = (string.match(parseTokenTimezone) || []),
  1025. tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
  1026. parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
  1027. minutes = +(parts[1] * 60) + toInt(parts[2]);
  1028. return parts[0] === '+' ? -minutes : minutes;
  1029. }
  1030. // function to convert string input to date
  1031. function addTimeToArrayFromToken(token, input, config) {
  1032. var a, datePartArray = config._a;
  1033. switch (token) {
  1034. // QUARTER
  1035. case 'Q':
  1036. if (input != null) {
  1037. datePartArray[MONTH] = (toInt(input) - 1) * 3;
  1038. }
  1039. break;
  1040. // MONTH
  1041. case 'M' : // fall through to MM
  1042. case 'MM' :
  1043. if (input != null) {
  1044. datePartArray[MONTH] = toInt(input) - 1;
  1045. }
  1046. break;
  1047. case 'MMM' : // fall through to MMMM
  1048. case 'MMMM' :
  1049. a = config._locale.monthsParse(input, token, config._strict);
  1050. // if we didn't find a month name, mark the date as invalid.
  1051. if (a != null) {
  1052. datePartArray[MONTH] = a;
  1053. } else {
  1054. config._pf.invalidMonth = input;
  1055. }
  1056. break;
  1057. // DAY OF MONTH
  1058. case 'D' : // fall through to DD
  1059. case 'DD' :
  1060. if (input != null) {
  1061. datePartArray[DATE] = toInt(input);
  1062. }
  1063. break;
  1064. case 'Do' :
  1065. if (input != null) {
  1066. datePartArray[DATE] = toInt(parseInt(
  1067. input.match(/\d{1,2}/)[0], 10));
  1068. }
  1069. break;
  1070. // DAY OF YEAR
  1071. case 'DDD' : // fall through to DDDD
  1072. case 'DDDD' :
  1073. if (input != null) {
  1074. config._dayOfYear = toInt(input);
  1075. }
  1076. break;
  1077. // YEAR
  1078. case 'YY' :
  1079. datePartArray[YEAR] = moment.parseTwoDigitYear(input);
  1080. break;
  1081. case 'YYYY' :
  1082. case 'YYYYY' :
  1083. case 'YYYYYY' :
  1084. datePartArray[YEAR] = toInt(input);
  1085. break;
  1086. // AM / PM
  1087. case 'a' : // fall through to A
  1088. case 'A' :
  1089. config._isPm = config._locale.isPM(input);
  1090. break;
  1091. // HOUR
  1092. case 'h' : // fall through to hh
  1093. case 'hh' :
  1094. config._pf.bigHour = true;
  1095. /* falls through */
  1096. case 'H' : // fall through to HH
  1097. case 'HH' :
  1098. datePartArray[HOUR] = toInt(input);
  1099. break;
  1100. // MINUTE
  1101. case 'm' : // fall through to mm
  1102. case 'mm' :
  1103. datePartArray[MINUTE] = toInt(input);
  1104. break;
  1105. // SECOND
  1106. case 's' : // fall through to ss
  1107. case 'ss' :
  1108. datePartArray[SECOND] = toInt(input);
  1109. break;
  1110. // MILLISECOND
  1111. case 'S' :
  1112. case 'SS' :
  1113. case 'SSS' :
  1114. case 'SSSS' :
  1115. datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
  1116. break;
  1117. // UNIX OFFSET (MILLISECONDS)
  1118. case 'x':
  1119. config._d = new Date(toInt(input));
  1120. break;
  1121. // UNIX TIMESTAMP WITH MS
  1122. case 'X':
  1123. config._d = new Date(parseFloat(input) * 1000);
  1124. break;
  1125. // TIMEZONE
  1126. case 'Z' : // fall through to ZZ
  1127. case 'ZZ' :
  1128. config._useUTC = true;
  1129. config._tzm = timezoneMinutesFromString(input);
  1130. break;
  1131. // WEEKDAY - human
  1132. case 'dd':
  1133. case 'ddd':
  1134. case 'dddd':
  1135. a = config._locale.weekdaysParse(input);
  1136. // if we didn't get a weekday name, mark the date as invalid
  1137. if (a != null) {
  1138. config._w = config._w || {};
  1139. config._w['d'] = a;
  1140. } else {
  1141. config._pf.invalidWeekday = input;
  1142. }
  1143. break;
  1144. // WEEK, WEEK DAY - numeric
  1145. case 'w':
  1146. case 'ww':
  1147. case 'W':
  1148. case 'WW':
  1149. case 'd':
  1150. case 'e':
  1151. case 'E':
  1152. token = token.substr(0, 1);
  1153. /* falls through */
  1154. case 'gggg':
  1155. case 'GGGG':
  1156. case 'GGGGG':
  1157. token = token.substr(0, 2);
  1158. if (input) {
  1159. config._w = config._w || {};
  1160. config._w[token] = toInt(input);
  1161. }
  1162. break;
  1163. case 'gg':
  1164. case 'GG':
  1165. config._w = config._w || {};
  1166. config._w[token] = moment.parseTwoDigitYear(input);
  1167. }
  1168. }
  1169. function dayOfYearFromWeekInfo(config) {
  1170. var w, weekYear, week, weekday, dow, doy, temp;
  1171. w = config._w;
  1172. if (w.GG != null || w.W != null || w.E != null) {
  1173. dow = 1;
  1174. doy = 4;
  1175. // TODO: We need to take the current isoWeekYear, but that depends on
  1176. // how we interpret now (local, utc, fixed offset). So create
  1177. // a now version of current config (take local/utc/offset flags, and
  1178. // create now).
  1179. weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year);
  1180. week = dfl(w.W, 1);
  1181. weekday = dfl(w.E, 1);
  1182. } else {
  1183. dow = config._locale._week.dow;
  1184. doy = config._locale._week.doy;
  1185. weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year);
  1186. week = dfl(w.w, 1);
  1187. if (w.d != null) {
  1188. // weekday -- low day numbers are considered next week
  1189. weekday = w.d;
  1190. if (weekday < dow) {
  1191. ++week;
  1192. }
  1193. } else if (w.e != null) {
  1194. // local weekday -- counting starts from begining of week
  1195. weekday = w.e + dow;
  1196. } else {
  1197. // default to begining of week
  1198. weekday = dow;
  1199. }
  1200. }
  1201. temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);
  1202. config._a[YEAR] = temp.year;
  1203. config._dayOfYear = temp.dayOfYear;
  1204. }
  1205. // convert an array to a date.
  1206. // the array should mirror the parameters below
  1207. // note: all values past the year are optional and will default to the lowest possible value.
  1208. // [year, month, day , hour, minute, second, millisecond]
  1209. function dateFromConfig(config) {
  1210. var i, date, input = [], currentDate, yearToUse;
  1211. if (config._d) {
  1212. return;
  1213. }
  1214. currentDate = currentDateArray(config);
  1215. //compute day of the year from weeks and weekdays
  1216. if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
  1217. dayOfYearFromWeekInfo(config);
  1218. }
  1219. //if the day of the year is set, figure out what it is
  1220. if (config._dayOfYear) {
  1221. yearToUse = dfl(config._a[YEAR], currentDate[YEAR]);
  1222. if (config._dayOfYear > daysInYear(yearToUse)) {
  1223. config._pf._overflowDayOfYear = true;
  1224. }
  1225. date = makeUTCDate(yearToUse, 0, config._dayOfYear);
  1226. config._a[MONTH] = date.getUTCMonth();
  1227. config._a[DATE] = date.getUTCDate();
  1228. }
  1229. // Default to current date.
  1230. // * if no year, month, day of month are given, default to today
  1231. // * if day of month is given, default month and year
  1232. // * if month is given, default only year
  1233. // * if year is given, don't default anything
  1234. for (i = 0; i < 3 && config._a[i] == null; ++i) {
  1235. config._a[i] = input[i] = currentDate[i];
  1236. }
  1237. // Zero out whatever was not defaulted, including time
  1238. for (; i < 7; i++) {
  1239. config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
  1240. }
  1241. // Check for 24:00:00.000
  1242. if (config._a[HOUR] === 24 &&
  1243. config._a[MINUTE] === 0 &&
  1244. config._a[SECOND] === 0 &&
  1245. config._a[MILLISECOND] === 0) {
  1246. config._nextDay = true;
  1247. config._a[HOUR] = 0;
  1248. }
  1249. config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
  1250. // Apply timezone offset from input. The actual zone can be changed
  1251. // with parseZone.
  1252. if (config._tzm != null) {
  1253. config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm);
  1254. }
  1255. if (config._nextDay) {
  1256. config._a[HOUR] = 24;
  1257. }
  1258. }
  1259. function dateFromObject(config) {
  1260. var normalizedInput;
  1261. if (config._d) {
  1262. return;
  1263. }
  1264. normalizedInput = normalizeObjectUnits(config._i);
  1265. config._a = [
  1266. normalizedInput.year,
  1267. normalizedInput.month,
  1268. normalizedInput.day || normalizedInput.date,
  1269. normalizedInput.hour,
  1270. normalizedInput.minute,
  1271. normalizedInput.second,
  1272. normalizedInput.millisecond
  1273. ];
  1274. dateFromConfig(config);
  1275. }
  1276. function currentDateArray(config) {
  1277. var now = new Date();
  1278. if (config._useUTC) {
  1279. return [
  1280. now.getUTCFullYear(),
  1281. now.getUTCMonth(),
  1282. now.getUTCDate()
  1283. ];
  1284. } else {
  1285. return [now.getFullYear(), now.getMonth(), now.getDate()];
  1286. }
  1287. }
  1288. // date from string and format string
  1289. function makeDateFromStringAndFormat(config) {
  1290. if (config._f === moment.ISO_8601) {
  1291. parseISO(config);
  1292. return;
  1293. }
  1294. config._a = [];
  1295. config._pf.empty = true;
  1296. // This array is used to make a Date, either with `new Date` or `Date.UTC`
  1297. var string = '' + config._i,
  1298. i, parsedInput, tokens, token, skipped,
  1299. stringLength = string.length,
  1300. totalParsedInputLength = 0;
  1301. tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
  1302. for (i = 0; i < tokens.length; i++) {
  1303. token = tokens[i];
  1304. parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
  1305. if (parsedInput) {
  1306. skipped = string.substr(0, string.indexOf(parsedInput));
  1307. if (skipped.length > 0) {
  1308. config._pf.unusedInput.push(skipped);
  1309. }
  1310. string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
  1311. totalParsedInputLength += parsedInput.length;
  1312. }
  1313. // don't parse if it's not a known token
  1314. if (formatTokenFunctions[token]) {
  1315. if (parsedInput) {
  1316. config._pf.empty = false;
  1317. }
  1318. else {
  1319. config._pf.unusedTokens.push(token);
  1320. }
  1321. addTimeToArrayFromToken(token, parsedInput, config);
  1322. }
  1323. else if (config._strict && !parsedInput) {
  1324. config._pf.unusedTokens.push(token);
  1325. }
  1326. }
  1327. // add remaining unparsed input length to the string
  1328. config._pf.charsLeftOver = stringLength - totalParsedInputLength;
  1329. if (string.length > 0) {
  1330. config._pf.unusedInput.push(string);
  1331. }
  1332. // clear _12h flag if hour is <= 12
  1333. if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
  1334. config._pf.bigHour = undefined;
  1335. }
  1336. // handle am pm
  1337. if (config._isPm && config._a[HOUR] < 12) {
  1338. config._a[HOUR] += 12;
  1339. }
  1340. // if is 12 am, change hours to 0
  1341. if (config._isPm === false && config._a[HOUR] === 12) {
  1342. config._a[HOUR] = 0;
  1343. }
  1344. dateFromConfig(config);
  1345. checkOverflow(config);
  1346. }
  1347. function unescapeFormat(s) {
  1348. return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
  1349. return p1 || p2 || p3 || p4;
  1350. });
  1351. }
  1352. // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
  1353. function regexpEscape(s) {
  1354. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  1355. }
  1356. // date from string and array of format strings
  1357. function makeDateFromStringAndArray(config) {
  1358. var tempConfig,
  1359. bestMoment,
  1360. scoreToBeat,
  1361. i,
  1362. currentScore;
  1363. if (config._f.length === 0) {
  1364. config._pf.invalidFormat = true;
  1365. config._d = new Date(NaN);
  1366. return;
  1367. }
  1368. for (i = 0; i < config._f.length; i++) {
  1369. currentScore = 0;
  1370. tempConfig = copyConfig({}, config);
  1371. if (config._useUTC != null) {
  1372. tempConfig._useUTC = config._useUTC;
  1373. }
  1374. tempConfig._pf = defaultParsingFlags();
  1375. tempConfig._f = config._f[i];
  1376. makeDateFromStringAndFormat(tempConfig);
  1377. if (!isValid(tempConfig)) {
  1378. continue;
  1379. }
  1380. // if there is any input that was not parsed add a penalty for that format
  1381. currentScore += tempConfig._pf.charsLeftOver;
  1382. //or tokens
  1383. currentScore += tempConfig._pf.unusedTokens.length * 10;
  1384. tempConfig._pf.score = currentScore;
  1385. if (scoreToBeat == null || currentScore < scoreToBeat) {
  1386. scoreToBeat = currentScore;
  1387. bestMoment = tempConfig;
  1388. }
  1389. }
  1390. extend(config, bestMoment || tempConfig);
  1391. }
  1392. // date from iso format
  1393. function parseISO(config) {
  1394. var i, l,
  1395. string = config._i,
  1396. match = isoRegex.exec(string);
  1397. if (match) {
  1398. config._pf.iso = true;
  1399. for (i = 0, l = isoDates.length; i < l; i++) {
  1400. if (isoDates[i][1].exec(string)) {
  1401. // match[5] should be 'T' or undefined
  1402. config._f = isoDates[i][0] + (match[6] || ' ');
  1403. break;
  1404. }
  1405. }
  1406. for (i = 0, l = isoTimes.length; i < l; i++) {
  1407. if (isoTimes[i][1].exec(string)) {
  1408. config._f += isoTimes[i][0];
  1409. break;
  1410. }
  1411. }
  1412. if (string.match(parseTokenTimezone)) {
  1413. config._f += 'Z';
  1414. }
  1415. makeDateFromStringAndFormat(config);
  1416. } else {
  1417. config._isValid = false;
  1418. }
  1419. }
  1420. // date from iso format or fallback
  1421. function makeDateFromString(config) {
  1422. parseISO(config);
  1423. if (config._isValid === false) {
  1424. delete config._isValid;
  1425. moment.createFromInputFallback(config);
  1426. }
  1427. }
  1428. function map(arr, fn) {
  1429. var res = [], i;
  1430. for (i = 0; i < arr.length; ++i) {
  1431. res.push(fn(arr[i], i));
  1432. }
  1433. return res;
  1434. }
  1435. function makeDateFromInput(config) {
  1436. var input = config._i, matched;
  1437. if (input === undefined) {
  1438. config._d = new Date();
  1439. } else if (isDate(input)) {
  1440. config._d = new Date(+input);
  1441. } else if ((matched = aspNetJsonRegex.exec(input)) !== null) {
  1442. config._d = new Date(+matched[1]);
  1443. } else if (typeof input === 'string') {
  1444. makeDateFromString(config);
  1445. } else if (isArray(input)) {
  1446. config._a = map(input.slice(0), function (obj) {
  1447. return parseInt(obj, 10);
  1448. });
  1449. dateFromConfig(config);
  1450. } else if (typeof(input) === 'object') {
  1451. dateFromObject(config);
  1452. } else if (typeof(input) === 'number') {
  1453. // from milliseconds
  1454. config._d = new Date(input);
  1455. } else {
  1456. moment.createFromInputFallback(config);
  1457. }
  1458. }
  1459. function makeDate(y, m, d, h, M, s, ms) {
  1460. //can't just apply() to create a date:
  1461. //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
  1462. var date = new Date(y, m, d, h, M, s, ms);
  1463. //the date constructor doesn't accept years < 1970
  1464. if (y < 1970) {
  1465. date.setFullYear(y);
  1466. }
  1467. return date;
  1468. }
  1469. function makeUTCDate(y) {
  1470. var date = new Date(Date.UTC.apply(null, arguments));
  1471. if (y < 1970) {
  1472. date.setUTCFullYear(y);
  1473. }
  1474. return date;
  1475. }
  1476. function parseWeekday(input, locale) {
  1477. if (typeof input === 'string') {
  1478. if (!isNaN(input)) {
  1479. input = parseInt(input, 10);
  1480. }
  1481. else {
  1482. input = locale.weekdaysParse(input);
  1483. if (typeof input !== 'number') {
  1484. return null;
  1485. }
  1486. }
  1487. }
  1488. return input;
  1489. }
  1490. /************************************
  1491. Relative Time
  1492. ************************************/
  1493. // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
  1494. function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
  1495. return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
  1496. }
  1497. function relativeTime(posNegDuration, withoutSuffix, locale) {
  1498. var duration = moment.duration(posNegDuration).abs(),
  1499. seconds = round(duration.as('s')),
  1500. minutes = round(duration.as('m')),
  1501. hours = round(duration.as('h')),
  1502. days = round(duration.as('d')),
  1503. months = round(duration.as('M')),
  1504. years = round(duration.as('y')),
  1505. args = seconds < relativeTimeThresholds.s && ['s', seconds] ||
  1506. minutes === 1 && ['m'] ||
  1507. minutes < relativeTimeThresholds.m && ['mm', minutes] ||
  1508. hours === 1 && ['h'] ||
  1509. hours < relativeTimeThresholds.h && ['hh', hours] ||
  1510. days === 1 && ['d'] ||
  1511. days < relativeTimeThresholds.d && ['dd', days] ||
  1512. months === 1 && ['M'] ||
  1513. months < relativeTimeThresholds.M && ['MM', months] ||
  1514. years === 1 && ['y'] || ['yy', years];
  1515. args[2] = withoutSuffix;
  1516. args[3] = +posNegDuration > 0;
  1517. args[4] = locale;
  1518. return substituteTimeAgo.apply({}, args);
  1519. }
  1520. /************************************
  1521. Week of Year
  1522. ************************************/
  1523. // firstDayOfWeek 0 = sun, 6 = sat
  1524. // the day of the week that starts the week
  1525. // (usually sunday or monday)
  1526. // firstDayOfWeekOfYear 0 = sun, 6 = sat
  1527. // the first week is the week that contains the first
  1528. // of this day of the week
  1529. // (eg. ISO weeks use thursday (4))
  1530. function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
  1531. var end = firstDayOfWeekOfYear - firstDayOfWeek,
  1532. daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
  1533. adjustedMoment;
  1534. if (daysToDayOfWeek > end) {
  1535. daysToDayOfWeek -= 7;
  1536. }
  1537. if (daysToDayOfWeek < end - 7) {
  1538. daysToDayOfWeek += 7;
  1539. }
  1540. adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd');
  1541. return {
  1542. week: Math.ceil(adjustedMoment.dayOfYear() / 7),
  1543. year: adjustedMoment.year()
  1544. };
  1545. }
  1546. //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
  1547. function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
  1548. var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
  1549. d = d === 0 ? 7 : d;
  1550. weekday = weekday != null ? weekday : firstDayOfWeek;
  1551. daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);
  1552. dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
  1553. return {
  1554. year: dayOfYear > 0 ? year : year - 1,
  1555. dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
  1556. };
  1557. }
  1558. /************************************
  1559. Top Level Functions
  1560. ************************************/
  1561. function makeMoment(config) {
  1562. var input = config._i,
  1563. format = config._f,
  1564. res;
  1565. config._locale = config._locale || moment.localeData(config._l);
  1566. if (input === null || (format === undefined && input === '')) {
  1567. return moment.invalid({nullInput: true});
  1568. }
  1569. if (typeof input === 'string') {
  1570. config._i = input = config._locale.preparse(input);
  1571. }
  1572. if (moment.isMoment(input)) {
  1573. return new Moment(input, true);
  1574. } else if (format) {
  1575. if (isArray(format)) {
  1576. makeDateFromStringAndArray(config);
  1577. } else {
  1578. makeDateFromStringAndFormat(config);
  1579. }
  1580. } else {
  1581. makeDateFromInput(config);
  1582. }
  1583. res = new Moment(config);
  1584. if (res._nextDay) {
  1585. // Adding is smart enough around DST
  1586. res.add(1, 'd');
  1587. res._nextDay = undefined;
  1588. }
  1589. return res;
  1590. }
  1591. moment = function (input, format, locale, strict) {
  1592. var c;
  1593. if (typeof(locale) === 'boolean') {
  1594. strict = locale;
  1595. locale = undefined;
  1596. }
  1597. // object construction must be done this way.
  1598. // https://github.com/moment/moment/issues/1423
  1599. c = {};
  1600. c._isAMomentObject = true;
  1601. c._i = input;
  1602. c._f = format;
  1603. c._l = locale;
  1604. c._strict = strict;
  1605. c._isUTC = false;
  1606. c._pf = defaultParsingFlags();
  1607. return makeMoment(c);
  1608. };
  1609. moment.suppressDeprecationWarnings = false;
  1610. moment.createFromInputFallback = deprecate(
  1611. 'moment construction falls back to js Date. This is ' +
  1612. 'discouraged and will be removed in upcoming major ' +
  1613. 'release. Please refer to ' +
  1614. 'https://github.com/moment/moment/issues/1407 for more info.',
  1615. function (config) {
  1616. config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
  1617. }
  1618. );
  1619. // Pick a moment m from moments so that m[fn](other) is true for all
  1620. // other. This relies on the function fn to be transitive.
  1621. //
  1622. // moments should either be an array of moment objects or an array, whose
  1623. // first element is an array of moment objects.
  1624. function pickBy(fn, moments) {
  1625. var res, i;
  1626. if (moments.length === 1 && isArray(moments[0])) {
  1627. moments = moments[0];
  1628. }
  1629. if (!moments.length) {
  1630. return moment();
  1631. }
  1632. res = moments[0];
  1633. for (i = 1; i < moments.length; ++i) {
  1634. if (moments[i][fn](res)) {
  1635. res = moments[i];
  1636. }
  1637. }
  1638. return res;
  1639. }
  1640. moment.min = function () {
  1641. var args = [].slice.call(arguments, 0);
  1642. return pickBy('isBefore', args);
  1643. };
  1644. moment.max = function () {
  1645. var args = [].slice.call(arguments, 0);
  1646. return pickBy('isAfter', args);
  1647. };
  1648. // creating with utc
  1649. moment.utc = function (input, format, locale, strict) {
  1650. var c;
  1651. if (typeof(locale) === 'boolean') {
  1652. strict = locale;
  1653. locale = undefined;
  1654. }
  1655. // object construction must be done this way.
  1656. // https://github.com/moment/moment/issues/1423
  1657. c = {};
  1658. c._isAMomentObject = true;
  1659. c._useUTC = true;
  1660. c._isUTC = true;
  1661. c._l = locale;
  1662. c._i = input;
  1663. c._f = format;
  1664. c._strict = strict;
  1665. c._pf = defaultParsingFlags();
  1666. return makeMoment(c).utc();
  1667. };
  1668. // creating with unix timestamp (in seconds)
  1669. moment.unix = function (input) {
  1670. return moment(input * 1000);
  1671. };
  1672. // duration
  1673. moment.duration = function (input, key) {
  1674. var duration = input,
  1675. // matching against regexp is expensive, do it on demand
  1676. match = null,
  1677. sign,
  1678. ret,
  1679. parseIso,
  1680. diffRes;
  1681. if (moment.isDuration(input)) {
  1682. duration = {
  1683. ms: input._milliseconds,
  1684. d: input._days,
  1685. M: input._months
  1686. };
  1687. } else if (typeof input === 'number') {
  1688. duration = {};
  1689. if (key) {
  1690. duration[key] = input;
  1691. } else {
  1692. duration.milliseconds = input;
  1693. }
  1694. } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
  1695. sign = (match[1] === '-') ? -1 : 1;
  1696. duration = {
  1697. y: 0,
  1698. d: toInt(match[DATE]) * sign,
  1699. h: toInt(match[HOUR]) * sign,
  1700. m: toInt(match[MINUTE]) * sign,
  1701. s: toInt(match[SECOND]) * sign,
  1702. ms: toInt(match[MILLISECOND]) * sign
  1703. };
  1704. } else if (!!(match = isoDurationRegex.exec(input))) {
  1705. sign = (match[1] === '-') ? -1 : 1;
  1706. parseIso = function (inp) {
  1707. // We'd normally use ~~inp for this, but unfortunately it also
  1708. // converts floats to ints.
  1709. // inp may be undefined, so careful calling replace on it.
  1710. var res = inp && parseFloat(inp.replace(',', '.'));
  1711. // apply sign while we're at it
  1712. return (isNaN(res) ? 0 : res) * sign;
  1713. };
  1714. duration = {
  1715. y: parseIso(match[2]),
  1716. M: parseIso(match[3]),
  1717. d: parseIso(match[4]),
  1718. h: parseIso(match[5]),
  1719. m: parseIso(match[6]),
  1720. s: parseIso(match[7]),
  1721. w: parseIso(match[8])
  1722. };
  1723. } else if (typeof duration === 'object' &&
  1724. ('from' in duration || 'to' in duration)) {
  1725. diffRes = momentsDifference(moment(duration.from), moment(duration.to));
  1726. duration = {};
  1727. duration.ms = diffRes.milliseconds;
  1728. duration.M = diffRes.months;
  1729. }
  1730. ret = new Duration(duration);
  1731. if (moment.isDuration(input) && hasOwnProp(input, '_locale')) {
  1732. ret._locale = input._locale;
  1733. }
  1734. return ret;
  1735. };
  1736. // version number
  1737. moment.version = VERSION;
  1738. // default format
  1739. moment.defaultFormat = isoFormat;
  1740. // constant that refers to the ISO standard
  1741. moment.ISO_8601 = function () {};
  1742. // Plugins that add properties should also add the key here (null value),
  1743. // so we can properly clone ourselves.
  1744. moment.momentProperties = momentProperties;
  1745. // This function will be called whenever a moment is mutated.
  1746. // It is intended to keep the offset in sync with the timezone.
  1747. moment.updateOffset = function () {};
  1748. // This function allows you to set a threshold for relative time strings
  1749. moment.relativeTimeThreshold = function (threshold, limit) {
  1750. if (relativeTimeThresholds[threshold] === undefined) {
  1751. return false;
  1752. }
  1753. if (limit === undefined) {
  1754. return relativeTimeThresholds[threshold];
  1755. }
  1756. relativeTimeThresholds[threshold] = limit;
  1757. return true;
  1758. };
  1759. moment.lang = deprecate(
  1760. 'moment.lang is deprecated. Use moment.locale instead.',
  1761. function (key, value) {
  1762. return moment.locale(key, value);
  1763. }
  1764. );
  1765. // This function will load locale and then set the global locale. If
  1766. // no arguments are passed in, it will simply return the current global
  1767. // locale key.
  1768. moment.locale = function (key, values) {
  1769. var data;
  1770. if (key) {
  1771. if (typeof(values) !== 'undefined') {
  1772. data = moment.defineLocale(key, values);
  1773. }
  1774. else {
  1775. data = moment.localeData(key);
  1776. }
  1777. if (data) {
  1778. moment.duration._locale = moment._locale = data;
  1779. }
  1780. }
  1781. return moment._locale._abbr;
  1782. };
  1783. moment.defineLocale = function (name, values) {
  1784. if (values !== null) {
  1785. values.abbr = name;
  1786. if (!locales[name]) {
  1787. locales[name] = new Locale();
  1788. }
  1789. locales[name].set(values);
  1790. // backwards compat for now: also set the locale
  1791. moment.locale(name);
  1792. return locales[name];
  1793. } else {
  1794. // useful for testing
  1795. delete locales[name];
  1796. return null;
  1797. }
  1798. };
  1799. moment.langData = deprecate(
  1800. 'moment.langData is deprecated. Use moment.localeData instead.',
  1801. function (key) {
  1802. return moment.localeData(key);
  1803. }
  1804. );
  1805. // returns locale data
  1806. moment.localeData = function (key) {
  1807. var locale;
  1808. if (key && key._locale && key._locale._abbr) {
  1809. key = key._locale._abbr;
  1810. }
  1811. if (!key) {
  1812. return moment._locale;
  1813. }
  1814. if (!isArray(key)) {
  1815. //short-circuit everything else
  1816. locale = loadLocale(key);
  1817. if (locale) {
  1818. return locale;
  1819. }
  1820. key = [key];
  1821. }
  1822. return chooseLocale(key);
  1823. };
  1824. // compare moment object
  1825. moment.isMoment = function (obj) {
  1826. return obj instanceof Moment ||
  1827. (obj != null && hasOwnProp(obj, '_isAMomentObject'));
  1828. };
  1829. // for typechecking Duration objects
  1830. moment.isDuration = function (obj) {
  1831. return obj instanceof Duration;
  1832. };
  1833. for (i = lists.length - 1; i >= 0; --i) {
  1834. makeList(lists[i]);
  1835. }
  1836. moment.normalizeUnits = function (units) {
  1837. return normalizeUnits(units);
  1838. };
  1839. moment.invalid = function (flags) {
  1840. var m = moment.utc(NaN);
  1841. if (flags != null) {
  1842. extend(m._pf, flags);
  1843. }
  1844. else {
  1845. m._pf.userInvalidated = true;
  1846. }
  1847. return m;
  1848. };
  1849. moment.parseZone = function () {
  1850. return moment.apply(null, arguments).parseZone();
  1851. };
  1852. moment.parseTwoDigitYear = function (input) {
  1853. return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
  1854. };
  1855. /************************************
  1856. Moment Prototype
  1857. ************************************/
  1858. extend(moment.fn = Moment.prototype, {
  1859. clone : function () {
  1860. return moment(this);
  1861. },
  1862. valueOf : function () {
  1863. return +this._d + ((this._offset || 0) * 60000);
  1864. },
  1865. unix : function () {
  1866. return Math.floor(+this / 1000);
  1867. },
  1868. toString : function () {
  1869. return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
  1870. },
  1871. toDate : function () {
  1872. return this._offset ? new Date(+this) : this._d;
  1873. },
  1874. toISOString : function () {
  1875. var m = moment(this).utc();
  1876. if (0 < m.year() && m.year() <= 9999) {
  1877. if ('function' === typeof Date.prototype.toISOString) {
  1878. // native implementation is ~50x faster, use it when we can
  1879. return this.toDate().toISOString();
  1880. } else {
  1881. return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1882. }
  1883. } else {
  1884. return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1885. }
  1886. },
  1887. toArray : function () {
  1888. var m = this;
  1889. return [
  1890. m.year(),
  1891. m.month(),
  1892. m.date(),
  1893. m.hours(),
  1894. m.minutes(),
  1895. m.seconds(),
  1896. m.milliseconds()
  1897. ];
  1898. },
  1899. isValid : function () {
  1900. return isValid(this);
  1901. },
  1902. isDSTShifted : function () {
  1903. if (this._a) {
  1904. return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
  1905. }
  1906. return false;
  1907. },
  1908. parsingFlags : function () {
  1909. return extend({}, this._pf);
  1910. },
  1911. invalidAt: function () {
  1912. return this._pf.overflow;
  1913. },
  1914. utc : function (keepLocalTime) {
  1915. return this.zone(0, keepLocalTime);
  1916. },
  1917. local : function (keepLocalTime) {
  1918. if (this._isUTC) {
  1919. this.zone(0, keepLocalTime);
  1920. this._isUTC = false;
  1921. if (keepLocalTime) {
  1922. this.add(this._dateTzOffset(), 'm');
  1923. }
  1924. }
  1925. return this;
  1926. },
  1927. format : function (inputString) {
  1928. var output = formatMoment(this, inputString || moment.defaultFormat);
  1929. return this.localeData().postformat(output);
  1930. },
  1931. add : createAdder(1, 'add'),
  1932. subtract : createAdder(-1, 'subtract'),
  1933. diff : function (input, units, asFloat) {
  1934. var that = makeAs(input, this),
  1935. zoneDiff = (this.zone() - that.zone()) * 6e4,
  1936. diff, output, daysAdjust;
  1937. units = normalizeUnits(units);
  1938. if (units === 'year' || units === 'month') {
  1939. // average number of days in the months in the given dates
  1940. diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2
  1941. // difference in months
  1942. output = ((this.year() - that.year()) * 12) + (this.month() - that.month());
  1943. // adjust by taking difference in days, average number of days
  1944. // and dst in the given months.
  1945. daysAdjust = (this - moment(this).startOf('month')) -
  1946. (that - moment(that).startOf('month'));
  1947. // same as above but with zones, to negate all dst
  1948. daysAdjust -= ((this.zone() - moment(this).startOf('month').zone()) -
  1949. (that.zone() - moment(that).startOf('month').zone())) * 6e4;
  1950. output += daysAdjust / diff;
  1951. if (units === 'year') {
  1952. output = output / 12;
  1953. }
  1954. } else {
  1955. diff = (this - that);
  1956. output = units === 'second' ? diff / 1e3 : // 1000
  1957. units === 'minute' ? diff / 6e4 : // 1000 * 60
  1958. units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60
  1959. units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
  1960. units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
  1961. diff;
  1962. }
  1963. return asFloat ? output : absRound(output);
  1964. },
  1965. from : function (time, withoutSuffix) {
  1966. return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
  1967. },
  1968. fromNow : function (withoutSuffix) {
  1969. return this.from(moment(), withoutSuffix);
  1970. },
  1971. calendar : function (time) {
  1972. // We want to compare the start of today, vs this.
  1973. // Getting start-of-today depends on whether we're zone'd or not.
  1974. var now = time || moment(),
  1975. sod = makeAs(now, this).startOf('day'),
  1976. diff = this.diff(sod, 'days', true),
  1977. format = diff < -6 ? 'sameElse' :
  1978. diff < -1 ? 'lastWeek' :
  1979. diff < 0 ? 'lastDay' :
  1980. diff < 1 ? 'sameDay' :
  1981. diff < 2 ? 'nextDay' :
  1982. diff < 7 ? 'nextWeek' : 'sameElse';
  1983. return this.format(this.localeData().calendar(format, this, moment(now)));
  1984. },
  1985. isLeapYear : function () {
  1986. return isLeapYear(this.year());
  1987. },
  1988. isDST : function () {
  1989. return (this.zone() < this.clone().month(0).zone() ||
  1990. this.zone() < this.clone().month(5).zone());
  1991. },
  1992. day : function (input) {
  1993. var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
  1994. if (input != null) {
  1995. input = parseWeekday(input, this.localeData());
  1996. return this.add(input - day, 'd');
  1997. } else {
  1998. return day;
  1999. }
  2000. },
  2001. month : makeAccessor('Month', true),
  2002. startOf : function (units) {
  2003. units = normalizeUnits(units);
  2004. // the following switch intentionally omits break keywords
  2005. // to utilize falling through the cases.
  2006. switch (units) {
  2007. case 'year':
  2008. this.month(0);
  2009. /* falls through */
  2010. case 'quarter':
  2011. case 'month':
  2012. this.date(1);
  2013. /* falls through */
  2014. case 'week':
  2015. case 'isoWeek':
  2016. case 'day':
  2017. this.hours(0);
  2018. /* falls through */
  2019. case 'hour':
  2020. this.minutes(0);
  2021. /* falls through */
  2022. case 'minute':
  2023. this.seconds(0);
  2024. /* falls through */
  2025. case 'second':
  2026. this.milliseconds(0);
  2027. /* falls through */
  2028. }
  2029. // weeks are a special case
  2030. if (units === 'week') {
  2031. this.weekday(0);
  2032. } else if (units === 'isoWeek') {
  2033. this.isoWeekday(1);
  2034. }
  2035. // quarters are also special
  2036. if (units === 'quarter') {
  2037. this.month(Math.floor(this.month() / 3) * 3);
  2038. }
  2039. return this;
  2040. },
  2041. endOf: function (units) {
  2042. units = normalizeUnits(units);
  2043. if (units === undefined || units === 'millisecond') {
  2044. return this;
  2045. }
  2046. return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
  2047. },
  2048. isAfter: function (input, units) {
  2049. var inputMs;
  2050. units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
  2051. if (units === 'millisecond') {
  2052. input = moment.isMoment(input) ? input : moment(input);
  2053. return +this > +input;
  2054. } else {
  2055. inputMs = moment.isMoment(input) ? +input : +moment(input);
  2056. return inputMs < +this.clone().startOf(units);
  2057. }
  2058. },
  2059. isBefore: function (input, units) {
  2060. var inputMs;
  2061. units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
  2062. if (units === 'millisecond') {
  2063. input = moment.isMoment(input) ? input : moment(input);
  2064. return +this < +input;
  2065. } else {
  2066. inputMs = moment.isMoment(input) ? +input : +moment(input);
  2067. return +this.clone().endOf(units) < inputMs;
  2068. }
  2069. },
  2070. isSame: function (input, units) {
  2071. var inputMs;
  2072. units = normalizeUnits(units || 'millisecond');
  2073. if (units === 'millisecond') {
  2074. input = moment.isMoment(input) ? input : moment(input);
  2075. return +this === +input;
  2076. } else {
  2077. inputMs = +moment(input);
  2078. return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
  2079. }
  2080. },
  2081. min: deprecate(
  2082. 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
  2083. function (other) {
  2084. other = moment.apply(null, arguments);
  2085. return other < this ? this : other;
  2086. }
  2087. ),
  2088. max: deprecate(
  2089. 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
  2090. function (other) {
  2091. other = moment.apply(null, arguments);
  2092. return other > this ? this : other;
  2093. }
  2094. ),
  2095. // keepLocalTime = true means only change the timezone, without
  2096. // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]-->
  2097. // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone
  2098. // +0200, so we adjust the time as needed, to be valid.
  2099. //
  2100. // Keeping the time actually adds/subtracts (one hour)
  2101. // from the actual represented time. That is why we call updateOffset
  2102. // a second time. In case it wants us to change the offset again
  2103. // _changeInProgress == true case, then we have to adjust, because
  2104. // there is no such time in the given timezone.
  2105. zone : function (input, keepLocalTime) {
  2106. var offset = this._offset || 0,
  2107. localAdjust;
  2108. if (input != null) {
  2109. if (typeof input === 'string') {
  2110. input = timezoneMinutesFromString(input);
  2111. }
  2112. if (Math.abs(input) < 16) {
  2113. input = input * 60;
  2114. }
  2115. if (!this._isUTC && keepLocalTime) {
  2116. localAdjust = this._dateTzOffset();
  2117. }
  2118. this._offset = input;
  2119. this._isUTC = true;
  2120. if (localAdjust != null) {
  2121. this.subtract(localAdjust, 'm');
  2122. }
  2123. if (offset !== input) {
  2124. if (!keepLocalTime || this._changeInProgress) {
  2125. addOrSubtractDurationFromMoment(this,
  2126. moment.duration(offset - input, 'm'), 1, false);
  2127. } else if (!this._changeInProgress) {
  2128. this._changeInProgress = true;
  2129. moment.updateOffset(this, true);
  2130. this._changeInProgress = null;
  2131. }
  2132. }
  2133. } else {
  2134. return this._isUTC ? offset : this._dateTzOffset();
  2135. }
  2136. return this;
  2137. },
  2138. zoneAbbr : function () {
  2139. return this._isUTC ? 'UTC' : '';
  2140. },
  2141. zoneName : function () {
  2142. return this._isUTC ? 'Coordinated Universal Time' : '';
  2143. },
  2144. parseZone : function () {
  2145. if (this._tzm) {
  2146. this.zone(this._tzm);
  2147. } else if (typeof this._i === 'string') {
  2148. this.zone(this._i);
  2149. }
  2150. return this;
  2151. },
  2152. hasAlignedHourOffset : function (input) {
  2153. if (!input) {
  2154. input = 0;
  2155. }
  2156. else {
  2157. input = moment(input).zone();
  2158. }
  2159. return (this.zone() - input) % 60 === 0;
  2160. },
  2161. daysInMonth : function () {
  2162. return daysInMonth(this.year(), this.month());
  2163. },
  2164. dayOfYear : function (input) {
  2165. var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
  2166. return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
  2167. },
  2168. quarter : function (input) {
  2169. return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
  2170. },
  2171. weekYear : function (input) {
  2172. var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
  2173. return input == null ? year : this.add((input - year), 'y');
  2174. },
  2175. isoWeekYear : function (input) {
  2176. var year = weekOfYear(this, 1, 4).year;
  2177. return input == null ? year : this.add((input - year), 'y');
  2178. },
  2179. week : function (input) {
  2180. var week = this.localeData().week(this);
  2181. return input == null ? week : this.add((input - week) * 7, 'd');
  2182. },
  2183. isoWeek : function (input) {
  2184. var week = weekOfYear(this, 1, 4).week;
  2185. return input == null ? week : this.add((input - week) * 7, 'd');
  2186. },
  2187. weekday : function (input) {
  2188. var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
  2189. return input == null ? weekday : this.add(input - weekday, 'd');
  2190. },
  2191. isoWeekday : function (input) {
  2192. // behaves the same as moment#day except
  2193. // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
  2194. // as a setter, sunday should belong to the previous week.
  2195. return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
  2196. },
  2197. isoWeeksInYear : function () {
  2198. return weeksInYear(this.year(), 1, 4);
  2199. },
  2200. weeksInYear : function () {
  2201. var weekInfo = this.localeData()._week;
  2202. return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
  2203. },
  2204. get : function (units) {
  2205. units = normalizeUnits(units);
  2206. return this[units]();
  2207. },
  2208. set : function (units, value) {
  2209. units = normalizeUnits(units);
  2210. if (typeof this[units] === 'function') {
  2211. this[units](value);
  2212. }
  2213. return this;
  2214. },
  2215. // If passed a locale key, it will set the locale for this
  2216. // instance. Otherwise, it will return the locale configuration
  2217. // variables for this instance.
  2218. locale : function (key) {
  2219. var newLocaleData;
  2220. if (key === undefined) {
  2221. return this._locale._abbr;
  2222. } else {
  2223. newLocaleData = moment.localeData(key);
  2224. if (newLocaleData != null) {
  2225. this._locale = newLocaleData;
  2226. }
  2227. return this;
  2228. }
  2229. },
  2230. lang : deprecate(
  2231. 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
  2232. function (key) {
  2233. if (key === undefined) {
  2234. return this.localeData();
  2235. } else {
  2236. return this.locale(key);
  2237. }
  2238. }
  2239. ),
  2240. localeData : function () {
  2241. return this._locale;
  2242. },
  2243. _dateTzOffset : function () {
  2244. // On Firefox.24 Date#getTimezoneOffset returns a floating point.
  2245. // https://github.com/moment/moment/pull/1871
  2246. return Math.round(this._d.getTimezoneOffset() / 15) * 15;
  2247. }
  2248. });
  2249. function rawMonthSetter(mom, value) {
  2250. var dayOfMonth;
  2251. // TODO: Move this out of here!
  2252. if (typeof value === 'string') {
  2253. value = mom.localeData().monthsParse(value);
  2254. // TODO: Another silent failure?
  2255. if (typeof value !== 'number') {
  2256. return mom;
  2257. }
  2258. }
  2259. dayOfMonth = Math.min(mom.date(),
  2260. daysInMonth(mom.year(), value));
  2261. mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
  2262. return mom;
  2263. }
  2264. function rawGetter(mom, unit) {
  2265. return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();
  2266. }
  2267. function rawSetter(mom, unit, value) {
  2268. if (unit === 'Month') {
  2269. return rawMonthSetter(mom, value);
  2270. } else {
  2271. return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  2272. }
  2273. }
  2274. function makeAccessor(unit, keepTime) {
  2275. return function (value) {
  2276. if (value != null) {
  2277. rawSetter(this, unit, value);
  2278. moment.updateOffset(this, keepTime);
  2279. return this;
  2280. } else {
  2281. return rawGetter(this, unit);
  2282. }
  2283. };
  2284. }
  2285. moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false);
  2286. moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false);
  2287. moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false);
  2288. // Setting the hour should keep the time, because the user explicitly
  2289. // specified which hour he wants. So trying to maintain the same hour (in
  2290. // a new timezone) makes sense. Adding/subtracting hours does not follow
  2291. // this rule.
  2292. moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true);
  2293. // moment.fn.month is defined separately
  2294. moment.fn.date = makeAccessor('Date', true);
  2295. moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true));
  2296. moment.fn.year = makeAccessor('FullYear', true);
  2297. moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true));
  2298. // add plural methods
  2299. moment.fn.days = moment.fn.day;
  2300. moment.fn.months = moment.fn.month;
  2301. moment.fn.weeks = moment.fn.week;
  2302. moment.fn.isoWeeks = moment.fn.isoWeek;
  2303. moment.fn.quarters = moment.fn.quarter;
  2304. // add aliased format methods
  2305. moment.fn.toJSON = moment.fn.toISOString;
  2306. /************************************
  2307. Duration Prototype
  2308. ************************************/
  2309. function daysToYears (days) {
  2310. // 400 years have 146097 days (taking into account leap year rules)
  2311. return days * 400 / 146097;
  2312. }
  2313. function yearsToDays (years) {
  2314. // years * 365 + absRound(years / 4) -
  2315. // absRound(years / 100) + absRound(years / 400);
  2316. return years * 146097 / 400;
  2317. }
  2318. extend(moment.duration.fn = Duration.prototype, {
  2319. _bubble : function () {
  2320. var milliseconds = this._milliseconds,
  2321. days = this._days,
  2322. months = this._months,
  2323. data = this._data,
  2324. seconds, minutes, hours, years = 0;
  2325. // The following code bubbles up values, see the tests for
  2326. // examples of what that means.
  2327. data.milliseconds = milliseconds % 1000;
  2328. seconds = absRound(milliseconds / 1000);
  2329. data.seconds = seconds % 60;
  2330. minutes = absRound(seconds / 60);
  2331. data.minutes = minutes % 60;
  2332. hours = absRound(minutes / 60);
  2333. data.hours = hours % 24;
  2334. days += absRound(hours / 24);
  2335. // Accurately convert days to years, assume start from year 0.
  2336. years = absRound(daysToYears(days));
  2337. days -= absRound(yearsToDays(years));
  2338. // 30 days to a month
  2339. // TODO (iskren): Use anchor date (like 1st Jan) to compute this.
  2340. months += absRound(days / 30);
  2341. days %= 30;
  2342. // 12 months -> 1 year
  2343. years += absRound(months / 12);
  2344. months %= 12;
  2345. data.days = days;
  2346. data.months = months;
  2347. data.years = years;
  2348. },
  2349. abs : function () {
  2350. this._milliseconds = Math.abs(this._milliseconds);
  2351. this._days = Math.abs(this._days);
  2352. this._months = Math.abs(this._months);
  2353. this._data.milliseconds = Math.abs(this._data.milliseconds);
  2354. this._data.seconds = Math.abs(this._data.seconds);
  2355. this._data.minutes = Math.abs(this._data.minutes);
  2356. this._data.hours = Math.abs(this._data.hours);
  2357. this._data.months = Math.abs(this._data.months);
  2358. this._data.years = Math.abs(this._data.years);
  2359. return this;
  2360. },
  2361. weeks : function () {
  2362. return absRound(this.days() / 7);
  2363. },
  2364. valueOf : function () {
  2365. return this._milliseconds +
  2366. this._days * 864e5 +
  2367. (this._months % 12) * 2592e6 +
  2368. toInt(this._months / 12) * 31536e6;
  2369. },
  2370. humanize : function (withSuffix) {
  2371. var output = relativeTime(this, !withSuffix, this.localeData());
  2372. if (withSuffix) {
  2373. output = this.localeData().pastFuture(+this, output);
  2374. }
  2375. return this.localeData().postformat(output);
  2376. },
  2377. add : function (input, val) {
  2378. // supports only 2.0-style add(1, 's') or add(moment)
  2379. var dur = moment.duration(input, val);
  2380. this._milliseconds += dur._milliseconds;
  2381. this._days += dur._days;
  2382. this._months += dur._months;
  2383. this._bubble();
  2384. return this;
  2385. },
  2386. subtract : function (input, val) {
  2387. var dur = moment.duration(input, val);
  2388. this._milliseconds -= dur._milliseconds;
  2389. this._days -= dur._days;
  2390. this._months -= dur._months;
  2391. this._bubble();
  2392. return this;
  2393. },
  2394. get : function (units) {
  2395. units = normalizeUnits(units);
  2396. return this[units.toLowerCase() + 's']();
  2397. },
  2398. as : function (units) {
  2399. var days, months;
  2400. units = normalizeUnits(units);
  2401. if (units === 'month' || units === 'year') {
  2402. days = this._days + this._milliseconds / 864e5;
  2403. months = this._months + daysToYears(days) * 12;
  2404. return units === 'month' ? months : months / 12;
  2405. } else {
  2406. // handle milliseconds separately because of floating point math errors (issue #1867)
  2407. days = this._days + Math.round(yearsToDays(this._months / 12));
  2408. switch (units) {
  2409. case 'week': return days / 7 + this._milliseconds / 6048e5;
  2410. case 'day': return days + this._milliseconds / 864e5;
  2411. case 'hour': return days * 24 + this._milliseconds / 36e5;
  2412. case 'minute': return days * 24 * 60 + this._milliseconds / 6e4;
  2413. case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000;
  2414. // Math.floor prevents floating point math errors here
  2415. case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds;
  2416. default: throw new Error('Unknown unit ' + units);
  2417. }
  2418. }
  2419. },
  2420. lang : moment.fn.lang,
  2421. locale : moment.fn.locale,
  2422. toIsoString : deprecate(
  2423. 'toIsoString() is deprecated. Please use toISOString() instead ' +
  2424. '(notice the capitals)',
  2425. function () {
  2426. return this.toISOString();
  2427. }
  2428. ),
  2429. toISOString : function () {
  2430. // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
  2431. var years = Math.abs(this.years()),
  2432. months = Math.abs(this.months()),
  2433. days = Math.abs(this.days()),
  2434. hours = Math.abs(this.hours()),
  2435. minutes = Math.abs(this.minutes()),
  2436. seconds = Math.abs(this.seconds() + this.milliseconds() / 1000);
  2437. if (!this.asSeconds()) {
  2438. // this is the same as C#'s (Noda) and python (isodate)...
  2439. // but not other JS (goog.date)
  2440. return 'P0D';
  2441. }
  2442. return (this.asSeconds() < 0 ? '-' : '') +
  2443. 'P' +
  2444. (years ? years + 'Y' : '') +
  2445. (months ? months + 'M' : '') +
  2446. (days ? days + 'D' : '') +
  2447. ((hours || minutes || seconds) ? 'T' : '') +
  2448. (hours ? hours + 'H' : '') +
  2449. (minutes ? minutes + 'M' : '') +
  2450. (seconds ? seconds + 'S' : '');
  2451. },
  2452. localeData : function () {
  2453. return this._locale;
  2454. }
  2455. });
  2456. moment.duration.fn.toString = moment.duration.fn.toISOString;
  2457. function makeDurationGetter(name) {
  2458. moment.duration.fn[name] = function () {
  2459. return this._data[name];
  2460. };
  2461. }
  2462. for (i in unitMillisecondFactors) {
  2463. if (hasOwnProp(unitMillisecondFactors, i)) {
  2464. makeDurationGetter(i.toLowerCase());
  2465. }
  2466. }
  2467. moment.duration.fn.asMilliseconds = function () {
  2468. return this.as('ms');
  2469. };
  2470. moment.duration.fn.asSeconds = function () {
  2471. return this.as('s');
  2472. };
  2473. moment.duration.fn.asMinutes = function () {
  2474. return this.as('m');
  2475. };
  2476. moment.duration.fn.asHours = function () {
  2477. return this.as('h');
  2478. };
  2479. moment.duration.fn.asDays = function () {
  2480. return this.as('d');
  2481. };
  2482. moment.duration.fn.asWeeks = function () {
  2483. return this.as('weeks');
  2484. };
  2485. moment.duration.fn.asMonths = function () {
  2486. return this.as('M');
  2487. };
  2488. moment.duration.fn.asYears = function () {
  2489. return this.as('y');
  2490. };
  2491. /************************************
  2492. Default Locale
  2493. ************************************/
  2494. // Set default locale, other locale will inherit from English.
  2495. moment.locale('en', {
  2496. ordinalParse: /\d{1,2}(th|st|nd|rd)/,
  2497. ordinal : function (number) {
  2498. var b = number % 10,
  2499. output = (toInt(number % 100 / 10) === 1) ? 'th' :
  2500. (b === 1) ? 'st' :
  2501. (b === 2) ? 'nd' :
  2502. (b === 3) ? 'rd' : 'th';
  2503. return number + output;
  2504. }
  2505. });
  2506. // moment.js locale configuration
  2507. // locale : afrikaans (af)
  2508. // author : Werner Mollentze : https://github.com/wernerm
  2509. (function (factory) {
  2510. factory(moment);
  2511. }(function (moment) {
  2512. return moment.defineLocale('af', {
  2513. months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
  2514. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
  2515. weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
  2516. weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
  2517. weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
  2518. meridiem : function (hours, minutes, isLower) {
  2519. if (hours < 12) {
  2520. return isLower ? 'vm' : 'VM';
  2521. } else {
  2522. return isLower ? 'nm' : 'NM';
  2523. }
  2524. },
  2525. longDateFormat : {
  2526. LT : 'HH:mm',
  2527. LTS : 'LT:ss',
  2528. L : 'DD/MM/YYYY',
  2529. LL : 'D MMMM YYYY',
  2530. LLL : 'D MMMM YYYY LT',
  2531. LLLL : 'dddd, D MMMM YYYY LT'
  2532. },
  2533. calendar : {
  2534. sameDay : '[Vandag om] LT',
  2535. nextDay : '[Môre om] LT',
  2536. nextWeek : 'dddd [om] LT',
  2537. lastDay : '[Gister om] LT',
  2538. lastWeek : '[Laas] dddd [om] LT',
  2539. sameElse : 'L'
  2540. },
  2541. relativeTime : {
  2542. future : 'oor %s',
  2543. past : '%s gelede',
  2544. s : '\'n paar sekondes',
  2545. m : '\'n minuut',
  2546. mm : '%d minute',
  2547. h : '\'n uur',
  2548. hh : '%d ure',
  2549. d : '\'n dag',
  2550. dd : '%d dae',
  2551. M : '\'n maand',
  2552. MM : '%d maande',
  2553. y : '\'n jaar',
  2554. yy : '%d jaar'
  2555. },
  2556. ordinalParse: /\d{1,2}(ste|de)/,
  2557. ordinal : function (number) {
  2558. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
  2559. },
  2560. week : {
  2561. dow : 1, // Maandag is die eerste dag van die week.
  2562. doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
  2563. }
  2564. });
  2565. }));
  2566. // moment.js locale configuration
  2567. // locale : Moroccan Arabic (ar-ma)
  2568. // author : ElFadili Yassine : https://github.com/ElFadiliY
  2569. // author : Abdel Said : https://github.com/abdelsaid
  2570. (function (factory) {
  2571. factory(moment);
  2572. }(function (moment) {
  2573. return moment.defineLocale('ar-ma', {
  2574. months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  2575. monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  2576. weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2577. weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
  2578. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2579. longDateFormat : {
  2580. LT : 'HH:mm',
  2581. LTS : 'LT:ss',
  2582. L : 'DD/MM/YYYY',
  2583. LL : 'D MMMM YYYY',
  2584. LLL : 'D MMMM YYYY LT',
  2585. LLLL : 'dddd D MMMM YYYY LT'
  2586. },
  2587. calendar : {
  2588. sameDay: '[اليوم على الساعة] LT',
  2589. nextDay: '[غدا على الساعة] LT',
  2590. nextWeek: 'dddd [على الساعة] LT',
  2591. lastDay: '[أمس على الساعة] LT',
  2592. lastWeek: 'dddd [على الساعة] LT',
  2593. sameElse: 'L'
  2594. },
  2595. relativeTime : {
  2596. future : 'في %s',
  2597. past : 'منذ %s',
  2598. s : 'ثوان',
  2599. m : 'دقيقة',
  2600. mm : '%d دقائق',
  2601. h : 'ساعة',
  2602. hh : '%d ساعات',
  2603. d : 'يوم',
  2604. dd : '%d أيام',
  2605. M : 'شهر',
  2606. MM : '%d أشهر',
  2607. y : 'سنة',
  2608. yy : '%d سنوات'
  2609. },
  2610. week : {
  2611. dow : 6, // Saturday is the first day of the week.
  2612. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2613. }
  2614. });
  2615. }));
  2616. // moment.js locale configuration
  2617. // locale : Arabic Saudi Arabia (ar-sa)
  2618. // author : Suhail Alkowaileet : https://github.com/xsoh
  2619. (function (factory) {
  2620. factory(moment);
  2621. }(function (moment) {
  2622. var symbolMap = {
  2623. '1': '١',
  2624. '2': '٢',
  2625. '3': '٣',
  2626. '4': '٤',
  2627. '5': '٥',
  2628. '6': '٦',
  2629. '7': '٧',
  2630. '8': '٨',
  2631. '9': '٩',
  2632. '0': '٠'
  2633. }, numberMap = {
  2634. '١': '1',
  2635. '٢': '2',
  2636. '٣': '3',
  2637. '٤': '4',
  2638. '٥': '5',
  2639. '٦': '6',
  2640. '٧': '7',
  2641. '٨': '8',
  2642. '٩': '9',
  2643. '٠': '0'
  2644. };
  2645. return moment.defineLocale('ar-sa', {
  2646. months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2647. monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2648. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2649. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  2650. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2651. longDateFormat : {
  2652. LT : 'HH:mm',
  2653. LTS : 'HH:mm:ss',
  2654. L : 'DD/MM/YYYY',
  2655. LL : 'D MMMM YYYY',
  2656. LLL : 'D MMMM YYYY LT',
  2657. LLLL : 'dddd D MMMM YYYY LT'
  2658. },
  2659. meridiem : function (hour, minute, isLower) {
  2660. if (hour < 12) {
  2661. return 'ص';
  2662. } else {
  2663. return 'م';
  2664. }
  2665. },
  2666. calendar : {
  2667. sameDay: '[اليوم على الساعة] LT',
  2668. nextDay: '[غدا على الساعة] LT',
  2669. nextWeek: 'dddd [على الساعة] LT',
  2670. lastDay: '[أمس على الساعة] LT',
  2671. lastWeek: 'dddd [على الساعة] LT',
  2672. sameElse: 'L'
  2673. },
  2674. relativeTime : {
  2675. future : 'في %s',
  2676. past : 'منذ %s',
  2677. s : 'ثوان',
  2678. m : 'دقيقة',
  2679. mm : '%d دقائق',
  2680. h : 'ساعة',
  2681. hh : '%d ساعات',
  2682. d : 'يوم',
  2683. dd : '%d أيام',
  2684. M : 'شهر',
  2685. MM : '%d أشهر',
  2686. y : 'سنة',
  2687. yy : '%d سنوات'
  2688. },
  2689. preparse: function (string) {
  2690. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  2691. return numberMap[match];
  2692. }).replace(/،/g, ',');
  2693. },
  2694. postformat: function (string) {
  2695. return string.replace(/\d/g, function (match) {
  2696. return symbolMap[match];
  2697. }).replace(/,/g, '،');
  2698. },
  2699. week : {
  2700. dow : 6, // Saturday is the first day of the week.
  2701. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2702. }
  2703. });
  2704. }));
  2705. // moment.js locale configuration
  2706. // Locale: Arabic (ar)
  2707. // Author: Abdel Said: https://github.com/abdelsaid
  2708. // Changes in months, weekdays: Ahmed Elkhatib
  2709. // Native plural forms: forabi https://github.com/forabi
  2710. (function (factory) {
  2711. factory(moment);
  2712. }(function (moment) {
  2713. var symbolMap = {
  2714. '1': '١',
  2715. '2': '٢',
  2716. '3': '٣',
  2717. '4': '٤',
  2718. '5': '٥',
  2719. '6': '٦',
  2720. '7': '٧',
  2721. '8': '٨',
  2722. '9': '٩',
  2723. '0': '٠'
  2724. }, numberMap = {
  2725. '١': '1',
  2726. '٢': '2',
  2727. '٣': '3',
  2728. '٤': '4',
  2729. '٥': '5',
  2730. '٦': '6',
  2731. '٧': '7',
  2732. '٨': '8',
  2733. '٩': '9',
  2734. '٠': '0'
  2735. }, pluralForm = function (n) {
  2736. return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
  2737. }, plurals = {
  2738. s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
  2739. m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
  2740. h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
  2741. d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
  2742. M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
  2743. y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
  2744. }, pluralize = function (u) {
  2745. return function (number, withoutSuffix, string, isFuture) {
  2746. var f = pluralForm(number),
  2747. str = plurals[u][pluralForm(number)];
  2748. if (f === 2) {
  2749. str = str[withoutSuffix ? 0 : 1];
  2750. }
  2751. return str.replace(/%d/i, number);
  2752. };
  2753. }, months = [
  2754. 'كانون الثاني يناير',
  2755. 'شباط فبراير',
  2756. 'آذار مارس',
  2757. 'نيسان أبريل',
  2758. 'أيار مايو',
  2759. 'حزيران يونيو',
  2760. 'تموز يوليو',
  2761. 'آب أغسطس',
  2762. 'أيلول سبتمبر',
  2763. 'تشرين الأول أكتوبر',
  2764. 'تشرين الثاني نوفمبر',
  2765. 'كانون الأول ديسمبر'
  2766. ];
  2767. return moment.defineLocale('ar', {
  2768. months : months,
  2769. monthsShort : months,
  2770. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2771. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  2772. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2773. longDateFormat : {
  2774. LT : 'HH:mm',
  2775. LTS : 'HH:mm:ss',
  2776. L : 'DD/MM/YYYY',
  2777. LL : 'D MMMM YYYY',
  2778. LLL : 'D MMMM YYYY LT',
  2779. LLLL : 'dddd D MMMM YYYY LT'
  2780. },
  2781. meridiem : function (hour, minute, isLower) {
  2782. if (hour < 12) {
  2783. return 'ص';
  2784. } else {
  2785. return 'م';
  2786. }
  2787. },
  2788. calendar : {
  2789. sameDay: '[اليوم عند الساعة] LT',
  2790. nextDay: '[غدًا عند الساعة] LT',
  2791. nextWeek: 'dddd [عند الساعة] LT',
  2792. lastDay: '[أمس عند الساعة] LT',
  2793. lastWeek: 'dddd [عند الساعة] LT',
  2794. sameElse: 'L'
  2795. },
  2796. relativeTime : {
  2797. future : 'بعد %s',
  2798. past : 'منذ %s',
  2799. s : pluralize('s'),
  2800. m : pluralize('m'),
  2801. mm : pluralize('m'),
  2802. h : pluralize('h'),
  2803. hh : pluralize('h'),
  2804. d : pluralize('d'),
  2805. dd : pluralize('d'),
  2806. M : pluralize('M'),
  2807. MM : pluralize('M'),
  2808. y : pluralize('y'),
  2809. yy : pluralize('y')
  2810. },
  2811. preparse: function (string) {
  2812. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  2813. return numberMap[match];
  2814. }).replace(/،/g, ',');
  2815. },
  2816. postformat: function (string) {
  2817. return string.replace(/\d/g, function (match) {
  2818. return symbolMap[match];
  2819. }).replace(/,/g, '،');
  2820. },
  2821. week : {
  2822. dow : 6, // Saturday is the first day of the week.
  2823. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2824. }
  2825. });
  2826. }));
  2827. // moment.js locale configuration
  2828. // locale : azerbaijani (az)
  2829. // author : topchiyev : https://github.com/topchiyev
  2830. (function (factory) {
  2831. factory(moment);
  2832. }(function (moment) {
  2833. var suffixes = {
  2834. 1: '-inci',
  2835. 5: '-inci',
  2836. 8: '-inci',
  2837. 70: '-inci',
  2838. 80: '-inci',
  2839. 2: '-nci',
  2840. 7: '-nci',
  2841. 20: '-nci',
  2842. 50: '-nci',
  2843. 3: '-üncü',
  2844. 4: '-üncü',
  2845. 100: '-üncü',
  2846. 6: '-ncı',
  2847. 9: '-uncu',
  2848. 10: '-uncu',
  2849. 30: '-uncu',
  2850. 60: '-ıncı',
  2851. 90: '-ıncı'
  2852. };
  2853. return moment.defineLocale('az', {
  2854. months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
  2855. monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
  2856. weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
  2857. weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
  2858. weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
  2859. longDateFormat : {
  2860. LT : 'HH:mm',
  2861. LTS : 'LT:ss',
  2862. L : 'DD.MM.YYYY',
  2863. LL : 'D MMMM YYYY',
  2864. LLL : 'D MMMM YYYY LT',
  2865. LLLL : 'dddd, D MMMM YYYY LT'
  2866. },
  2867. calendar : {
  2868. sameDay : '[bugün saat] LT',
  2869. nextDay : '[sabah saat] LT',
  2870. nextWeek : '[gələn həftə] dddd [saat] LT',
  2871. lastDay : '[dünən] LT',
  2872. lastWeek : '[keçən həftə] dddd [saat] LT',
  2873. sameElse : 'L'
  2874. },
  2875. relativeTime : {
  2876. future : '%s sonra',
  2877. past : '%s əvvəl',
  2878. s : 'birneçə saniyyə',
  2879. m : 'bir dəqiqə',
  2880. mm : '%d dəqiqə',
  2881. h : 'bir saat',
  2882. hh : '%d saat',
  2883. d : 'bir gün',
  2884. dd : '%d gün',
  2885. M : 'bir ay',
  2886. MM : '%d ay',
  2887. y : 'bir il',
  2888. yy : '%d il'
  2889. },
  2890. meridiem : function (hour, minute, isLower) {
  2891. if (hour < 4) {
  2892. return 'gecə';
  2893. } else if (hour < 12) {
  2894. return 'səhər';
  2895. } else if (hour < 17) {
  2896. return 'gündüz';
  2897. } else {
  2898. return 'axşam';
  2899. }
  2900. },
  2901. ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
  2902. ordinal : function (number) {
  2903. if (number === 0) { // special case for zero
  2904. return number + '-ıncı';
  2905. }
  2906. var a = number % 10,
  2907. b = number % 100 - a,
  2908. c = number >= 100 ? 100 : null;
  2909. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  2910. },
  2911. week : {
  2912. dow : 1, // Monday is the first day of the week.
  2913. doy : 7 // The week that contains Jan 1st is the first week of the year.
  2914. }
  2915. });
  2916. }));
  2917. // moment.js locale configuration
  2918. // locale : belarusian (be)
  2919. // author : Dmitry Demidov : https://github.com/demidov91
  2920. // author: Praleska: http://praleska.pro/
  2921. // Author : Menelion Elensúle : https://github.com/Oire
  2922. (function (factory) {
  2923. factory(moment);
  2924. }(function (moment) {
  2925. function plural(word, num) {
  2926. var forms = word.split('_');
  2927. 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]);
  2928. }
  2929. function relativeTimeWithPlural(number, withoutSuffix, key) {
  2930. var format = {
  2931. 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
  2932. 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
  2933. 'dd': 'дзень_дні_дзён',
  2934. 'MM': 'месяц_месяцы_месяцаў',
  2935. 'yy': 'год_гады_гадоў'
  2936. };
  2937. if (key === 'm') {
  2938. return withoutSuffix ? 'хвіліна' : 'хвіліну';
  2939. }
  2940. else if (key === 'h') {
  2941. return withoutSuffix ? 'гадзіна' : 'гадзіну';
  2942. }
  2943. else {
  2944. return number + ' ' + plural(format[key], +number);
  2945. }
  2946. }
  2947. function monthsCaseReplace(m, format) {
  2948. var months = {
  2949. 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
  2950. 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
  2951. },
  2952. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  2953. 'accusative' :
  2954. 'nominative';
  2955. return months[nounCase][m.month()];
  2956. }
  2957. function weekdaysCaseReplace(m, format) {
  2958. var weekdays = {
  2959. 'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
  2960. 'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
  2961. },
  2962. nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
  2963. 'accusative' :
  2964. 'nominative';
  2965. return weekdays[nounCase][m.day()];
  2966. }
  2967. return moment.defineLocale('be', {
  2968. months : monthsCaseReplace,
  2969. monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
  2970. weekdays : weekdaysCaseReplace,
  2971. weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  2972. weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  2973. longDateFormat : {
  2974. LT : 'HH:mm',
  2975. LTS : 'LT:ss',
  2976. L : 'DD.MM.YYYY',
  2977. LL : 'D MMMM YYYY г.',
  2978. LLL : 'D MMMM YYYY г., LT',
  2979. LLLL : 'dddd, D MMMM YYYY г., LT'
  2980. },
  2981. calendar : {
  2982. sameDay: '[Сёння ў] LT',
  2983. nextDay: '[Заўтра ў] LT',
  2984. lastDay: '[Учора ў] LT',
  2985. nextWeek: function () {
  2986. return '[У] dddd [ў] LT';
  2987. },
  2988. lastWeek: function () {
  2989. switch (this.day()) {
  2990. case 0:
  2991. case 3:
  2992. case 5:
  2993. case 6:
  2994. return '[У мінулую] dddd [ў] LT';
  2995. case 1:
  2996. case 2:
  2997. case 4:
  2998. return '[У мінулы] dddd [ў] LT';
  2999. }
  3000. },
  3001. sameElse: 'L'
  3002. },
  3003. relativeTime : {
  3004. future : 'праз %s',
  3005. past : '%s таму',
  3006. s : 'некалькі секунд',
  3007. m : relativeTimeWithPlural,
  3008. mm : relativeTimeWithPlural,
  3009. h : relativeTimeWithPlural,
  3010. hh : relativeTimeWithPlural,
  3011. d : 'дзень',
  3012. dd : relativeTimeWithPlural,
  3013. M : 'месяц',
  3014. MM : relativeTimeWithPlural,
  3015. y : 'год',
  3016. yy : relativeTimeWithPlural
  3017. },
  3018. meridiem : function (hour, minute, isLower) {
  3019. if (hour < 4) {
  3020. return 'ночы';
  3021. } else if (hour < 12) {
  3022. return 'раніцы';
  3023. } else if (hour < 17) {
  3024. return 'дня';
  3025. } else {
  3026. return 'вечара';
  3027. }
  3028. },
  3029. ordinalParse: /\d{1,2}-(і|ы|га)/,
  3030. ordinal: function (number, period) {
  3031. switch (period) {
  3032. case 'M':
  3033. case 'd':
  3034. case 'DDD':
  3035. case 'w':
  3036. case 'W':
  3037. return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
  3038. case 'D':
  3039. return number + '-га';
  3040. default:
  3041. return number;
  3042. }
  3043. },
  3044. week : {
  3045. dow : 1, // Monday is the first day of the week.
  3046. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3047. }
  3048. });
  3049. }));
  3050. // moment.js locale configuration
  3051. // locale : bulgarian (bg)
  3052. // author : Krasen Borisov : https://github.com/kraz
  3053. (function (factory) {
  3054. factory(moment);
  3055. }(function (moment) {
  3056. return moment.defineLocale('bg', {
  3057. months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
  3058. monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
  3059. weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
  3060. weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
  3061. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  3062. longDateFormat : {
  3063. LT : 'H:mm',
  3064. LTS : 'LT:ss',
  3065. L : 'D.MM.YYYY',
  3066. LL : 'D MMMM YYYY',
  3067. LLL : 'D MMMM YYYY LT',
  3068. LLLL : 'dddd, D MMMM YYYY LT'
  3069. },
  3070. calendar : {
  3071. sameDay : '[Днес в] LT',
  3072. nextDay : '[Утре в] LT',
  3073. nextWeek : 'dddd [в] LT',
  3074. lastDay : '[Вчера в] LT',
  3075. lastWeek : function () {
  3076. switch (this.day()) {
  3077. case 0:
  3078. case 3:
  3079. case 6:
  3080. return '[В изминалата] dddd [в] LT';
  3081. case 1:
  3082. case 2:
  3083. case 4:
  3084. case 5:
  3085. return '[В изминалия] dddd [в] LT';
  3086. }
  3087. },
  3088. sameElse : 'L'
  3089. },
  3090. relativeTime : {
  3091. future : 'след %s',
  3092. past : 'преди %s',
  3093. s : 'няколко секунди',
  3094. m : 'минута',
  3095. mm : '%d минути',
  3096. h : 'час',
  3097. hh : '%d часа',
  3098. d : 'ден',
  3099. dd : '%d дни',
  3100. M : 'месец',
  3101. MM : '%d месеца',
  3102. y : 'година',
  3103. yy : '%d години'
  3104. },
  3105. ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  3106. ordinal : function (number) {
  3107. var lastDigit = number % 10,
  3108. last2Digits = number % 100;
  3109. if (number === 0) {
  3110. return number + '-ев';
  3111. } else if (last2Digits === 0) {
  3112. return number + '-ен';
  3113. } else if (last2Digits > 10 && last2Digits < 20) {
  3114. return number + '-ти';
  3115. } else if (lastDigit === 1) {
  3116. return number + '-ви';
  3117. } else if (lastDigit === 2) {
  3118. return number + '-ри';
  3119. } else if (lastDigit === 7 || lastDigit === 8) {
  3120. return number + '-ми';
  3121. } else {
  3122. return number + '-ти';
  3123. }
  3124. },
  3125. week : {
  3126. dow : 1, // Monday is the first day of the week.
  3127. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3128. }
  3129. });
  3130. }));
  3131. // moment.js locale configuration
  3132. // locale : Bengali (bn)
  3133. // author : Kaushik Gandhi : https://github.com/kaushikgandhi
  3134. (function (factory) {
  3135. factory(moment);
  3136. }(function (moment) {
  3137. var symbolMap = {
  3138. '1': '১',
  3139. '2': '২',
  3140. '3': '৩',
  3141. '4': '৪',
  3142. '5': '৫',
  3143. '6': '৬',
  3144. '7': '৭',
  3145. '8': '৮',
  3146. '9': '৯',
  3147. '0': '০'
  3148. },
  3149. numberMap = {
  3150. '১': '1',
  3151. '২': '2',
  3152. '৩': '3',
  3153. '৪': '4',
  3154. '৫': '5',
  3155. '৬': '6',
  3156. '৭': '7',
  3157. '৮': '8',
  3158. '৯': '9',
  3159. '০': '0'
  3160. };
  3161. return moment.defineLocale('bn', {
  3162. months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
  3163. monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
  3164. weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split('_'),
  3165. weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split('_'),
  3166. weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
  3167. longDateFormat : {
  3168. LT : 'A h:mm সময়',
  3169. LTS : 'A h:mm:ss সময়',
  3170. L : 'DD/MM/YYYY',
  3171. LL : 'D MMMM YYYY',
  3172. LLL : 'D MMMM YYYY, LT',
  3173. LLLL : 'dddd, D MMMM YYYY, LT'
  3174. },
  3175. calendar : {
  3176. sameDay : '[আজ] LT',
  3177. nextDay : '[আগামীকাল] LT',
  3178. nextWeek : 'dddd, LT',
  3179. lastDay : '[গতকাল] LT',
  3180. lastWeek : '[গত] dddd, LT',
  3181. sameElse : 'L'
  3182. },
  3183. relativeTime : {
  3184. future : '%s পরে',
  3185. past : '%s আগে',
  3186. s : 'কএক সেকেন্ড',
  3187. m : 'এক মিনিট',
  3188. mm : '%d মিনিট',
  3189. h : 'এক ঘন্টা',
  3190. hh : '%d ঘন্টা',
  3191. d : 'এক দিন',
  3192. dd : '%d দিন',
  3193. M : 'এক মাস',
  3194. MM : '%d মাস',
  3195. y : 'এক বছর',
  3196. yy : '%d বছর'
  3197. },
  3198. preparse: function (string) {
  3199. return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
  3200. return numberMap[match];
  3201. });
  3202. },
  3203. postformat: function (string) {
  3204. return string.replace(/\d/g, function (match) {
  3205. return symbolMap[match];
  3206. });
  3207. },
  3208. //Bengali is a vast language its spoken
  3209. //in different forms in various parts of the world.
  3210. //I have just generalized with most common one used
  3211. meridiem : function (hour, minute, isLower) {
  3212. if (hour < 4) {
  3213. return 'রাত';
  3214. } else if (hour < 10) {
  3215. return 'শকাল';
  3216. } else if (hour < 17) {
  3217. return 'দুপুর';
  3218. } else if (hour < 20) {
  3219. return 'বিকেল';
  3220. } else {
  3221. return 'রাত';
  3222. }
  3223. },
  3224. week : {
  3225. dow : 0, // Sunday is the first day of the week.
  3226. doy : 6 // The week that contains Jan 1st is the first week of the year.
  3227. }
  3228. });
  3229. }));
  3230. // moment.js locale configuration
  3231. // locale : tibetan (bo)
  3232. // author : Thupten N. Chakrishar : https://github.com/vajradog
  3233. (function (factory) {
  3234. factory(moment);
  3235. }(function (moment) {
  3236. var symbolMap = {
  3237. '1': '༡',
  3238. '2': '༢',
  3239. '3': '༣',
  3240. '4': '༤',
  3241. '5': '༥',
  3242. '6': '༦',
  3243. '7': '༧',
  3244. '8': '༨',
  3245. '9': '༩',
  3246. '0': '༠'
  3247. },
  3248. numberMap = {
  3249. '༡': '1',
  3250. '༢': '2',
  3251. '༣': '3',
  3252. '༤': '4',
  3253. '༥': '5',
  3254. '༦': '6',
  3255. '༧': '7',
  3256. '༨': '8',
  3257. '༩': '9',
  3258. '༠': '0'
  3259. };
  3260. return moment.defineLocale('bo', {
  3261. months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  3262. monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  3263. weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
  3264. weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  3265. weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  3266. longDateFormat : {
  3267. LT : 'A h:mm',
  3268. LTS : 'LT:ss',
  3269. L : 'DD/MM/YYYY',
  3270. LL : 'D MMMM YYYY',
  3271. LLL : 'D MMMM YYYY, LT',
  3272. LLLL : 'dddd, D MMMM YYYY, LT'
  3273. },
  3274. calendar : {
  3275. sameDay : '[དི་རིང] LT',
  3276. nextDay : '[སང་ཉིན] LT',
  3277. nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
  3278. lastDay : '[ཁ་སང] LT',
  3279. lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
  3280. sameElse : 'L'
  3281. },
  3282. relativeTime : {
  3283. future : '%s ལ་',
  3284. past : '%s སྔན་ལ',
  3285. s : 'ལམ་སང',
  3286. m : 'སྐར་མ་གཅིག',
  3287. mm : '%d སྐར་མ',
  3288. h : 'ཆུ་ཚོད་གཅིག',
  3289. hh : '%d ཆུ་ཚོད',
  3290. d : 'ཉིན་གཅིག',
  3291. dd : '%d ཉིན་',
  3292. M : 'ཟླ་བ་གཅིག',
  3293. MM : '%d ཟླ་བ',
  3294. y : 'ལོ་གཅིག',
  3295. yy : '%d ལོ'
  3296. },
  3297. preparse: function (string) {
  3298. return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
  3299. return numberMap[match];
  3300. });
  3301. },
  3302. postformat: function (string) {
  3303. return string.replace(/\d/g, function (match) {
  3304. return symbolMap[match];
  3305. });
  3306. },
  3307. meridiem : function (hour, minute, isLower) {
  3308. if (hour < 4) {
  3309. return 'མཚན་མོ';
  3310. } else if (hour < 10) {
  3311. return 'ཞོགས་ཀས';
  3312. } else if (hour < 17) {
  3313. return 'ཉིན་གུང';
  3314. } else if (hour < 20) {
  3315. return 'དགོང་དག';
  3316. } else {
  3317. return 'མཚན་མོ';
  3318. }
  3319. },
  3320. week : {
  3321. dow : 0, // Sunday is the first day of the week.
  3322. doy : 6 // The week that contains Jan 1st is the first week of the year.
  3323. }
  3324. });
  3325. }));
  3326. // moment.js locale configuration
  3327. // locale : breton (br)
  3328. // author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
  3329. (function (factory) {
  3330. factory(moment);
  3331. }(function (moment) {
  3332. function relativeTimeWithMutation(number, withoutSuffix, key) {
  3333. var format = {
  3334. 'mm': 'munutenn',
  3335. 'MM': 'miz',
  3336. 'dd': 'devezh'
  3337. };
  3338. return number + ' ' + mutation(format[key], number);
  3339. }
  3340. function specialMutationForYears(number) {
  3341. switch (lastNumber(number)) {
  3342. case 1:
  3343. case 3:
  3344. case 4:
  3345. case 5:
  3346. case 9:
  3347. return number + ' bloaz';
  3348. default:
  3349. return number + ' vloaz';
  3350. }
  3351. }
  3352. function lastNumber(number) {
  3353. if (number > 9) {
  3354. return lastNumber(number % 10);
  3355. }
  3356. return number;
  3357. }
  3358. function mutation(text, number) {
  3359. if (number === 2) {
  3360. return softMutation(text);
  3361. }
  3362. return text;
  3363. }
  3364. function softMutation(text) {
  3365. var mutationTable = {
  3366. 'm': 'v',
  3367. 'b': 'v',
  3368. 'd': 'z'
  3369. };
  3370. if (mutationTable[text.charAt(0)] === undefined) {
  3371. return text;
  3372. }
  3373. return mutationTable[text.charAt(0)] + text.substring(1);
  3374. }
  3375. return moment.defineLocale('br', {
  3376. months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
  3377. monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
  3378. weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
  3379. weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
  3380. weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
  3381. longDateFormat : {
  3382. LT : 'h[e]mm A',
  3383. LTS : 'h[e]mm:ss A',
  3384. L : 'DD/MM/YYYY',
  3385. LL : 'D [a viz] MMMM YYYY',
  3386. LLL : 'D [a viz] MMMM YYYY LT',
  3387. LLLL : 'dddd, D [a viz] MMMM YYYY LT'
  3388. },
  3389. calendar : {
  3390. sameDay : '[Hiziv da] LT',
  3391. nextDay : '[Warc\'hoazh da] LT',
  3392. nextWeek : 'dddd [da] LT',
  3393. lastDay : '[Dec\'h da] LT',
  3394. lastWeek : 'dddd [paset da] LT',
  3395. sameElse : 'L'
  3396. },
  3397. relativeTime : {
  3398. future : 'a-benn %s',
  3399. past : '%s \'zo',
  3400. s : 'un nebeud segondennoù',
  3401. m : 'ur vunutenn',
  3402. mm : relativeTimeWithMutation,
  3403. h : 'un eur',
  3404. hh : '%d eur',
  3405. d : 'un devezh',
  3406. dd : relativeTimeWithMutation,
  3407. M : 'ur miz',
  3408. MM : relativeTimeWithMutation,
  3409. y : 'ur bloaz',
  3410. yy : specialMutationForYears
  3411. },
  3412. ordinalParse: /\d{1,2}(añ|vet)/,
  3413. ordinal : function (number) {
  3414. var output = (number === 1) ? 'añ' : 'vet';
  3415. return number + output;
  3416. },
  3417. week : {
  3418. dow : 1, // Monday is the first day of the week.
  3419. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3420. }
  3421. });
  3422. }));
  3423. // moment.js locale configuration
  3424. // locale : bosnian (bs)
  3425. // author : Nedim Cholich : https://github.com/frontyard
  3426. // based on (hr) translation by Bojan Marković
  3427. (function (factory) {
  3428. factory(moment);
  3429. }(function (moment) {
  3430. function translate(number, withoutSuffix, key) {
  3431. var result = number + ' ';
  3432. switch (key) {
  3433. case 'm':
  3434. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  3435. case 'mm':
  3436. if (number === 1) {
  3437. result += 'minuta';
  3438. } else if (number === 2 || number === 3 || number === 4) {
  3439. result += 'minute';
  3440. } else {
  3441. result += 'minuta';
  3442. }
  3443. return result;
  3444. case 'h':
  3445. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  3446. case 'hh':
  3447. if (number === 1) {
  3448. result += 'sat';
  3449. } else if (number === 2 || number === 3 || number === 4) {
  3450. result += 'sata';
  3451. } else {
  3452. result += 'sati';
  3453. }
  3454. return result;
  3455. case 'dd':
  3456. if (number === 1) {
  3457. result += 'dan';
  3458. } else {
  3459. result += 'dana';
  3460. }
  3461. return result;
  3462. case 'MM':
  3463. if (number === 1) {
  3464. result += 'mjesec';
  3465. } else if (number === 2 || number === 3 || number === 4) {
  3466. result += 'mjeseca';
  3467. } else {
  3468. result += 'mjeseci';
  3469. }
  3470. return result;
  3471. case 'yy':
  3472. if (number === 1) {
  3473. result += 'godina';
  3474. } else if (number === 2 || number === 3 || number === 4) {
  3475. result += 'godine';
  3476. } else {
  3477. result += 'godina';
  3478. }
  3479. return result;
  3480. }
  3481. }
  3482. return moment.defineLocale('bs', {
  3483. months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
  3484. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
  3485. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  3486. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  3487. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  3488. longDateFormat : {
  3489. LT : 'H:mm',
  3490. LTS : 'LT:ss',
  3491. L : 'DD. MM. YYYY',
  3492. LL : 'D. MMMM YYYY',
  3493. LLL : 'D. MMMM YYYY LT',
  3494. LLLL : 'dddd, D. MMMM YYYY LT'
  3495. },
  3496. calendar : {
  3497. sameDay : '[danas u] LT',
  3498. nextDay : '[sutra u] LT',
  3499. nextWeek : function () {
  3500. switch (this.day()) {
  3501. case 0:
  3502. return '[u] [nedjelju] [u] LT';
  3503. case 3:
  3504. return '[u] [srijedu] [u] LT';
  3505. case 6:
  3506. return '[u] [subotu] [u] LT';
  3507. case 1:
  3508. case 2:
  3509. case 4:
  3510. case 5:
  3511. return '[u] dddd [u] LT';
  3512. }
  3513. },
  3514. lastDay : '[jučer u] LT',
  3515. lastWeek : function () {
  3516. switch (this.day()) {
  3517. case 0:
  3518. case 3:
  3519. return '[prošlu] dddd [u] LT';
  3520. case 6:
  3521. return '[prošle] [subote] [u] LT';
  3522. case 1:
  3523. case 2:
  3524. case 4:
  3525. case 5:
  3526. return '[prošli] dddd [u] LT';
  3527. }
  3528. },
  3529. sameElse : 'L'
  3530. },
  3531. relativeTime : {
  3532. future : 'za %s',
  3533. past : 'prije %s',
  3534. s : 'par sekundi',
  3535. m : translate,
  3536. mm : translate,
  3537. h : translate,
  3538. hh : translate,
  3539. d : 'dan',
  3540. dd : translate,
  3541. M : 'mjesec',
  3542. MM : translate,
  3543. y : 'godinu',
  3544. yy : translate
  3545. },
  3546. ordinalParse: /\d{1,2}\./,
  3547. ordinal : '%d.',
  3548. week : {
  3549. dow : 1, // Monday is the first day of the week.
  3550. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3551. }
  3552. });
  3553. }));
  3554. // moment.js locale configuration
  3555. // locale : catalan (ca)
  3556. // author : Juan G. Hurtado : https://github.com/juanghurtado
  3557. (function (factory) {
  3558. factory(moment);
  3559. }(function (moment) {
  3560. return moment.defineLocale('ca', {
  3561. months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
  3562. monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
  3563. weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
  3564. weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
  3565. weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
  3566. longDateFormat : {
  3567. LT : 'H:mm',
  3568. LTS : 'LT:ss',
  3569. L : 'DD/MM/YYYY',
  3570. LL : 'D MMMM YYYY',
  3571. LLL : 'D MMMM YYYY LT',
  3572. LLLL : 'dddd D MMMM YYYY LT'
  3573. },
  3574. calendar : {
  3575. sameDay : function () {
  3576. return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3577. },
  3578. nextDay : function () {
  3579. return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3580. },
  3581. nextWeek : function () {
  3582. return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3583. },
  3584. lastDay : function () {
  3585. return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3586. },
  3587. lastWeek : function () {
  3588. return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3589. },
  3590. sameElse : 'L'
  3591. },
  3592. relativeTime : {
  3593. future : 'en %s',
  3594. past : 'fa %s',
  3595. s : 'uns segons',
  3596. m : 'un minut',
  3597. mm : '%d minuts',
  3598. h : 'una hora',
  3599. hh : '%d hores',
  3600. d : 'un dia',
  3601. dd : '%d dies',
  3602. M : 'un mes',
  3603. MM : '%d mesos',
  3604. y : 'un any',
  3605. yy : '%d anys'
  3606. },
  3607. ordinalParse: /\d{1,2}(r|n|t|è|a)/,
  3608. ordinal : function (number, period) {
  3609. var output = (number === 1) ? 'r' :
  3610. (number === 2) ? 'n' :
  3611. (number === 3) ? 'r' :
  3612. (number === 4) ? 't' : 'è';
  3613. if (period === 'w' || period === 'W') {
  3614. output = 'a';
  3615. }
  3616. return number + output;
  3617. },
  3618. week : {
  3619. dow : 1, // Monday is the first day of the week.
  3620. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3621. }
  3622. });
  3623. }));
  3624. // moment.js locale configuration
  3625. // locale : czech (cs)
  3626. // author : petrbela : https://github.com/petrbela
  3627. (function (factory) {
  3628. factory(moment);
  3629. }(function (moment) {
  3630. var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
  3631. monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
  3632. function plural(n) {
  3633. return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
  3634. }
  3635. function translate(number, withoutSuffix, key, isFuture) {
  3636. var result = number + ' ';
  3637. switch (key) {
  3638. case 's': // a few seconds / in a few seconds / a few seconds ago
  3639. return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
  3640. case 'm': // a minute / in a minute / a minute ago
  3641. return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
  3642. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  3643. if (withoutSuffix || isFuture) {
  3644. return result + (plural(number) ? 'minuty' : 'minut');
  3645. } else {
  3646. return result + 'minutami';
  3647. }
  3648. break;
  3649. case 'h': // an hour / in an hour / an hour ago
  3650. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  3651. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  3652. if (withoutSuffix || isFuture) {
  3653. return result + (plural(number) ? 'hodiny' : 'hodin');
  3654. } else {
  3655. return result + 'hodinami';
  3656. }
  3657. break;
  3658. case 'd': // a day / in a day / a day ago
  3659. return (withoutSuffix || isFuture) ? 'den' : 'dnem';
  3660. case 'dd': // 9 days / in 9 days / 9 days ago
  3661. if (withoutSuffix || isFuture) {
  3662. return result + (plural(number) ? 'dny' : 'dní');
  3663. } else {
  3664. return result + 'dny';
  3665. }
  3666. break;
  3667. case 'M': // a month / in a month / a month ago
  3668. return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
  3669. case 'MM': // 9 months / in 9 months / 9 months ago
  3670. if (withoutSuffix || isFuture) {
  3671. return result + (plural(number) ? 'měsíce' : 'měsíců');
  3672. } else {
  3673. return result + 'měsíci';
  3674. }
  3675. break;
  3676. case 'y': // a year / in a year / a year ago
  3677. return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
  3678. case 'yy': // 9 years / in 9 years / 9 years ago
  3679. if (withoutSuffix || isFuture) {
  3680. return result + (plural(number) ? 'roky' : 'let');
  3681. } else {
  3682. return result + 'lety';
  3683. }
  3684. break;
  3685. }
  3686. }
  3687. return moment.defineLocale('cs', {
  3688. months : months,
  3689. monthsShort : monthsShort,
  3690. monthsParse : (function (months, monthsShort) {
  3691. var i, _monthsParse = [];
  3692. for (i = 0; i < 12; i++) {
  3693. // use custom parser to solve problem with July (červenec)
  3694. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  3695. }
  3696. return _monthsParse;
  3697. }(months, monthsShort)),
  3698. weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
  3699. weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
  3700. weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
  3701. longDateFormat : {
  3702. LT: 'H:mm',
  3703. LTS : 'LT:ss',
  3704. L : 'DD.MM.YYYY',
  3705. LL : 'D. MMMM YYYY',
  3706. LLL : 'D. MMMM YYYY LT',
  3707. LLLL : 'dddd D. MMMM YYYY LT'
  3708. },
  3709. calendar : {
  3710. sameDay: '[dnes v] LT',
  3711. nextDay: '[zítra v] LT',
  3712. nextWeek: function () {
  3713. switch (this.day()) {
  3714. case 0:
  3715. return '[v neděli v] LT';
  3716. case 1:
  3717. case 2:
  3718. return '[v] dddd [v] LT';
  3719. case 3:
  3720. return '[ve středu v] LT';
  3721. case 4:
  3722. return '[ve čtvrtek v] LT';
  3723. case 5:
  3724. return '[v pátek v] LT';
  3725. case 6:
  3726. return '[v sobotu v] LT';
  3727. }
  3728. },
  3729. lastDay: '[včera v] LT',
  3730. lastWeek: function () {
  3731. switch (this.day()) {
  3732. case 0:
  3733. return '[minulou neděli v] LT';
  3734. case 1:
  3735. case 2:
  3736. return '[minulé] dddd [v] LT';
  3737. case 3:
  3738. return '[minulou středu v] LT';
  3739. case 4:
  3740. case 5:
  3741. return '[minulý] dddd [v] LT';
  3742. case 6:
  3743. return '[minulou sobotu v] LT';
  3744. }
  3745. },
  3746. sameElse: 'L'
  3747. },
  3748. relativeTime : {
  3749. future : 'za %s',
  3750. past : 'před %s',
  3751. s : translate,
  3752. m : translate,
  3753. mm : translate,
  3754. h : translate,
  3755. hh : translate,
  3756. d : translate,
  3757. dd : translate,
  3758. M : translate,
  3759. MM : translate,
  3760. y : translate,
  3761. yy : translate
  3762. },
  3763. ordinalParse : /\d{1,2}\./,
  3764. ordinal : '%d.',
  3765. week : {
  3766. dow : 1, // Monday is the first day of the week.
  3767. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3768. }
  3769. });
  3770. }));
  3771. // moment.js locale configuration
  3772. // locale : chuvash (cv)
  3773. // author : Anatoly Mironov : https://github.com/mirontoli
  3774. (function (factory) {
  3775. factory(moment);
  3776. }(function (moment) {
  3777. return moment.defineLocale('cv', {
  3778. months : 'кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав'.split('_'),
  3779. monthsShort : 'кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш'.split('_'),
  3780. weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун'.split('_'),
  3781. weekdaysShort : 'выр_тун_ытл_юн_кĕç_эрн_шăм'.split('_'),
  3782. weekdaysMin : 'вр_тн_ыт_юн_кç_эр_шм'.split('_'),
  3783. longDateFormat : {
  3784. LT : 'HH:mm',
  3785. LTS : 'LT:ss',
  3786. L : 'DD-MM-YYYY',
  3787. LL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]',
  3788. LLL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT',
  3789. LLLL : 'dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT'
  3790. },
  3791. calendar : {
  3792. sameDay: '[Паян] LT [сехетре]',
  3793. nextDay: '[Ыран] LT [сехетре]',
  3794. lastDay: '[Ĕнер] LT [сехетре]',
  3795. nextWeek: '[Çитес] dddd LT [сехетре]',
  3796. lastWeek: '[Иртнĕ] dddd LT [сехетре]',
  3797. sameElse: 'L'
  3798. },
  3799. relativeTime : {
  3800. future : function (output) {
  3801. var affix = /сехет$/i.exec(output) ? 'рен' : /çул$/i.exec(output) ? 'тан' : 'ран';
  3802. return output + affix;
  3803. },
  3804. past : '%s каялла',
  3805. s : 'пĕр-ик çеккунт',
  3806. m : 'пĕр минут',
  3807. mm : '%d минут',
  3808. h : 'пĕр сехет',
  3809. hh : '%d сехет',
  3810. d : 'пĕр кун',
  3811. dd : '%d кун',
  3812. M : 'пĕр уйăх',
  3813. MM : '%d уйăх',
  3814. y : 'пĕр çул',
  3815. yy : '%d çул'
  3816. },
  3817. ordinalParse: /\d{1,2}-мĕш/,
  3818. ordinal : '%d-мĕш',
  3819. week : {
  3820. dow : 1, // Monday is the first day of the week.
  3821. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3822. }
  3823. });
  3824. }));
  3825. // moment.js locale configuration
  3826. // locale : Welsh (cy)
  3827. // author : Robert Allen
  3828. (function (factory) {
  3829. factory(moment);
  3830. }(function (moment) {
  3831. return moment.defineLocale('cy', {
  3832. months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
  3833. monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
  3834. weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
  3835. weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
  3836. weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
  3837. // time formats are the same as en-gb
  3838. longDateFormat: {
  3839. LT: 'HH:mm',
  3840. LTS : 'LT:ss',
  3841. L: 'DD/MM/YYYY',
  3842. LL: 'D MMMM YYYY',
  3843. LLL: 'D MMMM YYYY LT',
  3844. LLLL: 'dddd, D MMMM YYYY LT'
  3845. },
  3846. calendar: {
  3847. sameDay: '[Heddiw am] LT',
  3848. nextDay: '[Yfory am] LT',
  3849. nextWeek: 'dddd [am] LT',
  3850. lastDay: '[Ddoe am] LT',
  3851. lastWeek: 'dddd [diwethaf am] LT',
  3852. sameElse: 'L'
  3853. },
  3854. relativeTime: {
  3855. future: 'mewn %s',
  3856. past: '%s yn ôl',
  3857. s: 'ychydig eiliadau',
  3858. m: 'munud',
  3859. mm: '%d munud',
  3860. h: 'awr',
  3861. hh: '%d awr',
  3862. d: 'diwrnod',
  3863. dd: '%d diwrnod',
  3864. M: 'mis',
  3865. MM: '%d mis',
  3866. y: 'blwyddyn',
  3867. yy: '%d flynedd'
  3868. },
  3869. ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
  3870. // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
  3871. ordinal: function (number) {
  3872. var b = number,
  3873. output = '',
  3874. lookup = [
  3875. '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
  3876. 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
  3877. ];
  3878. if (b > 20) {
  3879. if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
  3880. output = 'fed'; // not 30ain, 70ain or 90ain
  3881. } else {
  3882. output = 'ain';
  3883. }
  3884. } else if (b > 0) {
  3885. output = lookup[b];
  3886. }
  3887. return number + output;
  3888. },
  3889. week : {
  3890. dow : 1, // Monday is the first day of the week.
  3891. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3892. }
  3893. });
  3894. }));
  3895. // moment.js locale configuration
  3896. // locale : danish (da)
  3897. // author : Ulrik Nielsen : https://github.com/mrbase
  3898. (function (factory) {
  3899. factory(moment);
  3900. }(function (moment) {
  3901. return moment.defineLocale('da', {
  3902. months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
  3903. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  3904. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  3905. weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
  3906. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  3907. longDateFormat : {
  3908. LT : 'HH:mm',
  3909. LTS : 'LT:ss',
  3910. L : 'DD/MM/YYYY',
  3911. LL : 'D. MMMM YYYY',
  3912. LLL : 'D. MMMM YYYY LT',
  3913. LLLL : 'dddd [d.] D. MMMM YYYY LT'
  3914. },
  3915. calendar : {
  3916. sameDay : '[I dag kl.] LT',
  3917. nextDay : '[I morgen kl.] LT',
  3918. nextWeek : 'dddd [kl.] LT',
  3919. lastDay : '[I går kl.] LT',
  3920. lastWeek : '[sidste] dddd [kl] LT',
  3921. sameElse : 'L'
  3922. },
  3923. relativeTime : {
  3924. future : 'om %s',
  3925. past : '%s siden',
  3926. s : 'få sekunder',
  3927. m : 'et minut',
  3928. mm : '%d minutter',
  3929. h : 'en time',
  3930. hh : '%d timer',
  3931. d : 'en dag',
  3932. dd : '%d dage',
  3933. M : 'en måned',
  3934. MM : '%d måneder',
  3935. y : 'et år',
  3936. yy : '%d år'
  3937. },
  3938. ordinalParse: /\d{1,2}\./,
  3939. ordinal : '%d.',
  3940. week : {
  3941. dow : 1, // Monday is the first day of the week.
  3942. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3943. }
  3944. });
  3945. }));
  3946. // moment.js locale configuration
  3947. // locale : austrian german (de-at)
  3948. // author : lluchs : https://github.com/lluchs
  3949. // author: Menelion Elensúle: https://github.com/Oire
  3950. // author : Martin Groller : https://github.com/MadMG
  3951. (function (factory) {
  3952. factory(moment);
  3953. }(function (moment) {
  3954. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  3955. var format = {
  3956. 'm': ['eine Minute', 'einer Minute'],
  3957. 'h': ['eine Stunde', 'einer Stunde'],
  3958. 'd': ['ein Tag', 'einem Tag'],
  3959. 'dd': [number + ' Tage', number + ' Tagen'],
  3960. 'M': ['ein Monat', 'einem Monat'],
  3961. 'MM': [number + ' Monate', number + ' Monaten'],
  3962. 'y': ['ein Jahr', 'einem Jahr'],
  3963. 'yy': [number + ' Jahre', number + ' Jahren']
  3964. };
  3965. return withoutSuffix ? format[key][0] : format[key][1];
  3966. }
  3967. return moment.defineLocale('de-at', {
  3968. months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  3969. monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  3970. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  3971. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  3972. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  3973. longDateFormat : {
  3974. LT: 'HH:mm',
  3975. LTS: 'HH:mm:ss',
  3976. L : 'DD.MM.YYYY',
  3977. LL : 'D. MMMM YYYY',
  3978. LLL : 'D. MMMM YYYY LT',
  3979. LLLL : 'dddd, D. MMMM YYYY LT'
  3980. },
  3981. calendar : {
  3982. sameDay: '[Heute um] LT [Uhr]',
  3983. sameElse: 'L',
  3984. nextDay: '[Morgen um] LT [Uhr]',
  3985. nextWeek: 'dddd [um] LT [Uhr]',
  3986. lastDay: '[Gestern um] LT [Uhr]',
  3987. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  3988. },
  3989. relativeTime : {
  3990. future : 'in %s',
  3991. past : 'vor %s',
  3992. s : 'ein paar Sekunden',
  3993. m : processRelativeTime,
  3994. mm : '%d Minuten',
  3995. h : processRelativeTime,
  3996. hh : '%d Stunden',
  3997. d : processRelativeTime,
  3998. dd : processRelativeTime,
  3999. M : processRelativeTime,
  4000. MM : processRelativeTime,
  4001. y : processRelativeTime,
  4002. yy : processRelativeTime
  4003. },
  4004. ordinalParse: /\d{1,2}\./,
  4005. ordinal : '%d.',
  4006. week : {
  4007. dow : 1, // Monday is the first day of the week.
  4008. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4009. }
  4010. });
  4011. }));
  4012. // moment.js locale configuration
  4013. // locale : german (de)
  4014. // author : lluchs : https://github.com/lluchs
  4015. // author: Menelion Elensúle: https://github.com/Oire
  4016. (function (factory) {
  4017. factory(moment);
  4018. }(function (moment) {
  4019. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  4020. var format = {
  4021. 'm': ['eine Minute', 'einer Minute'],
  4022. 'h': ['eine Stunde', 'einer Stunde'],
  4023. 'd': ['ein Tag', 'einem Tag'],
  4024. 'dd': [number + ' Tage', number + ' Tagen'],
  4025. 'M': ['ein Monat', 'einem Monat'],
  4026. 'MM': [number + ' Monate', number + ' Monaten'],
  4027. 'y': ['ein Jahr', 'einem Jahr'],
  4028. 'yy': [number + ' Jahre', number + ' Jahren']
  4029. };
  4030. return withoutSuffix ? format[key][0] : format[key][1];
  4031. }
  4032. return moment.defineLocale('de', {
  4033. months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  4034. monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  4035. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  4036. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  4037. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  4038. longDateFormat : {
  4039. LT: 'HH:mm',
  4040. LTS: 'HH:mm:ss',
  4041. L : 'DD.MM.YYYY',
  4042. LL : 'D. MMMM YYYY',
  4043. LLL : 'D. MMMM YYYY LT',
  4044. LLLL : 'dddd, D. MMMM YYYY LT'
  4045. },
  4046. calendar : {
  4047. sameDay: '[Heute um] LT [Uhr]',
  4048. sameElse: 'L',
  4049. nextDay: '[Morgen um] LT [Uhr]',
  4050. nextWeek: 'dddd [um] LT [Uhr]',
  4051. lastDay: '[Gestern um] LT [Uhr]',
  4052. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  4053. },
  4054. relativeTime : {
  4055. future : 'in %s',
  4056. past : 'vor %s',
  4057. s : 'ein paar Sekunden',
  4058. m : processRelativeTime,
  4059. mm : '%d Minuten',
  4060. h : processRelativeTime,
  4061. hh : '%d Stunden',
  4062. d : processRelativeTime,
  4063. dd : processRelativeTime,
  4064. M : processRelativeTime,
  4065. MM : processRelativeTime,
  4066. y : processRelativeTime,
  4067. yy : processRelativeTime
  4068. },
  4069. ordinalParse: /\d{1,2}\./,
  4070. ordinal : '%d.',
  4071. week : {
  4072. dow : 1, // Monday is the first day of the week.
  4073. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4074. }
  4075. });
  4076. }));
  4077. // moment.js locale configuration
  4078. // locale : modern greek (el)
  4079. // author : Aggelos Karalias : https://github.com/mehiel
  4080. (function (factory) {
  4081. factory(moment);
  4082. }(function (moment) {
  4083. return moment.defineLocale('el', {
  4084. monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
  4085. monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
  4086. months : function (momentToFormat, format) {
  4087. if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
  4088. return this._monthsGenitiveEl[momentToFormat.month()];
  4089. } else {
  4090. return this._monthsNominativeEl[momentToFormat.month()];
  4091. }
  4092. },
  4093. monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
  4094. weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
  4095. weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
  4096. weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
  4097. meridiem : function (hours, minutes, isLower) {
  4098. if (hours > 11) {
  4099. return isLower ? 'μμ' : 'ΜΜ';
  4100. } else {
  4101. return isLower ? 'πμ' : 'ΠΜ';
  4102. }
  4103. },
  4104. isPM : function (input) {
  4105. return ((input + '').toLowerCase()[0] === 'μ');
  4106. },
  4107. meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
  4108. longDateFormat : {
  4109. LT : 'h:mm A',
  4110. LTS : 'h:mm:ss A',
  4111. L : 'DD/MM/YYYY',
  4112. LL : 'D MMMM YYYY',
  4113. LLL : 'D MMMM YYYY LT',
  4114. LLLL : 'dddd, D MMMM YYYY LT'
  4115. },
  4116. calendarEl : {
  4117. sameDay : '[Σήμερα {}] LT',
  4118. nextDay : '[Αύριο {}] LT',
  4119. nextWeek : 'dddd [{}] LT',
  4120. lastDay : '[Χθες {}] LT',
  4121. lastWeek : function () {
  4122. switch (this.day()) {
  4123. case 6:
  4124. return '[το προηγούμενο] dddd [{}] LT';
  4125. default:
  4126. return '[την προηγούμενη] dddd [{}] LT';
  4127. }
  4128. },
  4129. sameElse : 'L'
  4130. },
  4131. calendar : function (key, mom) {
  4132. var output = this._calendarEl[key],
  4133. hours = mom && mom.hours();
  4134. if (typeof output === 'function') {
  4135. output = output.apply(mom);
  4136. }
  4137. return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
  4138. },
  4139. relativeTime : {
  4140. future : 'σε %s',
  4141. past : '%s πριν',
  4142. s : 'λίγα δευτερόλεπτα',
  4143. m : 'ένα λεπτό',
  4144. mm : '%d λεπτά',
  4145. h : 'μία ώρα',
  4146. hh : '%d ώρες',
  4147. d : 'μία μέρα',
  4148. dd : '%d μέρες',
  4149. M : 'ένας μήνας',
  4150. MM : '%d μήνες',
  4151. y : 'ένας χρόνος',
  4152. yy : '%d χρόνια'
  4153. },
  4154. ordinalParse: /\d{1,2}η/,
  4155. ordinal: '%dη',
  4156. week : {
  4157. dow : 1, // Monday is the first day of the week.
  4158. doy : 4 // The week that contains Jan 4st is the first week of the year.
  4159. }
  4160. });
  4161. }));
  4162. // moment.js locale configuration
  4163. // locale : australian english (en-au)
  4164. (function (factory) {
  4165. factory(moment);
  4166. }(function (moment) {
  4167. return moment.defineLocale('en-au', {
  4168. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4169. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4170. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4171. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4172. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4173. longDateFormat : {
  4174. LT : 'h:mm A',
  4175. LTS : 'h:mm:ss A',
  4176. L : 'DD/MM/YYYY',
  4177. LL : 'D MMMM YYYY',
  4178. LLL : 'D MMMM YYYY LT',
  4179. LLLL : 'dddd, D MMMM YYYY LT'
  4180. },
  4181. calendar : {
  4182. sameDay : '[Today at] LT',
  4183. nextDay : '[Tomorrow at] LT',
  4184. nextWeek : 'dddd [at] LT',
  4185. lastDay : '[Yesterday at] LT',
  4186. lastWeek : '[Last] dddd [at] LT',
  4187. sameElse : 'L'
  4188. },
  4189. relativeTime : {
  4190. future : 'in %s',
  4191. past : '%s ago',
  4192. s : 'a few seconds',
  4193. m : 'a minute',
  4194. mm : '%d minutes',
  4195. h : 'an hour',
  4196. hh : '%d hours',
  4197. d : 'a day',
  4198. dd : '%d days',
  4199. M : 'a month',
  4200. MM : '%d months',
  4201. y : 'a year',
  4202. yy : '%d years'
  4203. },
  4204. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4205. ordinal : function (number) {
  4206. var b = number % 10,
  4207. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4208. (b === 1) ? 'st' :
  4209. (b === 2) ? 'nd' :
  4210. (b === 3) ? 'rd' : 'th';
  4211. return number + output;
  4212. },
  4213. week : {
  4214. dow : 1, // Monday is the first day of the week.
  4215. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4216. }
  4217. });
  4218. }));
  4219. // moment.js locale configuration
  4220. // locale : canadian english (en-ca)
  4221. // author : Jonathan Abourbih : https://github.com/jonbca
  4222. (function (factory) {
  4223. factory(moment);
  4224. }(function (moment) {
  4225. return moment.defineLocale('en-ca', {
  4226. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4227. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4228. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4229. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4230. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4231. longDateFormat : {
  4232. LT : 'h:mm A',
  4233. LTS : 'h:mm:ss A',
  4234. L : 'YYYY-MM-DD',
  4235. LL : 'D MMMM, YYYY',
  4236. LLL : 'D MMMM, YYYY LT',
  4237. LLLL : 'dddd, D MMMM, YYYY LT'
  4238. },
  4239. calendar : {
  4240. sameDay : '[Today at] LT',
  4241. nextDay : '[Tomorrow at] LT',
  4242. nextWeek : 'dddd [at] LT',
  4243. lastDay : '[Yesterday at] LT',
  4244. lastWeek : '[Last] dddd [at] LT',
  4245. sameElse : 'L'
  4246. },
  4247. relativeTime : {
  4248. future : 'in %s',
  4249. past : '%s ago',
  4250. s : 'a few seconds',
  4251. m : 'a minute',
  4252. mm : '%d minutes',
  4253. h : 'an hour',
  4254. hh : '%d hours',
  4255. d : 'a day',
  4256. dd : '%d days',
  4257. M : 'a month',
  4258. MM : '%d months',
  4259. y : 'a year',
  4260. yy : '%d years'
  4261. },
  4262. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4263. ordinal : function (number) {
  4264. var b = number % 10,
  4265. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4266. (b === 1) ? 'st' :
  4267. (b === 2) ? 'nd' :
  4268. (b === 3) ? 'rd' : 'th';
  4269. return number + output;
  4270. }
  4271. });
  4272. }));
  4273. // moment.js locale configuration
  4274. // locale : great britain english (en-gb)
  4275. // author : Chris Gedrim : https://github.com/chrisgedrim
  4276. (function (factory) {
  4277. factory(moment);
  4278. }(function (moment) {
  4279. return moment.defineLocale('en-gb', {
  4280. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4281. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4282. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4283. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4284. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4285. longDateFormat : {
  4286. LT : 'HH:mm',
  4287. LTS : 'HH:mm:ss',
  4288. L : 'DD/MM/YYYY',
  4289. LL : 'D MMMM YYYY',
  4290. LLL : 'D MMMM YYYY LT',
  4291. LLLL : 'dddd, D MMMM YYYY LT'
  4292. },
  4293. calendar : {
  4294. sameDay : '[Today at] LT',
  4295. nextDay : '[Tomorrow at] LT',
  4296. nextWeek : 'dddd [at] LT',
  4297. lastDay : '[Yesterday at] LT',
  4298. lastWeek : '[Last] dddd [at] LT',
  4299. sameElse : 'L'
  4300. },
  4301. relativeTime : {
  4302. future : 'in %s',
  4303. past : '%s ago',
  4304. s : 'a few seconds',
  4305. m : 'a minute',
  4306. mm : '%d minutes',
  4307. h : 'an hour',
  4308. hh : '%d hours',
  4309. d : 'a day',
  4310. dd : '%d days',
  4311. M : 'a month',
  4312. MM : '%d months',
  4313. y : 'a year',
  4314. yy : '%d years'
  4315. },
  4316. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4317. ordinal : function (number) {
  4318. var b = number % 10,
  4319. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4320. (b === 1) ? 'st' :
  4321. (b === 2) ? 'nd' :
  4322. (b === 3) ? 'rd' : 'th';
  4323. return number + output;
  4324. },
  4325. week : {
  4326. dow : 1, // Monday is the first day of the week.
  4327. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4328. }
  4329. });
  4330. }));
  4331. // moment.js locale configuration
  4332. // locale : esperanto (eo)
  4333. // author : Colin Dean : https://github.com/colindean
  4334. // komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
  4335. // Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
  4336. (function (factory) {
  4337. factory(moment);
  4338. }(function (moment) {
  4339. return moment.defineLocale('eo', {
  4340. months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
  4341. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
  4342. weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
  4343. weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
  4344. weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
  4345. longDateFormat : {
  4346. LT : 'HH:mm',
  4347. LTS : 'LT:ss',
  4348. L : 'YYYY-MM-DD',
  4349. LL : 'D[-an de] MMMM, YYYY',
  4350. LLL : 'D[-an de] MMMM, YYYY LT',
  4351. LLLL : 'dddd, [la] D[-an de] MMMM, YYYY LT'
  4352. },
  4353. meridiem : function (hours, minutes, isLower) {
  4354. if (hours > 11) {
  4355. return isLower ? 'p.t.m.' : 'P.T.M.';
  4356. } else {
  4357. return isLower ? 'a.t.m.' : 'A.T.M.';
  4358. }
  4359. },
  4360. calendar : {
  4361. sameDay : '[Hodiaŭ je] LT',
  4362. nextDay : '[Morgaŭ je] LT',
  4363. nextWeek : 'dddd [je] LT',
  4364. lastDay : '[Hieraŭ je] LT',
  4365. lastWeek : '[pasinta] dddd [je] LT',
  4366. sameElse : 'L'
  4367. },
  4368. relativeTime : {
  4369. future : 'je %s',
  4370. past : 'antaŭ %s',
  4371. s : 'sekundoj',
  4372. m : 'minuto',
  4373. mm : '%d minutoj',
  4374. h : 'horo',
  4375. hh : '%d horoj',
  4376. d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
  4377. dd : '%d tagoj',
  4378. M : 'monato',
  4379. MM : '%d monatoj',
  4380. y : 'jaro',
  4381. yy : '%d jaroj'
  4382. },
  4383. ordinalParse: /\d{1,2}a/,
  4384. ordinal : '%da',
  4385. week : {
  4386. dow : 1, // Monday is the first day of the week.
  4387. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4388. }
  4389. });
  4390. }));
  4391. // moment.js locale configuration
  4392. // locale : spanish (es)
  4393. // author : Julio Napurí : https://github.com/julionc
  4394. (function (factory) {
  4395. factory(moment);
  4396. }(function (moment) {
  4397. var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
  4398. monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
  4399. return moment.defineLocale('es', {
  4400. months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
  4401. monthsShort : function (m, format) {
  4402. if (/-MMM-/.test(format)) {
  4403. return monthsShort[m.month()];
  4404. } else {
  4405. return monthsShortDot[m.month()];
  4406. }
  4407. },
  4408. weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
  4409. weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
  4410. weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
  4411. longDateFormat : {
  4412. LT : 'H:mm',
  4413. LTS : 'LT:ss',
  4414. L : 'DD/MM/YYYY',
  4415. LL : 'D [de] MMMM [de] YYYY',
  4416. LLL : 'D [de] MMMM [de] YYYY LT',
  4417. LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
  4418. },
  4419. calendar : {
  4420. sameDay : function () {
  4421. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4422. },
  4423. nextDay : function () {
  4424. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4425. },
  4426. nextWeek : function () {
  4427. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4428. },
  4429. lastDay : function () {
  4430. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4431. },
  4432. lastWeek : function () {
  4433. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4434. },
  4435. sameElse : 'L'
  4436. },
  4437. relativeTime : {
  4438. future : 'en %s',
  4439. past : 'hace %s',
  4440. s : 'unos segundos',
  4441. m : 'un minuto',
  4442. mm : '%d minutos',
  4443. h : 'una hora',
  4444. hh : '%d horas',
  4445. d : 'un día',
  4446. dd : '%d días',
  4447. M : 'un mes',
  4448. MM : '%d meses',
  4449. y : 'un año',
  4450. yy : '%d años'
  4451. },
  4452. ordinalParse : /\d{1,2}º/,
  4453. ordinal : '%dº',
  4454. week : {
  4455. dow : 1, // Monday is the first day of the week.
  4456. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4457. }
  4458. });
  4459. }));
  4460. // moment.js locale configuration
  4461. // locale : estonian (et)
  4462. // author : Henry Kehlmann : https://github.com/madhenry
  4463. // improvements : Illimar Tambek : https://github.com/ragulka
  4464. (function (factory) {
  4465. factory(moment);
  4466. }(function (moment) {
  4467. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  4468. var format = {
  4469. 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
  4470. 'm' : ['ühe minuti', 'üks minut'],
  4471. 'mm': [number + ' minuti', number + ' minutit'],
  4472. 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
  4473. 'hh': [number + ' tunni', number + ' tundi'],
  4474. 'd' : ['ühe päeva', 'üks päev'],
  4475. 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
  4476. 'MM': [number + ' kuu', number + ' kuud'],
  4477. 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
  4478. 'yy': [number + ' aasta', number + ' aastat']
  4479. };
  4480. if (withoutSuffix) {
  4481. return format[key][2] ? format[key][2] : format[key][1];
  4482. }
  4483. return isFuture ? format[key][0] : format[key][1];
  4484. }
  4485. return moment.defineLocale('et', {
  4486. months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
  4487. monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
  4488. weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
  4489. weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
  4490. weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
  4491. longDateFormat : {
  4492. LT : 'H:mm',
  4493. LTS : 'LT:ss',
  4494. L : 'DD.MM.YYYY',
  4495. LL : 'D. MMMM YYYY',
  4496. LLL : 'D. MMMM YYYY LT',
  4497. LLLL : 'dddd, D. MMMM YYYY LT'
  4498. },
  4499. calendar : {
  4500. sameDay : '[Täna,] LT',
  4501. nextDay : '[Homme,] LT',
  4502. nextWeek : '[Järgmine] dddd LT',
  4503. lastDay : '[Eile,] LT',
  4504. lastWeek : '[Eelmine] dddd LT',
  4505. sameElse : 'L'
  4506. },
  4507. relativeTime : {
  4508. future : '%s pärast',
  4509. past : '%s tagasi',
  4510. s : processRelativeTime,
  4511. m : processRelativeTime,
  4512. mm : processRelativeTime,
  4513. h : processRelativeTime,
  4514. hh : processRelativeTime,
  4515. d : processRelativeTime,
  4516. dd : '%d päeva',
  4517. M : processRelativeTime,
  4518. MM : processRelativeTime,
  4519. y : processRelativeTime,
  4520. yy : processRelativeTime
  4521. },
  4522. ordinalParse: /\d{1,2}\./,
  4523. ordinal : '%d.',
  4524. week : {
  4525. dow : 1, // Monday is the first day of the week.
  4526. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4527. }
  4528. });
  4529. }));
  4530. // moment.js locale configuration
  4531. // locale : euskara (eu)
  4532. // author : Eneko Illarramendi : https://github.com/eillarra
  4533. (function (factory) {
  4534. factory(moment);
  4535. }(function (moment) {
  4536. return moment.defineLocale('eu', {
  4537. months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
  4538. monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
  4539. weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
  4540. weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
  4541. weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
  4542. longDateFormat : {
  4543. LT : 'HH:mm',
  4544. LTS : 'LT:ss',
  4545. L : 'YYYY-MM-DD',
  4546. LL : 'YYYY[ko] MMMM[ren] D[a]',
  4547. LLL : 'YYYY[ko] MMMM[ren] D[a] LT',
  4548. LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] LT',
  4549. l : 'YYYY-M-D',
  4550. ll : 'YYYY[ko] MMM D[a]',
  4551. lll : 'YYYY[ko] MMM D[a] LT',
  4552. llll : 'ddd, YYYY[ko] MMM D[a] LT'
  4553. },
  4554. calendar : {
  4555. sameDay : '[gaur] LT[etan]',
  4556. nextDay : '[bihar] LT[etan]',
  4557. nextWeek : 'dddd LT[etan]',
  4558. lastDay : '[atzo] LT[etan]',
  4559. lastWeek : '[aurreko] dddd LT[etan]',
  4560. sameElse : 'L'
  4561. },
  4562. relativeTime : {
  4563. future : '%s barru',
  4564. past : 'duela %s',
  4565. s : 'segundo batzuk',
  4566. m : 'minutu bat',
  4567. mm : '%d minutu',
  4568. h : 'ordu bat',
  4569. hh : '%d ordu',
  4570. d : 'egun bat',
  4571. dd : '%d egun',
  4572. M : 'hilabete bat',
  4573. MM : '%d hilabete',
  4574. y : 'urte bat',
  4575. yy : '%d urte'
  4576. },
  4577. ordinalParse: /\d{1,2}\./,
  4578. ordinal : '%d.',
  4579. week : {
  4580. dow : 1, // Monday is the first day of the week.
  4581. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4582. }
  4583. });
  4584. }));
  4585. // moment.js locale configuration
  4586. // locale : Persian (fa)
  4587. // author : Ebrahim Byagowi : https://github.com/ebraminio
  4588. (function (factory) {
  4589. factory(moment);
  4590. }(function (moment) {
  4591. var symbolMap = {
  4592. '1': '۱',
  4593. '2': '۲',
  4594. '3': '۳',
  4595. '4': '۴',
  4596. '5': '۵',
  4597. '6': '۶',
  4598. '7': '۷',
  4599. '8': '۸',
  4600. '9': '۹',
  4601. '0': '۰'
  4602. }, numberMap = {
  4603. '۱': '1',
  4604. '۲': '2',
  4605. '۳': '3',
  4606. '۴': '4',
  4607. '۵': '5',
  4608. '۶': '6',
  4609. '۷': '7',
  4610. '۸': '8',
  4611. '۹': '9',
  4612. '۰': '0'
  4613. };
  4614. return moment.defineLocale('fa', {
  4615. months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  4616. monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  4617. weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  4618. weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  4619. weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
  4620. longDateFormat : {
  4621. LT : 'HH:mm',
  4622. LTS : 'LT:ss',
  4623. L : 'DD/MM/YYYY',
  4624. LL : 'D MMMM YYYY',
  4625. LLL : 'D MMMM YYYY LT',
  4626. LLLL : 'dddd, D MMMM YYYY LT'
  4627. },
  4628. meridiem : function (hour, minute, isLower) {
  4629. if (hour < 12) {
  4630. return 'قبل از ظهر';
  4631. } else {
  4632. return 'بعد از ظهر';
  4633. }
  4634. },
  4635. calendar : {
  4636. sameDay : '[امروز ساعت] LT',
  4637. nextDay : '[فردا ساعت] LT',
  4638. nextWeek : 'dddd [ساعت] LT',
  4639. lastDay : '[دیروز ساعت] LT',
  4640. lastWeek : 'dddd [پیش] [ساعت] LT',
  4641. sameElse : 'L'
  4642. },
  4643. relativeTime : {
  4644. future : 'در %s',
  4645. past : '%s پیش',
  4646. s : 'چندین ثانیه',
  4647. m : 'یک دقیقه',
  4648. mm : '%d دقیقه',
  4649. h : 'یک ساعت',
  4650. hh : '%d ساعت',
  4651. d : 'یک روز',
  4652. dd : '%d روز',
  4653. M : 'یک ماه',
  4654. MM : '%d ماه',
  4655. y : 'یک سال',
  4656. yy : '%d سال'
  4657. },
  4658. preparse: function (string) {
  4659. return string.replace(/[۰-۹]/g, function (match) {
  4660. return numberMap[match];
  4661. }).replace(/،/g, ',');
  4662. },
  4663. postformat: function (string) {
  4664. return string.replace(/\d/g, function (match) {
  4665. return symbolMap[match];
  4666. }).replace(/,/g, '،');
  4667. },
  4668. ordinalParse: /\d{1,2}م/,
  4669. ordinal : '%dم',
  4670. week : {
  4671. dow : 6, // Saturday is the first day of the week.
  4672. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4673. }
  4674. });
  4675. }));
  4676. // moment.js locale configuration
  4677. // locale : finnish (fi)
  4678. // author : Tarmo Aidantausta : https://github.com/bleadof
  4679. (function (factory) {
  4680. factory(moment);
  4681. }(function (moment) {
  4682. var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
  4683. numbersFuture = [
  4684. 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
  4685. numbersPast[7], numbersPast[8], numbersPast[9]
  4686. ];
  4687. function translate(number, withoutSuffix, key, isFuture) {
  4688. var result = '';
  4689. switch (key) {
  4690. case 's':
  4691. return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
  4692. case 'm':
  4693. return isFuture ? 'minuutin' : 'minuutti';
  4694. case 'mm':
  4695. result = isFuture ? 'minuutin' : 'minuuttia';
  4696. break;
  4697. case 'h':
  4698. return isFuture ? 'tunnin' : 'tunti';
  4699. case 'hh':
  4700. result = isFuture ? 'tunnin' : 'tuntia';
  4701. break;
  4702. case 'd':
  4703. return isFuture ? 'päivän' : 'päivä';
  4704. case 'dd':
  4705. result = isFuture ? 'päivän' : 'päivää';
  4706. break;
  4707. case 'M':
  4708. return isFuture ? 'kuukauden' : 'kuukausi';
  4709. case 'MM':
  4710. result = isFuture ? 'kuukauden' : 'kuukautta';
  4711. break;
  4712. case 'y':
  4713. return isFuture ? 'vuoden' : 'vuosi';
  4714. case 'yy':
  4715. result = isFuture ? 'vuoden' : 'vuotta';
  4716. break;
  4717. }
  4718. result = verbalNumber(number, isFuture) + ' ' + result;
  4719. return result;
  4720. }
  4721. function verbalNumber(number, isFuture) {
  4722. return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
  4723. }
  4724. return moment.defineLocale('fi', {
  4725. months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
  4726. monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
  4727. weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
  4728. weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
  4729. weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
  4730. longDateFormat : {
  4731. LT : 'HH.mm',
  4732. LTS : 'HH.mm.ss',
  4733. L : 'DD.MM.YYYY',
  4734. LL : 'Do MMMM[ta] YYYY',
  4735. LLL : 'Do MMMM[ta] YYYY, [klo] LT',
  4736. LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] LT',
  4737. l : 'D.M.YYYY',
  4738. ll : 'Do MMM YYYY',
  4739. lll : 'Do MMM YYYY, [klo] LT',
  4740. llll : 'ddd, Do MMM YYYY, [klo] LT'
  4741. },
  4742. calendar : {
  4743. sameDay : '[tänään] [klo] LT',
  4744. nextDay : '[huomenna] [klo] LT',
  4745. nextWeek : 'dddd [klo] LT',
  4746. lastDay : '[eilen] [klo] LT',
  4747. lastWeek : '[viime] dddd[na] [klo] LT',
  4748. sameElse : 'L'
  4749. },
  4750. relativeTime : {
  4751. future : '%s päästä',
  4752. past : '%s sitten',
  4753. s : translate,
  4754. m : translate,
  4755. mm : translate,
  4756. h : translate,
  4757. hh : translate,
  4758. d : translate,
  4759. dd : translate,
  4760. M : translate,
  4761. MM : translate,
  4762. y : translate,
  4763. yy : translate
  4764. },
  4765. ordinalParse: /\d{1,2}\./,
  4766. ordinal : '%d.',
  4767. week : {
  4768. dow : 1, // Monday is the first day of the week.
  4769. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4770. }
  4771. });
  4772. }));
  4773. // moment.js locale configuration
  4774. // locale : faroese (fo)
  4775. // author : Ragnar Johannesen : https://github.com/ragnar123
  4776. (function (factory) {
  4777. factory(moment);
  4778. }(function (moment) {
  4779. return moment.defineLocale('fo', {
  4780. months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  4781. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  4782. weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
  4783. weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
  4784. weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
  4785. longDateFormat : {
  4786. LT : 'HH:mm',
  4787. LTS : 'LT:ss',
  4788. L : 'DD/MM/YYYY',
  4789. LL : 'D MMMM YYYY',
  4790. LLL : 'D MMMM YYYY LT',
  4791. LLLL : 'dddd D. MMMM, YYYY LT'
  4792. },
  4793. calendar : {
  4794. sameDay : '[Í dag kl.] LT',
  4795. nextDay : '[Í morgin kl.] LT',
  4796. nextWeek : 'dddd [kl.] LT',
  4797. lastDay : '[Í gjár kl.] LT',
  4798. lastWeek : '[síðstu] dddd [kl] LT',
  4799. sameElse : 'L'
  4800. },
  4801. relativeTime : {
  4802. future : 'um %s',
  4803. past : '%s síðani',
  4804. s : 'fá sekund',
  4805. m : 'ein minutt',
  4806. mm : '%d minuttir',
  4807. h : 'ein tími',
  4808. hh : '%d tímar',
  4809. d : 'ein dagur',
  4810. dd : '%d dagar',
  4811. M : 'ein mánaði',
  4812. MM : '%d mánaðir',
  4813. y : 'eitt ár',
  4814. yy : '%d ár'
  4815. },
  4816. ordinalParse: /\d{1,2}\./,
  4817. ordinal : '%d.',
  4818. week : {
  4819. dow : 1, // Monday is the first day of the week.
  4820. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4821. }
  4822. });
  4823. }));
  4824. // moment.js locale configuration
  4825. // locale : canadian french (fr-ca)
  4826. // author : Jonathan Abourbih : https://github.com/jonbca
  4827. (function (factory) {
  4828. factory(moment);
  4829. }(function (moment) {
  4830. return moment.defineLocale('fr-ca', {
  4831. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  4832. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  4833. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  4834. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  4835. weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
  4836. longDateFormat : {
  4837. LT : 'HH:mm',
  4838. LTS : 'LT:ss',
  4839. L : 'YYYY-MM-DD',
  4840. LL : 'D MMMM YYYY',
  4841. LLL : 'D MMMM YYYY LT',
  4842. LLLL : 'dddd D MMMM YYYY LT'
  4843. },
  4844. calendar : {
  4845. sameDay: '[Aujourd\'hui à] LT',
  4846. nextDay: '[Demain à] LT',
  4847. nextWeek: 'dddd [à] LT',
  4848. lastDay: '[Hier à] LT',
  4849. lastWeek: 'dddd [dernier à] LT',
  4850. sameElse: 'L'
  4851. },
  4852. relativeTime : {
  4853. future : 'dans %s',
  4854. past : 'il y a %s',
  4855. s : 'quelques secondes',
  4856. m : 'une minute',
  4857. mm : '%d minutes',
  4858. h : 'une heure',
  4859. hh : '%d heures',
  4860. d : 'un jour',
  4861. dd : '%d jours',
  4862. M : 'un mois',
  4863. MM : '%d mois',
  4864. y : 'un an',
  4865. yy : '%d ans'
  4866. },
  4867. ordinalParse: /\d{1,2}(er|)/,
  4868. ordinal : function (number) {
  4869. return number + (number === 1 ? 'er' : '');
  4870. }
  4871. });
  4872. }));
  4873. // moment.js locale configuration
  4874. // locale : french (fr)
  4875. // author : John Fischer : https://github.com/jfroffice
  4876. (function (factory) {
  4877. factory(moment);
  4878. }(function (moment) {
  4879. return moment.defineLocale('fr', {
  4880. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  4881. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  4882. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  4883. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  4884. weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
  4885. longDateFormat : {
  4886. LT : 'HH:mm',
  4887. LTS : 'LT:ss',
  4888. L : 'DD/MM/YYYY',
  4889. LL : 'D MMMM YYYY',
  4890. LLL : 'D MMMM YYYY LT',
  4891. LLLL : 'dddd D MMMM YYYY LT'
  4892. },
  4893. calendar : {
  4894. sameDay: '[Aujourd\'hui à] LT',
  4895. nextDay: '[Demain à] LT',
  4896. nextWeek: 'dddd [à] LT',
  4897. lastDay: '[Hier à] LT',
  4898. lastWeek: 'dddd [dernier à] LT',
  4899. sameElse: 'L'
  4900. },
  4901. relativeTime : {
  4902. future : 'dans %s',
  4903. past : 'il y a %s',
  4904. s : 'quelques secondes',
  4905. m : 'une minute',
  4906. mm : '%d minutes',
  4907. h : 'une heure',
  4908. hh : '%d heures',
  4909. d : 'un jour',
  4910. dd : '%d jours',
  4911. M : 'un mois',
  4912. MM : '%d mois',
  4913. y : 'un an',
  4914. yy : '%d ans'
  4915. },
  4916. ordinalParse: /\d{1,2}(er|)/,
  4917. ordinal : function (number) {
  4918. return number + (number === 1 ? 'er' : '');
  4919. },
  4920. week : {
  4921. dow : 1, // Monday is the first day of the week.
  4922. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4923. }
  4924. });
  4925. }));
  4926. // moment.js locale configuration
  4927. // locale : galician (gl)
  4928. // author : Juan G. Hurtado : https://github.com/juanghurtado
  4929. (function (factory) {
  4930. factory(moment);
  4931. }(function (moment) {
  4932. return moment.defineLocale('gl', {
  4933. months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
  4934. monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
  4935. weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
  4936. weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
  4937. weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
  4938. longDateFormat : {
  4939. LT : 'H:mm',
  4940. LTS : 'LT:ss',
  4941. L : 'DD/MM/YYYY',
  4942. LL : 'D MMMM YYYY',
  4943. LLL : 'D MMMM YYYY LT',
  4944. LLLL : 'dddd D MMMM YYYY LT'
  4945. },
  4946. calendar : {
  4947. sameDay : function () {
  4948. return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  4949. },
  4950. nextDay : function () {
  4951. return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  4952. },
  4953. nextWeek : function () {
  4954. return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  4955. },
  4956. lastDay : function () {
  4957. return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
  4958. },
  4959. lastWeek : function () {
  4960. return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  4961. },
  4962. sameElse : 'L'
  4963. },
  4964. relativeTime : {
  4965. future : function (str) {
  4966. if (str === 'uns segundos') {
  4967. return 'nuns segundos';
  4968. }
  4969. return 'en ' + str;
  4970. },
  4971. past : 'hai %s',
  4972. s : 'uns segundos',
  4973. m : 'un minuto',
  4974. mm : '%d minutos',
  4975. h : 'unha hora',
  4976. hh : '%d horas',
  4977. d : 'un día',
  4978. dd : '%d días',
  4979. M : 'un mes',
  4980. MM : '%d meses',
  4981. y : 'un ano',
  4982. yy : '%d anos'
  4983. },
  4984. ordinalParse : /\d{1,2}º/,
  4985. ordinal : '%dº',
  4986. week : {
  4987. dow : 1, // Monday is the first day of the week.
  4988. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4989. }
  4990. });
  4991. }));
  4992. // moment.js locale configuration
  4993. // locale : Hebrew (he)
  4994. // author : Tomer Cohen : https://github.com/tomer
  4995. // author : Moshe Simantov : https://github.com/DevelopmentIL
  4996. // author : Tal Ater : https://github.com/TalAter
  4997. (function (factory) {
  4998. factory(moment);
  4999. }(function (moment) {
  5000. return moment.defineLocale('he', {
  5001. months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
  5002. monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
  5003. weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
  5004. weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
  5005. weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
  5006. longDateFormat : {
  5007. LT : 'HH:mm',
  5008. LTS : 'LT:ss',
  5009. L : 'DD/MM/YYYY',
  5010. LL : 'D [ב]MMMM YYYY',
  5011. LLL : 'D [ב]MMMM YYYY LT',
  5012. LLLL : 'dddd, D [ב]MMMM YYYY LT',
  5013. l : 'D/M/YYYY',
  5014. ll : 'D MMM YYYY',
  5015. lll : 'D MMM YYYY LT',
  5016. llll : 'ddd, D MMM YYYY LT'
  5017. },
  5018. calendar : {
  5019. sameDay : '[היום ב־]LT',
  5020. nextDay : '[מחר ב־]LT',
  5021. nextWeek : 'dddd [בשעה] LT',
  5022. lastDay : '[אתמול ב־]LT',
  5023. lastWeek : '[ביום] dddd [האחרון בשעה] LT',
  5024. sameElse : 'L'
  5025. },
  5026. relativeTime : {
  5027. future : 'בעוד %s',
  5028. past : 'לפני %s',
  5029. s : 'מספר שניות',
  5030. m : 'דקה',
  5031. mm : '%d דקות',
  5032. h : 'שעה',
  5033. hh : function (number) {
  5034. if (number === 2) {
  5035. return 'שעתיים';
  5036. }
  5037. return number + ' שעות';
  5038. },
  5039. d : 'יום',
  5040. dd : function (number) {
  5041. if (number === 2) {
  5042. return 'יומיים';
  5043. }
  5044. return number + ' ימים';
  5045. },
  5046. M : 'חודש',
  5047. MM : function (number) {
  5048. if (number === 2) {
  5049. return 'חודשיים';
  5050. }
  5051. return number + ' חודשים';
  5052. },
  5053. y : 'שנה',
  5054. yy : function (number) {
  5055. if (number === 2) {
  5056. return 'שנתיים';
  5057. }
  5058. return number + ' שנים';
  5059. }
  5060. }
  5061. });
  5062. }));
  5063. // moment.js locale configuration
  5064. // locale : hindi (hi)
  5065. // author : Mayank Singhal : https://github.com/mayanksinghal
  5066. (function (factory) {
  5067. factory(moment);
  5068. }(function (moment) {
  5069. var symbolMap = {
  5070. '1': '१',
  5071. '2': '२',
  5072. '3': '३',
  5073. '4': '४',
  5074. '5': '५',
  5075. '6': '६',
  5076. '7': '७',
  5077. '8': '८',
  5078. '9': '९',
  5079. '0': '०'
  5080. },
  5081. numberMap = {
  5082. '१': '1',
  5083. '२': '2',
  5084. '३': '3',
  5085. '४': '4',
  5086. '५': '5',
  5087. '६': '6',
  5088. '७': '7',
  5089. '८': '8',
  5090. '९': '9',
  5091. '०': '0'
  5092. };
  5093. return moment.defineLocale('hi', {
  5094. months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
  5095. monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
  5096. weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  5097. weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
  5098. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  5099. longDateFormat : {
  5100. LT : 'A h:mm बजे',
  5101. LTS : 'A h:mm:ss बजे',
  5102. L : 'DD/MM/YYYY',
  5103. LL : 'D MMMM YYYY',
  5104. LLL : 'D MMMM YYYY, LT',
  5105. LLLL : 'dddd, D MMMM YYYY, LT'
  5106. },
  5107. calendar : {
  5108. sameDay : '[आज] LT',
  5109. nextDay : '[कल] LT',
  5110. nextWeek : 'dddd, LT',
  5111. lastDay : '[कल] LT',
  5112. lastWeek : '[पिछले] dddd, LT',
  5113. sameElse : 'L'
  5114. },
  5115. relativeTime : {
  5116. future : '%s में',
  5117. past : '%s पहले',
  5118. s : 'कुछ ही क्षण',
  5119. m : 'एक मिनट',
  5120. mm : '%d मिनट',
  5121. h : 'एक घंटा',
  5122. hh : '%d घंटे',
  5123. d : 'एक दिन',
  5124. dd : '%d दिन',
  5125. M : 'एक महीने',
  5126. MM : '%d महीने',
  5127. y : 'एक वर्ष',
  5128. yy : '%d वर्ष'
  5129. },
  5130. preparse: function (string) {
  5131. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  5132. return numberMap[match];
  5133. });
  5134. },
  5135. postformat: function (string) {
  5136. return string.replace(/\d/g, function (match) {
  5137. return symbolMap[match];
  5138. });
  5139. },
  5140. // Hindi notation for meridiems are quite fuzzy in practice. While there exists
  5141. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
  5142. meridiem : function (hour, minute, isLower) {
  5143. if (hour < 4) {
  5144. return 'रात';
  5145. } else if (hour < 10) {
  5146. return 'सुबह';
  5147. } else if (hour < 17) {
  5148. return 'दोपहर';
  5149. } else if (hour < 20) {
  5150. return 'शाम';
  5151. } else {
  5152. return 'रात';
  5153. }
  5154. },
  5155. week : {
  5156. dow : 0, // Sunday is the first day of the week.
  5157. doy : 6 // The week that contains Jan 1st is the first week of the year.
  5158. }
  5159. });
  5160. }));
  5161. // moment.js locale configuration
  5162. // locale : hrvatski (hr)
  5163. // author : Bojan Marković : https://github.com/bmarkovic
  5164. // based on (sl) translation by Robert Sedovšek
  5165. (function (factory) {
  5166. factory(moment);
  5167. }(function (moment) {
  5168. function translate(number, withoutSuffix, key) {
  5169. var result = number + ' ';
  5170. switch (key) {
  5171. case 'm':
  5172. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  5173. case 'mm':
  5174. if (number === 1) {
  5175. result += 'minuta';
  5176. } else if (number === 2 || number === 3 || number === 4) {
  5177. result += 'minute';
  5178. } else {
  5179. result += 'minuta';
  5180. }
  5181. return result;
  5182. case 'h':
  5183. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  5184. case 'hh':
  5185. if (number === 1) {
  5186. result += 'sat';
  5187. } else if (number === 2 || number === 3 || number === 4) {
  5188. result += 'sata';
  5189. } else {
  5190. result += 'sati';
  5191. }
  5192. return result;
  5193. case 'dd':
  5194. if (number === 1) {
  5195. result += 'dan';
  5196. } else {
  5197. result += 'dana';
  5198. }
  5199. return result;
  5200. case 'MM':
  5201. if (number === 1) {
  5202. result += 'mjesec';
  5203. } else if (number === 2 || number === 3 || number === 4) {
  5204. result += 'mjeseca';
  5205. } else {
  5206. result += 'mjeseci';
  5207. }
  5208. return result;
  5209. case 'yy':
  5210. if (number === 1) {
  5211. result += 'godina';
  5212. } else if (number === 2 || number === 3 || number === 4) {
  5213. result += 'godine';
  5214. } else {
  5215. result += 'godina';
  5216. }
  5217. return result;
  5218. }
  5219. }
  5220. return moment.defineLocale('hr', {
  5221. months : 'sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'),
  5222. monthsShort : 'sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
  5223. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  5224. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  5225. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  5226. longDateFormat : {
  5227. LT : 'H:mm',
  5228. LTS : 'LT:ss',
  5229. L : 'DD. MM. YYYY',
  5230. LL : 'D. MMMM YYYY',
  5231. LLL : 'D. MMMM YYYY LT',
  5232. LLLL : 'dddd, D. MMMM YYYY LT'
  5233. },
  5234. calendar : {
  5235. sameDay : '[danas u] LT',
  5236. nextDay : '[sutra u] LT',
  5237. nextWeek : function () {
  5238. switch (this.day()) {
  5239. case 0:
  5240. return '[u] [nedjelju] [u] LT';
  5241. case 3:
  5242. return '[u] [srijedu] [u] LT';
  5243. case 6:
  5244. return '[u] [subotu] [u] LT';
  5245. case 1:
  5246. case 2:
  5247. case 4:
  5248. case 5:
  5249. return '[u] dddd [u] LT';
  5250. }
  5251. },
  5252. lastDay : '[jučer u] LT',
  5253. lastWeek : function () {
  5254. switch (this.day()) {
  5255. case 0:
  5256. case 3:
  5257. return '[prošlu] dddd [u] LT';
  5258. case 6:
  5259. return '[prošle] [subote] [u] LT';
  5260. case 1:
  5261. case 2:
  5262. case 4:
  5263. case 5:
  5264. return '[prošli] dddd [u] LT';
  5265. }
  5266. },
  5267. sameElse : 'L'
  5268. },
  5269. relativeTime : {
  5270. future : 'za %s',
  5271. past : 'prije %s',
  5272. s : 'par sekundi',
  5273. m : translate,
  5274. mm : translate,
  5275. h : translate,
  5276. hh : translate,
  5277. d : 'dan',
  5278. dd : translate,
  5279. M : 'mjesec',
  5280. MM : translate,
  5281. y : 'godinu',
  5282. yy : translate
  5283. },
  5284. ordinalParse: /\d{1,2}\./,
  5285. ordinal : '%d.',
  5286. week : {
  5287. dow : 1, // Monday is the first day of the week.
  5288. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5289. }
  5290. });
  5291. }));
  5292. // moment.js locale configuration
  5293. // locale : hungarian (hu)
  5294. // author : Adam Brunner : https://github.com/adambrunner
  5295. (function (factory) {
  5296. factory(moment);
  5297. }(function (moment) {
  5298. var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
  5299. function translate(number, withoutSuffix, key, isFuture) {
  5300. var num = number,
  5301. suffix;
  5302. switch (key) {
  5303. case 's':
  5304. return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
  5305. case 'm':
  5306. return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
  5307. case 'mm':
  5308. return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
  5309. case 'h':
  5310. return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
  5311. case 'hh':
  5312. return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
  5313. case 'd':
  5314. return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
  5315. case 'dd':
  5316. return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
  5317. case 'M':
  5318. return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  5319. case 'MM':
  5320. return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  5321. case 'y':
  5322. return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
  5323. case 'yy':
  5324. return num + (isFuture || withoutSuffix ? ' év' : ' éve');
  5325. }
  5326. return '';
  5327. }
  5328. function week(isFuture) {
  5329. return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
  5330. }
  5331. return moment.defineLocale('hu', {
  5332. months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
  5333. monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
  5334. weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
  5335. weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
  5336. weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
  5337. longDateFormat : {
  5338. LT : 'H:mm',
  5339. LTS : 'LT:ss',
  5340. L : 'YYYY.MM.DD.',
  5341. LL : 'YYYY. MMMM D.',
  5342. LLL : 'YYYY. MMMM D., LT',
  5343. LLLL : 'YYYY. MMMM D., dddd LT'
  5344. },
  5345. meridiem : function (hours, minutes, isLower) {
  5346. if (hours < 12) {
  5347. return isLower === true ? 'de' : 'DE';
  5348. } else {
  5349. return isLower === true ? 'du' : 'DU';
  5350. }
  5351. },
  5352. calendar : {
  5353. sameDay : '[ma] LT[-kor]',
  5354. nextDay : '[holnap] LT[-kor]',
  5355. nextWeek : function () {
  5356. return week.call(this, true);
  5357. },
  5358. lastDay : '[tegnap] LT[-kor]',
  5359. lastWeek : function () {
  5360. return week.call(this, false);
  5361. },
  5362. sameElse : 'L'
  5363. },
  5364. relativeTime : {
  5365. future : '%s múlva',
  5366. past : '%s',
  5367. s : translate,
  5368. m : translate,
  5369. mm : translate,
  5370. h : translate,
  5371. hh : translate,
  5372. d : translate,
  5373. dd : translate,
  5374. M : translate,
  5375. MM : translate,
  5376. y : translate,
  5377. yy : translate
  5378. },
  5379. ordinalParse: /\d{1,2}\./,
  5380. ordinal : '%d.',
  5381. week : {
  5382. dow : 1, // Monday is the first day of the week.
  5383. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5384. }
  5385. });
  5386. }));
  5387. // moment.js locale configuration
  5388. // locale : Armenian (hy-am)
  5389. // author : Armendarabyan : https://github.com/armendarabyan
  5390. (function (factory) {
  5391. factory(moment);
  5392. }(function (moment) {
  5393. function monthsCaseReplace(m, format) {
  5394. var months = {
  5395. 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
  5396. 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
  5397. },
  5398. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  5399. 'accusative' :
  5400. 'nominative';
  5401. return months[nounCase][m.month()];
  5402. }
  5403. function monthsShortCaseReplace(m, format) {
  5404. var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_');
  5405. return monthsShort[m.month()];
  5406. }
  5407. function weekdaysCaseReplace(m, format) {
  5408. var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_');
  5409. return weekdays[m.day()];
  5410. }
  5411. return moment.defineLocale('hy-am', {
  5412. months : monthsCaseReplace,
  5413. monthsShort : monthsShortCaseReplace,
  5414. weekdays : weekdaysCaseReplace,
  5415. weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  5416. weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  5417. longDateFormat : {
  5418. LT : 'HH:mm',
  5419. LTS : 'LT:ss',
  5420. L : 'DD.MM.YYYY',
  5421. LL : 'D MMMM YYYY թ.',
  5422. LLL : 'D MMMM YYYY թ., LT',
  5423. LLLL : 'dddd, D MMMM YYYY թ., LT'
  5424. },
  5425. calendar : {
  5426. sameDay: '[այսօր] LT',
  5427. nextDay: '[վաղը] LT',
  5428. lastDay: '[երեկ] LT',
  5429. nextWeek: function () {
  5430. return 'dddd [օրը ժամը] LT';
  5431. },
  5432. lastWeek: function () {
  5433. return '[անցած] dddd [օրը ժամը] LT';
  5434. },
  5435. sameElse: 'L'
  5436. },
  5437. relativeTime : {
  5438. future : '%s հետո',
  5439. past : '%s առաջ',
  5440. s : 'մի քանի վայրկյան',
  5441. m : 'րոպե',
  5442. mm : '%d րոպե',
  5443. h : 'ժամ',
  5444. hh : '%d ժամ',
  5445. d : 'օր',
  5446. dd : '%d օր',
  5447. M : 'ամիս',
  5448. MM : '%d ամիս',
  5449. y : 'տարի',
  5450. yy : '%d տարի'
  5451. },
  5452. meridiem : function (hour) {
  5453. if (hour < 4) {
  5454. return 'գիշերվա';
  5455. } else if (hour < 12) {
  5456. return 'առավոտվա';
  5457. } else if (hour < 17) {
  5458. return 'ցերեկվա';
  5459. } else {
  5460. return 'երեկոյան';
  5461. }
  5462. },
  5463. ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
  5464. ordinal: function (number, period) {
  5465. switch (period) {
  5466. case 'DDD':
  5467. case 'w':
  5468. case 'W':
  5469. case 'DDDo':
  5470. if (number === 1) {
  5471. return number + '-ին';
  5472. }
  5473. return number + '-րդ';
  5474. default:
  5475. return number;
  5476. }
  5477. },
  5478. week : {
  5479. dow : 1, // Monday is the first day of the week.
  5480. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5481. }
  5482. });
  5483. }));
  5484. // moment.js locale configuration
  5485. // locale : Bahasa Indonesia (id)
  5486. // author : Mohammad Satrio Utomo : https://github.com/tyok
  5487. // reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
  5488. (function (factory) {
  5489. factory(moment);
  5490. }(function (moment) {
  5491. return moment.defineLocale('id', {
  5492. months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
  5493. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
  5494. weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
  5495. weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
  5496. weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
  5497. longDateFormat : {
  5498. LT : 'HH.mm',
  5499. LTS : 'LT.ss',
  5500. L : 'DD/MM/YYYY',
  5501. LL : 'D MMMM YYYY',
  5502. LLL : 'D MMMM YYYY [pukul] LT',
  5503. LLLL : 'dddd, D MMMM YYYY [pukul] LT'
  5504. },
  5505. meridiem : function (hours, minutes, isLower) {
  5506. if (hours < 11) {
  5507. return 'pagi';
  5508. } else if (hours < 15) {
  5509. return 'siang';
  5510. } else if (hours < 19) {
  5511. return 'sore';
  5512. } else {
  5513. return 'malam';
  5514. }
  5515. },
  5516. calendar : {
  5517. sameDay : '[Hari ini pukul] LT',
  5518. nextDay : '[Besok pukul] LT',
  5519. nextWeek : 'dddd [pukul] LT',
  5520. lastDay : '[Kemarin pukul] LT',
  5521. lastWeek : 'dddd [lalu pukul] LT',
  5522. sameElse : 'L'
  5523. },
  5524. relativeTime : {
  5525. future : 'dalam %s',
  5526. past : '%s yang lalu',
  5527. s : 'beberapa detik',
  5528. m : 'semenit',
  5529. mm : '%d menit',
  5530. h : 'sejam',
  5531. hh : '%d jam',
  5532. d : 'sehari',
  5533. dd : '%d hari',
  5534. M : 'sebulan',
  5535. MM : '%d bulan',
  5536. y : 'setahun',
  5537. yy : '%d tahun'
  5538. },
  5539. week : {
  5540. dow : 1, // Monday is the first day of the week.
  5541. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5542. }
  5543. });
  5544. }));
  5545. // moment.js locale configuration
  5546. // locale : icelandic (is)
  5547. // author : Hinrik Örn Sigurðsson : https://github.com/hinrik
  5548. (function (factory) {
  5549. factory(moment);
  5550. }(function (moment) {
  5551. function plural(n) {
  5552. if (n % 100 === 11) {
  5553. return true;
  5554. } else if (n % 10 === 1) {
  5555. return false;
  5556. }
  5557. return true;
  5558. }
  5559. function translate(number, withoutSuffix, key, isFuture) {
  5560. var result = number + ' ';
  5561. switch (key) {
  5562. case 's':
  5563. return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
  5564. case 'm':
  5565. return withoutSuffix ? 'mínúta' : 'mínútu';
  5566. case 'mm':
  5567. if (plural(number)) {
  5568. return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
  5569. } else if (withoutSuffix) {
  5570. return result + 'mínúta';
  5571. }
  5572. return result + 'mínútu';
  5573. case 'hh':
  5574. if (plural(number)) {
  5575. return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
  5576. }
  5577. return result + 'klukkustund';
  5578. case 'd':
  5579. if (withoutSuffix) {
  5580. return 'dagur';
  5581. }
  5582. return isFuture ? 'dag' : 'degi';
  5583. case 'dd':
  5584. if (plural(number)) {
  5585. if (withoutSuffix) {
  5586. return result + 'dagar';
  5587. }
  5588. return result + (isFuture ? 'daga' : 'dögum');
  5589. } else if (withoutSuffix) {
  5590. return result + 'dagur';
  5591. }
  5592. return result + (isFuture ? 'dag' : 'degi');
  5593. case 'M':
  5594. if (withoutSuffix) {
  5595. return 'mánuður';
  5596. }
  5597. return isFuture ? 'mánuð' : 'mánuði';
  5598. case 'MM':
  5599. if (plural(number)) {
  5600. if (withoutSuffix) {
  5601. return result + 'mánuðir';
  5602. }
  5603. return result + (isFuture ? 'mánuði' : 'mánuðum');
  5604. } else if (withoutSuffix) {
  5605. return result + 'mánuður';
  5606. }
  5607. return result + (isFuture ? 'mánuð' : 'mánuði');
  5608. case 'y':
  5609. return withoutSuffix || isFuture ? 'ár' : 'ári';
  5610. case 'yy':
  5611. if (plural(number)) {
  5612. return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
  5613. }
  5614. return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
  5615. }
  5616. }
  5617. return moment.defineLocale('is', {
  5618. months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
  5619. monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
  5620. weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
  5621. weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
  5622. weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
  5623. longDateFormat : {
  5624. LT : 'H:mm',
  5625. LTS : 'LT:ss',
  5626. L : 'DD/MM/YYYY',
  5627. LL : 'D. MMMM YYYY',
  5628. LLL : 'D. MMMM YYYY [kl.] LT',
  5629. LLLL : 'dddd, D. MMMM YYYY [kl.] LT'
  5630. },
  5631. calendar : {
  5632. sameDay : '[í dag kl.] LT',
  5633. nextDay : '[á morgun kl.] LT',
  5634. nextWeek : 'dddd [kl.] LT',
  5635. lastDay : '[í gær kl.] LT',
  5636. lastWeek : '[síðasta] dddd [kl.] LT',
  5637. sameElse : 'L'
  5638. },
  5639. relativeTime : {
  5640. future : 'eftir %s',
  5641. past : 'fyrir %s síðan',
  5642. s : translate,
  5643. m : translate,
  5644. mm : translate,
  5645. h : 'klukkustund',
  5646. hh : translate,
  5647. d : translate,
  5648. dd : translate,
  5649. M : translate,
  5650. MM : translate,
  5651. y : translate,
  5652. yy : translate
  5653. },
  5654. ordinalParse: /\d{1,2}\./,
  5655. ordinal : '%d.',
  5656. week : {
  5657. dow : 1, // Monday is the first day of the week.
  5658. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5659. }
  5660. });
  5661. }));
  5662. // moment.js locale configuration
  5663. // locale : italian (it)
  5664. // author : Lorenzo : https://github.com/aliem
  5665. // author: Mattia Larentis: https://github.com/nostalgiaz
  5666. (function (factory) {
  5667. factory(moment);
  5668. }(function (moment) {
  5669. return moment.defineLocale('it', {
  5670. months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
  5671. monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
  5672. weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
  5673. weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
  5674. weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'),
  5675. longDateFormat : {
  5676. LT : 'HH:mm',
  5677. LTS : 'LT:ss',
  5678. L : 'DD/MM/YYYY',
  5679. LL : 'D MMMM YYYY',
  5680. LLL : 'D MMMM YYYY LT',
  5681. LLLL : 'dddd, D MMMM YYYY LT'
  5682. },
  5683. calendar : {
  5684. sameDay: '[Oggi alle] LT',
  5685. nextDay: '[Domani alle] LT',
  5686. nextWeek: 'dddd [alle] LT',
  5687. lastDay: '[Ieri alle] LT',
  5688. lastWeek: function () {
  5689. switch (this.day()) {
  5690. case 0:
  5691. return '[la scorsa] dddd [alle] LT';
  5692. default:
  5693. return '[lo scorso] dddd [alle] LT';
  5694. }
  5695. },
  5696. sameElse: 'L'
  5697. },
  5698. relativeTime : {
  5699. future : function (s) {
  5700. return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
  5701. },
  5702. past : '%s fa',
  5703. s : 'alcuni secondi',
  5704. m : 'un minuto',
  5705. mm : '%d minuti',
  5706. h : 'un\'ora',
  5707. hh : '%d ore',
  5708. d : 'un giorno',
  5709. dd : '%d giorni',
  5710. M : 'un mese',
  5711. MM : '%d mesi',
  5712. y : 'un anno',
  5713. yy : '%d anni'
  5714. },
  5715. ordinalParse : /\d{1,2}º/,
  5716. ordinal: '%dº',
  5717. week : {
  5718. dow : 1, // Monday is the first day of the week.
  5719. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5720. }
  5721. });
  5722. }));
  5723. // moment.js locale configuration
  5724. // locale : japanese (ja)
  5725. // author : LI Long : https://github.com/baryon
  5726. (function (factory) {
  5727. factory(moment);
  5728. }(function (moment) {
  5729. return moment.defineLocale('ja', {
  5730. months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  5731. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  5732. weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
  5733. weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
  5734. weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
  5735. longDateFormat : {
  5736. LT : 'Ah時m分',
  5737. LTS : 'LTs秒',
  5738. L : 'YYYY/MM/DD',
  5739. LL : 'YYYY年M月D日',
  5740. LLL : 'YYYY年M月D日LT',
  5741. LLLL : 'YYYY年M月D日LT dddd'
  5742. },
  5743. meridiem : function (hour, minute, isLower) {
  5744. if (hour < 12) {
  5745. return '午前';
  5746. } else {
  5747. return '午後';
  5748. }
  5749. },
  5750. calendar : {
  5751. sameDay : '[今日] LT',
  5752. nextDay : '[明日] LT',
  5753. nextWeek : '[来週]dddd LT',
  5754. lastDay : '[昨日] LT',
  5755. lastWeek : '[前週]dddd LT',
  5756. sameElse : 'L'
  5757. },
  5758. relativeTime : {
  5759. future : '%s後',
  5760. past : '%s前',
  5761. s : '数秒',
  5762. m : '1分',
  5763. mm : '%d分',
  5764. h : '1時間',
  5765. hh : '%d時間',
  5766. d : '1日',
  5767. dd : '%d日',
  5768. M : '1ヶ月',
  5769. MM : '%dヶ月',
  5770. y : '1年',
  5771. yy : '%d年'
  5772. }
  5773. });
  5774. }));
  5775. // moment.js locale configuration
  5776. // locale : Georgian (ka)
  5777. // author : Irakli Janiashvili : https://github.com/irakli-janiashvili
  5778. (function (factory) {
  5779. factory(moment);
  5780. }(function (moment) {
  5781. function monthsCaseReplace(m, format) {
  5782. var months = {
  5783. 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
  5784. 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
  5785. },
  5786. nounCase = (/D[oD] *MMMM?/).test(format) ?
  5787. 'accusative' :
  5788. 'nominative';
  5789. return months[nounCase][m.month()];
  5790. }
  5791. function weekdaysCaseReplace(m, format) {
  5792. var weekdays = {
  5793. 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
  5794. 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
  5795. },
  5796. nounCase = (/(წინა|შემდეგ)/).test(format) ?
  5797. 'accusative' :
  5798. 'nominative';
  5799. return weekdays[nounCase][m.day()];
  5800. }
  5801. return moment.defineLocale('ka', {
  5802. months : monthsCaseReplace,
  5803. monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
  5804. weekdays : weekdaysCaseReplace,
  5805. weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
  5806. weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
  5807. longDateFormat : {
  5808. LT : 'h:mm A',
  5809. LTS : 'h:mm:ss A',
  5810. L : 'DD/MM/YYYY',
  5811. LL : 'D MMMM YYYY',
  5812. LLL : 'D MMMM YYYY LT',
  5813. LLLL : 'dddd, D MMMM YYYY LT'
  5814. },
  5815. calendar : {
  5816. sameDay : '[დღეს] LT[-ზე]',
  5817. nextDay : '[ხვალ] LT[-ზე]',
  5818. lastDay : '[გუშინ] LT[-ზე]',
  5819. nextWeek : '[შემდეგ] dddd LT[-ზე]',
  5820. lastWeek : '[წინა] dddd LT-ზე',
  5821. sameElse : 'L'
  5822. },
  5823. relativeTime : {
  5824. future : function (s) {
  5825. return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
  5826. s.replace(/ი$/, 'ში') :
  5827. s + 'ში';
  5828. },
  5829. past : function (s) {
  5830. if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
  5831. return s.replace(/(ი|ე)$/, 'ის წინ');
  5832. }
  5833. if ((/წელი/).test(s)) {
  5834. return s.replace(/წელი$/, 'წლის წინ');
  5835. }
  5836. },
  5837. s : 'რამდენიმე წამი',
  5838. m : 'წუთი',
  5839. mm : '%d წუთი',
  5840. h : 'საათი',
  5841. hh : '%d საათი',
  5842. d : 'დღე',
  5843. dd : '%d დღე',
  5844. M : 'თვე',
  5845. MM : '%d თვე',
  5846. y : 'წელი',
  5847. yy : '%d წელი'
  5848. },
  5849. ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
  5850. ordinal : function (number) {
  5851. if (number === 0) {
  5852. return number;
  5853. }
  5854. if (number === 1) {
  5855. return number + '-ლი';
  5856. }
  5857. if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
  5858. return 'მე-' + number;
  5859. }
  5860. return number + '-ე';
  5861. },
  5862. week : {
  5863. dow : 1,
  5864. doy : 7
  5865. }
  5866. });
  5867. }));
  5868. // moment.js locale configuration
  5869. // locale : khmer (km)
  5870. // author : Kruy Vanna : https://github.com/kruyvanna
  5871. (function (factory) {
  5872. factory(moment);
  5873. }(function (moment) {
  5874. return moment.defineLocale('km', {
  5875. months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  5876. monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  5877. weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  5878. weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  5879. weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  5880. longDateFormat: {
  5881. LT: 'HH:mm',
  5882. LTS : 'LT:ss',
  5883. L: 'DD/MM/YYYY',
  5884. LL: 'D MMMM YYYY',
  5885. LLL: 'D MMMM YYYY LT',
  5886. LLLL: 'dddd, D MMMM YYYY LT'
  5887. },
  5888. calendar: {
  5889. sameDay: '[ថ្ងៃនៈ ម៉ោង] LT',
  5890. nextDay: '[ស្អែក ម៉ោង] LT',
  5891. nextWeek: 'dddd [ម៉ោង] LT',
  5892. lastDay: '[ម្សិលមិញ ម៉ោង] LT',
  5893. lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
  5894. sameElse: 'L'
  5895. },
  5896. relativeTime: {
  5897. future: '%sទៀត',
  5898. past: '%sមុន',
  5899. s: 'ប៉ុន្មានវិនាទី',
  5900. m: 'មួយនាទី',
  5901. mm: '%d នាទី',
  5902. h: 'មួយម៉ោង',
  5903. hh: '%d ម៉ោង',
  5904. d: 'មួយថ្ងៃ',
  5905. dd: '%d ថ្ងៃ',
  5906. M: 'មួយខែ',
  5907. MM: '%d ខែ',
  5908. y: 'មួយឆ្នាំ',
  5909. yy: '%d ឆ្នាំ'
  5910. },
  5911. week: {
  5912. dow: 1, // Monday is the first day of the week.
  5913. doy: 4 // The week that contains Jan 4th is the first week of the year.
  5914. }
  5915. });
  5916. }));
  5917. // moment.js locale configuration
  5918. // locale : korean (ko)
  5919. //
  5920. // authors
  5921. //
  5922. // - Kyungwook, Park : https://github.com/kyungw00k
  5923. // - Jeeeyul Lee <jeeeyul@gmail.com>
  5924. (function (factory) {
  5925. factory(moment);
  5926. }(function (moment) {
  5927. return moment.defineLocale('ko', {
  5928. months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  5929. monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  5930. weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
  5931. weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
  5932. weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
  5933. longDateFormat : {
  5934. LT : 'A h시 m분',
  5935. LTS : 'A h시 m분 s초',
  5936. L : 'YYYY.MM.DD',
  5937. LL : 'YYYY년 MMMM D일',
  5938. LLL : 'YYYY년 MMMM D일 LT',
  5939. LLLL : 'YYYY년 MMMM D일 dddd LT'
  5940. },
  5941. meridiem : function (hour, minute, isUpper) {
  5942. return hour < 12 ? '오전' : '오후';
  5943. },
  5944. calendar : {
  5945. sameDay : '오늘 LT',
  5946. nextDay : '내일 LT',
  5947. nextWeek : 'dddd LT',
  5948. lastDay : '어제 LT',
  5949. lastWeek : '지난주 dddd LT',
  5950. sameElse : 'L'
  5951. },
  5952. relativeTime : {
  5953. future : '%s 후',
  5954. past : '%s 전',
  5955. s : '몇초',
  5956. ss : '%d초',
  5957. m : '일분',
  5958. mm : '%d분',
  5959. h : '한시간',
  5960. hh : '%d시간',
  5961. d : '하루',
  5962. dd : '%d일',
  5963. M : '한달',
  5964. MM : '%d달',
  5965. y : '일년',
  5966. yy : '%d년'
  5967. },
  5968. ordinalParse : /\d{1,2}일/,
  5969. ordinal : '%d일',
  5970. meridiemParse : /(오전|오후)/,
  5971. isPM : function (token) {
  5972. return token === '오후';
  5973. }
  5974. });
  5975. }));
  5976. // moment.js locale configuration
  5977. // locale : Luxembourgish (lb)
  5978. // author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
  5979. // Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the
  5980. // deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday'
  5981. // and 'eifelerRegelAppliesToNumber' methods are meant for
  5982. (function (factory) {
  5983. factory(moment);
  5984. }(function (moment) {
  5985. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  5986. var format = {
  5987. 'm': ['eng Minutt', 'enger Minutt'],
  5988. 'h': ['eng Stonn', 'enger Stonn'],
  5989. 'd': ['een Dag', 'engem Dag'],
  5990. 'M': ['ee Mount', 'engem Mount'],
  5991. 'y': ['ee Joer', 'engem Joer']
  5992. };
  5993. return withoutSuffix ? format[key][0] : format[key][1];
  5994. }
  5995. function processFutureTime(string) {
  5996. var number = string.substr(0, string.indexOf(' '));
  5997. if (eifelerRegelAppliesToNumber(number)) {
  5998. return 'a ' + string;
  5999. }
  6000. return 'an ' + string;
  6001. }
  6002. function processPastTime(string) {
  6003. var number = string.substr(0, string.indexOf(' '));
  6004. if (eifelerRegelAppliesToNumber(number)) {
  6005. return 'viru ' + string;
  6006. }
  6007. return 'virun ' + string;
  6008. }
  6009. /**
  6010. * Returns true if the word before the given number loses the '-n' ending.
  6011. * e.g. 'an 10 Deeg' but 'a 5 Deeg'
  6012. *
  6013. * @param number {integer}
  6014. * @returns {boolean}
  6015. */
  6016. function eifelerRegelAppliesToNumber(number) {
  6017. number = parseInt(number, 10);
  6018. if (isNaN(number)) {
  6019. return false;
  6020. }
  6021. if (number < 0) {
  6022. // Negative Number --> always true
  6023. return true;
  6024. } else if (number < 10) {
  6025. // Only 1 digit
  6026. if (4 <= number && number <= 7) {
  6027. return true;
  6028. }
  6029. return false;
  6030. } else if (number < 100) {
  6031. // 2 digits
  6032. var lastDigit = number % 10, firstDigit = number / 10;
  6033. if (lastDigit === 0) {
  6034. return eifelerRegelAppliesToNumber(firstDigit);
  6035. }
  6036. return eifelerRegelAppliesToNumber(lastDigit);
  6037. } else if (number < 10000) {
  6038. // 3 or 4 digits --> recursively check first digit
  6039. while (number >= 10) {
  6040. number = number / 10;
  6041. }
  6042. return eifelerRegelAppliesToNumber(number);
  6043. } else {
  6044. // Anything larger than 4 digits: recursively check first n-3 digits
  6045. number = number / 1000;
  6046. return eifelerRegelAppliesToNumber(number);
  6047. }
  6048. }
  6049. return moment.defineLocale('lb', {
  6050. months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  6051. monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  6052. weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
  6053. weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
  6054. weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
  6055. longDateFormat: {
  6056. LT: 'H:mm [Auer]',
  6057. LTS: 'H:mm:ss [Auer]',
  6058. L: 'DD.MM.YYYY',
  6059. LL: 'D. MMMM YYYY',
  6060. LLL: 'D. MMMM YYYY LT',
  6061. LLLL: 'dddd, D. MMMM YYYY LT'
  6062. },
  6063. calendar: {
  6064. sameDay: '[Haut um] LT',
  6065. sameElse: 'L',
  6066. nextDay: '[Muer um] LT',
  6067. nextWeek: 'dddd [um] LT',
  6068. lastDay: '[Gëschter um] LT',
  6069. lastWeek: function () {
  6070. // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
  6071. switch (this.day()) {
  6072. case 2:
  6073. case 4:
  6074. return '[Leschten] dddd [um] LT';
  6075. default:
  6076. return '[Leschte] dddd [um] LT';
  6077. }
  6078. }
  6079. },
  6080. relativeTime : {
  6081. future : processFutureTime,
  6082. past : processPastTime,
  6083. s : 'e puer Sekonnen',
  6084. m : processRelativeTime,
  6085. mm : '%d Minutten',
  6086. h : processRelativeTime,
  6087. hh : '%d Stonnen',
  6088. d : processRelativeTime,
  6089. dd : '%d Deeg',
  6090. M : processRelativeTime,
  6091. MM : '%d Méint',
  6092. y : processRelativeTime,
  6093. yy : '%d Joer'
  6094. },
  6095. ordinalParse: /\d{1,2}\./,
  6096. ordinal: '%d.',
  6097. week: {
  6098. dow: 1, // Monday is the first day of the week.
  6099. doy: 4 // The week that contains Jan 4th is the first week of the year.
  6100. }
  6101. });
  6102. }));
  6103. // moment.js locale configuration
  6104. // locale : Lithuanian (lt)
  6105. // author : Mindaugas Mozūras : https://github.com/mmozuras
  6106. (function (factory) {
  6107. factory(moment);
  6108. }(function (moment) {
  6109. var units = {
  6110. 'm' : 'minutė_minutės_minutę',
  6111. 'mm': 'minutės_minučių_minutes',
  6112. 'h' : 'valanda_valandos_valandą',
  6113. 'hh': 'valandos_valandų_valandas',
  6114. 'd' : 'diena_dienos_dieną',
  6115. 'dd': 'dienos_dienų_dienas',
  6116. 'M' : 'mėnuo_mėnesio_mėnesį',
  6117. 'MM': 'mėnesiai_mėnesių_mėnesius',
  6118. 'y' : 'metai_metų_metus',
  6119. 'yy': 'metai_metų_metus'
  6120. },
  6121. weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_');
  6122. function translateSeconds(number, withoutSuffix, key, isFuture) {
  6123. if (withoutSuffix) {
  6124. return 'kelios sekundės';
  6125. } else {
  6126. return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
  6127. }
  6128. }
  6129. function translateSingular(number, withoutSuffix, key, isFuture) {
  6130. return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
  6131. }
  6132. function special(number) {
  6133. return number % 10 === 0 || (number > 10 && number < 20);
  6134. }
  6135. function forms(key) {
  6136. return units[key].split('_');
  6137. }
  6138. function translate(number, withoutSuffix, key, isFuture) {
  6139. var result = number + ' ';
  6140. if (number === 1) {
  6141. return result + translateSingular(number, withoutSuffix, key[0], isFuture);
  6142. } else if (withoutSuffix) {
  6143. return result + (special(number) ? forms(key)[1] : forms(key)[0]);
  6144. } else {
  6145. if (isFuture) {
  6146. return result + forms(key)[1];
  6147. } else {
  6148. return result + (special(number) ? forms(key)[1] : forms(key)[2]);
  6149. }
  6150. }
  6151. }
  6152. function relativeWeekDay(moment, format) {
  6153. var nominative = format.indexOf('dddd HH:mm') === -1,
  6154. weekDay = weekDays[moment.day()];
  6155. return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į';
  6156. }
  6157. return moment.defineLocale('lt', {
  6158. months : 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
  6159. monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
  6160. weekdays : relativeWeekDay,
  6161. weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
  6162. weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
  6163. longDateFormat : {
  6164. LT : 'HH:mm',
  6165. LTS : 'LT:ss',
  6166. L : 'YYYY-MM-DD',
  6167. LL : 'YYYY [m.] MMMM D [d.]',
  6168. LLL : 'YYYY [m.] MMMM D [d.], LT [val.]',
  6169. LLLL : 'YYYY [m.] MMMM D [d.], dddd, LT [val.]',
  6170. l : 'YYYY-MM-DD',
  6171. ll : 'YYYY [m.] MMMM D [d.]',
  6172. lll : 'YYYY [m.] MMMM D [d.], LT [val.]',
  6173. llll : 'YYYY [m.] MMMM D [d.], ddd, LT [val.]'
  6174. },
  6175. calendar : {
  6176. sameDay : '[Šiandien] LT',
  6177. nextDay : '[Rytoj] LT',
  6178. nextWeek : 'dddd LT',
  6179. lastDay : '[Vakar] LT',
  6180. lastWeek : '[Praėjusį] dddd LT',
  6181. sameElse : 'L'
  6182. },
  6183. relativeTime : {
  6184. future : 'po %s',
  6185. past : 'prieš %s',
  6186. s : translateSeconds,
  6187. m : translateSingular,
  6188. mm : translate,
  6189. h : translateSingular,
  6190. hh : translate,
  6191. d : translateSingular,
  6192. dd : translate,
  6193. M : translateSingular,
  6194. MM : translate,
  6195. y : translateSingular,
  6196. yy : translate
  6197. },
  6198. ordinalParse: /\d{1,2}-oji/,
  6199. ordinal : function (number) {
  6200. return number + '-oji';
  6201. },
  6202. week : {
  6203. dow : 1, // Monday is the first day of the week.
  6204. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6205. }
  6206. });
  6207. }));
  6208. // moment.js locale configuration
  6209. // locale : latvian (lv)
  6210. // author : Kristaps Karlsons : https://github.com/skakri
  6211. (function (factory) {
  6212. factory(moment);
  6213. }(function (moment) {
  6214. var units = {
  6215. 'mm': 'minūti_minūtes_minūte_minūtes',
  6216. 'hh': 'stundu_stundas_stunda_stundas',
  6217. 'dd': 'dienu_dienas_diena_dienas',
  6218. 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
  6219. 'yy': 'gadu_gadus_gads_gadi'
  6220. };
  6221. function format(word, number, withoutSuffix) {
  6222. var forms = word.split('_');
  6223. if (withoutSuffix) {
  6224. return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
  6225. } else {
  6226. return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
  6227. }
  6228. }
  6229. function relativeTimeWithPlural(number, withoutSuffix, key) {
  6230. return number + ' ' + format(units[key], number, withoutSuffix);
  6231. }
  6232. return moment.defineLocale('lv', {
  6233. months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
  6234. monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
  6235. weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
  6236. weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
  6237. weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
  6238. longDateFormat : {
  6239. LT : 'HH:mm',
  6240. LTS : 'LT:ss',
  6241. L : 'DD.MM.YYYY',
  6242. LL : 'YYYY. [gada] D. MMMM',
  6243. LLL : 'YYYY. [gada] D. MMMM, LT',
  6244. LLLL : 'YYYY. [gada] D. MMMM, dddd, LT'
  6245. },
  6246. calendar : {
  6247. sameDay : '[Šodien pulksten] LT',
  6248. nextDay : '[Rīt pulksten] LT',
  6249. nextWeek : 'dddd [pulksten] LT',
  6250. lastDay : '[Vakar pulksten] LT',
  6251. lastWeek : '[Pagājušā] dddd [pulksten] LT',
  6252. sameElse : 'L'
  6253. },
  6254. relativeTime : {
  6255. future : '%s vēlāk',
  6256. past : '%s agrāk',
  6257. s : 'dažas sekundes',
  6258. m : 'minūti',
  6259. mm : relativeTimeWithPlural,
  6260. h : 'stundu',
  6261. hh : relativeTimeWithPlural,
  6262. d : 'dienu',
  6263. dd : relativeTimeWithPlural,
  6264. M : 'mēnesi',
  6265. MM : relativeTimeWithPlural,
  6266. y : 'gadu',
  6267. yy : relativeTimeWithPlural
  6268. },
  6269. ordinalParse: /\d{1,2}\./,
  6270. ordinal : '%d.',
  6271. week : {
  6272. dow : 1, // Monday is the first day of the week.
  6273. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6274. }
  6275. });
  6276. }));
  6277. // moment.js locale configuration
  6278. // locale : macedonian (mk)
  6279. // author : Borislav Mickov : https://github.com/B0k0
  6280. (function (factory) {
  6281. factory(moment);
  6282. }(function (moment) {
  6283. return moment.defineLocale('mk', {
  6284. months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
  6285. monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
  6286. weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
  6287. weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
  6288. weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
  6289. longDateFormat : {
  6290. LT : 'H:mm',
  6291. LTS : 'LT:ss',
  6292. L : 'D.MM.YYYY',
  6293. LL : 'D MMMM YYYY',
  6294. LLL : 'D MMMM YYYY LT',
  6295. LLLL : 'dddd, D MMMM YYYY LT'
  6296. },
  6297. calendar : {
  6298. sameDay : '[Денес во] LT',
  6299. nextDay : '[Утре во] LT',
  6300. nextWeek : 'dddd [во] LT',
  6301. lastDay : '[Вчера во] LT',
  6302. lastWeek : function () {
  6303. switch (this.day()) {
  6304. case 0:
  6305. case 3:
  6306. case 6:
  6307. return '[Во изминатата] dddd [во] LT';
  6308. case 1:
  6309. case 2:
  6310. case 4:
  6311. case 5:
  6312. return '[Во изминатиот] dddd [во] LT';
  6313. }
  6314. },
  6315. sameElse : 'L'
  6316. },
  6317. relativeTime : {
  6318. future : 'после %s',
  6319. past : 'пред %s',
  6320. s : 'неколку секунди',
  6321. m : 'минута',
  6322. mm : '%d минути',
  6323. h : 'час',
  6324. hh : '%d часа',
  6325. d : 'ден',
  6326. dd : '%d дена',
  6327. M : 'месец',
  6328. MM : '%d месеци',
  6329. y : 'година',
  6330. yy : '%d години'
  6331. },
  6332. ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  6333. ordinal : function (number) {
  6334. var lastDigit = number % 10,
  6335. last2Digits = number % 100;
  6336. if (number === 0) {
  6337. return number + '-ев';
  6338. } else if (last2Digits === 0) {
  6339. return number + '-ен';
  6340. } else if (last2Digits > 10 && last2Digits < 20) {
  6341. return number + '-ти';
  6342. } else if (lastDigit === 1) {
  6343. return number + '-ви';
  6344. } else if (lastDigit === 2) {
  6345. return number + '-ри';
  6346. } else if (lastDigit === 7 || lastDigit === 8) {
  6347. return number + '-ми';
  6348. } else {
  6349. return number + '-ти';
  6350. }
  6351. },
  6352. week : {
  6353. dow : 1, // Monday is the first day of the week.
  6354. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6355. }
  6356. });
  6357. }));
  6358. // moment.js locale configuration
  6359. // locale : malayalam (ml)
  6360. // author : Floyd Pink : https://github.com/floydpink
  6361. (function (factory) {
  6362. factory(moment);
  6363. }(function (moment) {
  6364. return moment.defineLocale('ml', {
  6365. months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
  6366. monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
  6367. weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
  6368. weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
  6369. weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
  6370. longDateFormat : {
  6371. LT : 'A h:mm -നു',
  6372. LTS : 'A h:mm:ss -നു',
  6373. L : 'DD/MM/YYYY',
  6374. LL : 'D MMMM YYYY',
  6375. LLL : 'D MMMM YYYY, LT',
  6376. LLLL : 'dddd, D MMMM YYYY, LT'
  6377. },
  6378. calendar : {
  6379. sameDay : '[ഇന്ന്] LT',
  6380. nextDay : '[നാളെ] LT',
  6381. nextWeek : 'dddd, LT',
  6382. lastDay : '[ഇന്നലെ] LT',
  6383. lastWeek : '[കഴിഞ്ഞ] dddd, LT',
  6384. sameElse : 'L'
  6385. },
  6386. relativeTime : {
  6387. future : '%s കഴിഞ്ഞ്',
  6388. past : '%s മുൻപ്',
  6389. s : 'അൽപ നിമിഷങ്ങൾ',
  6390. m : 'ഒരു മിനിറ്റ്',
  6391. mm : '%d മിനിറ്റ്',
  6392. h : 'ഒരു മണിക്കൂർ',
  6393. hh : '%d മണിക്കൂർ',
  6394. d : 'ഒരു ദിവസം',
  6395. dd : '%d ദിവസം',
  6396. M : 'ഒരു മാസം',
  6397. MM : '%d മാസം',
  6398. y : 'ഒരു വർഷം',
  6399. yy : '%d വർഷം'
  6400. },
  6401. meridiem : function (hour, minute, isLower) {
  6402. if (hour < 4) {
  6403. return 'രാത്രി';
  6404. } else if (hour < 12) {
  6405. return 'രാവിലെ';
  6406. } else if (hour < 17) {
  6407. return 'ഉച്ച കഴിഞ്ഞ്';
  6408. } else if (hour < 20) {
  6409. return 'വൈകുന്നേരം';
  6410. } else {
  6411. return 'രാത്രി';
  6412. }
  6413. }
  6414. });
  6415. }));
  6416. // moment.js locale configuration
  6417. // locale : Marathi (mr)
  6418. // author : Harshad Kale : https://github.com/kalehv
  6419. (function (factory) {
  6420. factory(moment);
  6421. }(function (moment) {
  6422. var symbolMap = {
  6423. '1': '१',
  6424. '2': '२',
  6425. '3': '३',
  6426. '4': '४',
  6427. '5': '५',
  6428. '6': '६',
  6429. '7': '७',
  6430. '8': '८',
  6431. '9': '९',
  6432. '0': '०'
  6433. },
  6434. numberMap = {
  6435. '१': '1',
  6436. '२': '2',
  6437. '३': '3',
  6438. '४': '4',
  6439. '५': '5',
  6440. '६': '6',
  6441. '७': '7',
  6442. '८': '8',
  6443. '९': '9',
  6444. '०': '0'
  6445. };
  6446. return moment.defineLocale('mr', {
  6447. months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
  6448. monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
  6449. weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  6450. weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
  6451. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  6452. longDateFormat : {
  6453. LT : 'A h:mm वाजता',
  6454. LTS : 'A h:mm:ss वाजता',
  6455. L : 'DD/MM/YYYY',
  6456. LL : 'D MMMM YYYY',
  6457. LLL : 'D MMMM YYYY, LT',
  6458. LLLL : 'dddd, D MMMM YYYY, LT'
  6459. },
  6460. calendar : {
  6461. sameDay : '[आज] LT',
  6462. nextDay : '[उद्या] LT',
  6463. nextWeek : 'dddd, LT',
  6464. lastDay : '[काल] LT',
  6465. lastWeek: '[मागील] dddd, LT',
  6466. sameElse : 'L'
  6467. },
  6468. relativeTime : {
  6469. future : '%s नंतर',
  6470. past : '%s पूर्वी',
  6471. s : 'सेकंद',
  6472. m: 'एक मिनिट',
  6473. mm: '%d मिनिटे',
  6474. h : 'एक तास',
  6475. hh : '%d तास',
  6476. d : 'एक दिवस',
  6477. dd : '%d दिवस',
  6478. M : 'एक महिना',
  6479. MM : '%d महिने',
  6480. y : 'एक वर्ष',
  6481. yy : '%d वर्षे'
  6482. },
  6483. preparse: function (string) {
  6484. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  6485. return numberMap[match];
  6486. });
  6487. },
  6488. postformat: function (string) {
  6489. return string.replace(/\d/g, function (match) {
  6490. return symbolMap[match];
  6491. });
  6492. },
  6493. meridiem: function (hour, minute, isLower)
  6494. {
  6495. if (hour < 4) {
  6496. return 'रात्री';
  6497. } else if (hour < 10) {
  6498. return 'सकाळी';
  6499. } else if (hour < 17) {
  6500. return 'दुपारी';
  6501. } else if (hour < 20) {
  6502. return 'सायंकाळी';
  6503. } else {
  6504. return 'रात्री';
  6505. }
  6506. },
  6507. week : {
  6508. dow : 0, // Sunday is the first day of the week.
  6509. doy : 6 // The week that contains Jan 1st is the first week of the year.
  6510. }
  6511. });
  6512. }));
  6513. // moment.js locale configuration
  6514. // locale : Bahasa Malaysia (ms-MY)
  6515. // author : Weldan Jamili : https://github.com/weldan
  6516. (function (factory) {
  6517. factory(moment);
  6518. }(function (moment) {
  6519. return moment.defineLocale('ms-my', {
  6520. months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
  6521. monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
  6522. weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
  6523. weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
  6524. weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
  6525. longDateFormat : {
  6526. LT : 'HH.mm',
  6527. LTS : 'LT.ss',
  6528. L : 'DD/MM/YYYY',
  6529. LL : 'D MMMM YYYY',
  6530. LLL : 'D MMMM YYYY [pukul] LT',
  6531. LLLL : 'dddd, D MMMM YYYY [pukul] LT'
  6532. },
  6533. meridiem : function (hours, minutes, isLower) {
  6534. if (hours < 11) {
  6535. return 'pagi';
  6536. } else if (hours < 15) {
  6537. return 'tengahari';
  6538. } else if (hours < 19) {
  6539. return 'petang';
  6540. } else {
  6541. return 'malam';
  6542. }
  6543. },
  6544. calendar : {
  6545. sameDay : '[Hari ini pukul] LT',
  6546. nextDay : '[Esok pukul] LT',
  6547. nextWeek : 'dddd [pukul] LT',
  6548. lastDay : '[Kelmarin pukul] LT',
  6549. lastWeek : 'dddd [lepas pukul] LT',
  6550. sameElse : 'L'
  6551. },
  6552. relativeTime : {
  6553. future : 'dalam %s',
  6554. past : '%s yang lepas',
  6555. s : 'beberapa saat',
  6556. m : 'seminit',
  6557. mm : '%d minit',
  6558. h : 'sejam',
  6559. hh : '%d jam',
  6560. d : 'sehari',
  6561. dd : '%d hari',
  6562. M : 'sebulan',
  6563. MM : '%d bulan',
  6564. y : 'setahun',
  6565. yy : '%d tahun'
  6566. },
  6567. week : {
  6568. dow : 1, // Monday is the first day of the week.
  6569. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6570. }
  6571. });
  6572. }));
  6573. // moment.js locale configuration
  6574. // locale : Burmese (my)
  6575. // author : Squar team, mysquar.com
  6576. (function (factory) {
  6577. factory(moment);
  6578. }(function (moment) {
  6579. var symbolMap = {
  6580. '1': '၁',
  6581. '2': '၂',
  6582. '3': '၃',
  6583. '4': '၄',
  6584. '5': '၅',
  6585. '6': '၆',
  6586. '7': '၇',
  6587. '8': '၈',
  6588. '9': '၉',
  6589. '0': '၀'
  6590. }, numberMap = {
  6591. '၁': '1',
  6592. '၂': '2',
  6593. '၃': '3',
  6594. '၄': '4',
  6595. '၅': '5',
  6596. '၆': '6',
  6597. '၇': '7',
  6598. '၈': '8',
  6599. '၉': '9',
  6600. '၀': '0'
  6601. };
  6602. return moment.defineLocale('my', {
  6603. months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
  6604. monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
  6605. weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
  6606. weekdaysShort: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  6607. weekdaysMin: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  6608. longDateFormat: {
  6609. LT: 'HH:mm',
  6610. LTS: 'HH:mm:ss',
  6611. L: 'DD/MM/YYYY',
  6612. LL: 'D MMMM YYYY',
  6613. LLL: 'D MMMM YYYY LT',
  6614. LLLL: 'dddd D MMMM YYYY LT'
  6615. },
  6616. calendar: {
  6617. sameDay: '[ယနေ.] LT [မှာ]',
  6618. nextDay: '[မနက်ဖြန်] LT [မှာ]',
  6619. nextWeek: 'dddd LT [မှာ]',
  6620. lastDay: '[မနေ.က] LT [မှာ]',
  6621. lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
  6622. sameElse: 'L'
  6623. },
  6624. relativeTime: {
  6625. future: 'လာမည့် %s မှာ',
  6626. past: 'လွန်ခဲ့သော %s က',
  6627. s: 'စက္ကန်.အနည်းငယ်',
  6628. m: 'တစ်မိနစ်',
  6629. mm: '%d မိနစ်',
  6630. h: 'တစ်နာရီ',
  6631. hh: '%d နာရီ',
  6632. d: 'တစ်ရက်',
  6633. dd: '%d ရက်',
  6634. M: 'တစ်လ',
  6635. MM: '%d လ',
  6636. y: 'တစ်နှစ်',
  6637. yy: '%d နှစ်'
  6638. },
  6639. preparse: function (string) {
  6640. return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
  6641. return numberMap[match];
  6642. });
  6643. },
  6644. postformat: function (string) {
  6645. return string.replace(/\d/g, function (match) {
  6646. return symbolMap[match];
  6647. });
  6648. },
  6649. week: {
  6650. dow: 1, // Monday is the first day of the week.
  6651. doy: 4 // The week that contains Jan 1st is the first week of the year.
  6652. }
  6653. });
  6654. }));
  6655. // moment.js locale configuration
  6656. // locale : norwegian bokmål (nb)
  6657. // authors : Espen Hovlandsdal : https://github.com/rexxars
  6658. // Sigurd Gartmann : https://github.com/sigurdga
  6659. (function (factory) {
  6660. factory(moment);
  6661. }(function (moment) {
  6662. return moment.defineLocale('nb', {
  6663. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  6664. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  6665. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  6666. weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'),
  6667. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  6668. longDateFormat : {
  6669. LT : 'H.mm',
  6670. LTS : 'LT.ss',
  6671. L : 'DD.MM.YYYY',
  6672. LL : 'D. MMMM YYYY',
  6673. LLL : 'D. MMMM YYYY [kl.] LT',
  6674. LLLL : 'dddd D. MMMM YYYY [kl.] LT'
  6675. },
  6676. calendar : {
  6677. sameDay: '[i dag kl.] LT',
  6678. nextDay: '[i morgen kl.] LT',
  6679. nextWeek: 'dddd [kl.] LT',
  6680. lastDay: '[i går kl.] LT',
  6681. lastWeek: '[forrige] dddd [kl.] LT',
  6682. sameElse: 'L'
  6683. },
  6684. relativeTime : {
  6685. future : 'om %s',
  6686. past : 'for %s siden',
  6687. s : 'noen sekunder',
  6688. m : 'ett minutt',
  6689. mm : '%d minutter',
  6690. h : 'en time',
  6691. hh : '%d timer',
  6692. d : 'en dag',
  6693. dd : '%d dager',
  6694. M : 'en måned',
  6695. MM : '%d måneder',
  6696. y : 'ett år',
  6697. yy : '%d år'
  6698. },
  6699. ordinalParse: /\d{1,2}\./,
  6700. ordinal : '%d.',
  6701. week : {
  6702. dow : 1, // Monday is the first day of the week.
  6703. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6704. }
  6705. });
  6706. }));
  6707. // moment.js locale configuration
  6708. // locale : nepali/nepalese
  6709. // author : suvash : https://github.com/suvash
  6710. (function (factory) {
  6711. factory(moment);
  6712. }(function (moment) {
  6713. var symbolMap = {
  6714. '1': '१',
  6715. '2': '२',
  6716. '3': '३',
  6717. '4': '४',
  6718. '5': '५',
  6719. '6': '६',
  6720. '7': '७',
  6721. '8': '८',
  6722. '9': '९',
  6723. '0': '०'
  6724. },
  6725. numberMap = {
  6726. '१': '1',
  6727. '२': '2',
  6728. '३': '3',
  6729. '४': '4',
  6730. '५': '5',
  6731. '६': '6',
  6732. '७': '7',
  6733. '८': '8',
  6734. '९': '9',
  6735. '०': '0'
  6736. };
  6737. return moment.defineLocale('ne', {
  6738. months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
  6739. monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
  6740. weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
  6741. weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
  6742. weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'),
  6743. longDateFormat : {
  6744. LT : 'Aको h:mm बजे',
  6745. LTS : 'Aको h:mm:ss बजे',
  6746. L : 'DD/MM/YYYY',
  6747. LL : 'D MMMM YYYY',
  6748. LLL : 'D MMMM YYYY, LT',
  6749. LLLL : 'dddd, D MMMM YYYY, LT'
  6750. },
  6751. preparse: function (string) {
  6752. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  6753. return numberMap[match];
  6754. });
  6755. },
  6756. postformat: function (string) {
  6757. return string.replace(/\d/g, function (match) {
  6758. return symbolMap[match];
  6759. });
  6760. },
  6761. meridiem : function (hour, minute, isLower) {
  6762. if (hour < 3) {
  6763. return 'राती';
  6764. } else if (hour < 10) {
  6765. return 'बिहान';
  6766. } else if (hour < 15) {
  6767. return 'दिउँसो';
  6768. } else if (hour < 18) {
  6769. return 'बेलुका';
  6770. } else if (hour < 20) {
  6771. return 'साँझ';
  6772. } else {
  6773. return 'राती';
  6774. }
  6775. },
  6776. calendar : {
  6777. sameDay : '[आज] LT',
  6778. nextDay : '[भोली] LT',
  6779. nextWeek : '[आउँदो] dddd[,] LT',
  6780. lastDay : '[हिजो] LT',
  6781. lastWeek : '[गएको] dddd[,] LT',
  6782. sameElse : 'L'
  6783. },
  6784. relativeTime : {
  6785. future : '%sमा',
  6786. past : '%s अगाडी',
  6787. s : 'केही समय',
  6788. m : 'एक मिनेट',
  6789. mm : '%d मिनेट',
  6790. h : 'एक घण्टा',
  6791. hh : '%d घण्टा',
  6792. d : 'एक दिन',
  6793. dd : '%d दिन',
  6794. M : 'एक महिना',
  6795. MM : '%d महिना',
  6796. y : 'एक बर्ष',
  6797. yy : '%d बर्ष'
  6798. },
  6799. week : {
  6800. dow : 1, // Monday is the first day of the week.
  6801. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6802. }
  6803. });
  6804. }));
  6805. // moment.js locale configuration
  6806. // locale : dutch (nl)
  6807. // author : Joris Röling : https://github.com/jjupiter
  6808. (function (factory) {
  6809. factory(moment);
  6810. }(function (moment) {
  6811. var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
  6812. monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
  6813. return moment.defineLocale('nl', {
  6814. months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
  6815. monthsShort : function (m, format) {
  6816. if (/-MMM-/.test(format)) {
  6817. return monthsShortWithoutDots[m.month()];
  6818. } else {
  6819. return monthsShortWithDots[m.month()];
  6820. }
  6821. },
  6822. weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
  6823. weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
  6824. weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
  6825. longDateFormat : {
  6826. LT : 'HH:mm',
  6827. LTS : 'LT:ss',
  6828. L : 'DD-MM-YYYY',
  6829. LL : 'D MMMM YYYY',
  6830. LLL : 'D MMMM YYYY LT',
  6831. LLLL : 'dddd D MMMM YYYY LT'
  6832. },
  6833. calendar : {
  6834. sameDay: '[vandaag om] LT',
  6835. nextDay: '[morgen om] LT',
  6836. nextWeek: 'dddd [om] LT',
  6837. lastDay: '[gisteren om] LT',
  6838. lastWeek: '[afgelopen] dddd [om] LT',
  6839. sameElse: 'L'
  6840. },
  6841. relativeTime : {
  6842. future : 'over %s',
  6843. past : '%s geleden',
  6844. s : 'een paar seconden',
  6845. m : 'één minuut',
  6846. mm : '%d minuten',
  6847. h : 'één uur',
  6848. hh : '%d uur',
  6849. d : 'één dag',
  6850. dd : '%d dagen',
  6851. M : 'één maand',
  6852. MM : '%d maanden',
  6853. y : 'één jaar',
  6854. yy : '%d jaar'
  6855. },
  6856. ordinalParse: /\d{1,2}(ste|de)/,
  6857. ordinal : function (number) {
  6858. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  6859. },
  6860. week : {
  6861. dow : 1, // Monday is the first day of the week.
  6862. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6863. }
  6864. });
  6865. }));
  6866. // moment.js locale configuration
  6867. // locale : norwegian nynorsk (nn)
  6868. // author : https://github.com/mechuwind
  6869. (function (factory) {
  6870. factory(moment);
  6871. }(function (moment) {
  6872. return moment.defineLocale('nn', {
  6873. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  6874. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  6875. weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
  6876. weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
  6877. weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
  6878. longDateFormat : {
  6879. LT : 'HH:mm',
  6880. LTS : 'LT:ss',
  6881. L : 'DD.MM.YYYY',
  6882. LL : 'D MMMM YYYY',
  6883. LLL : 'D MMMM YYYY LT',
  6884. LLLL : 'dddd D MMMM YYYY LT'
  6885. },
  6886. calendar : {
  6887. sameDay: '[I dag klokka] LT',
  6888. nextDay: '[I morgon klokka] LT',
  6889. nextWeek: 'dddd [klokka] LT',
  6890. lastDay: '[I går klokka] LT',
  6891. lastWeek: '[Føregåande] dddd [klokka] LT',
  6892. sameElse: 'L'
  6893. },
  6894. relativeTime : {
  6895. future : 'om %s',
  6896. past : 'for %s sidan',
  6897. s : 'nokre sekund',
  6898. m : 'eit minutt',
  6899. mm : '%d minutt',
  6900. h : 'ein time',
  6901. hh : '%d timar',
  6902. d : 'ein dag',
  6903. dd : '%d dagar',
  6904. M : 'ein månad',
  6905. MM : '%d månader',
  6906. y : 'eit år',
  6907. yy : '%d år'
  6908. },
  6909. ordinalParse: /\d{1,2}\./,
  6910. ordinal : '%d.',
  6911. week : {
  6912. dow : 1, // Monday is the first day of the week.
  6913. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6914. }
  6915. });
  6916. }));
  6917. // moment.js locale configuration
  6918. // locale : polish (pl)
  6919. // author : Rafal Hirsz : https://github.com/evoL
  6920. (function (factory) {
  6921. factory(moment);
  6922. }(function (moment) {
  6923. var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
  6924. monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
  6925. function plural(n) {
  6926. return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
  6927. }
  6928. function translate(number, withoutSuffix, key) {
  6929. var result = number + ' ';
  6930. switch (key) {
  6931. case 'm':
  6932. return withoutSuffix ? 'minuta' : 'minutę';
  6933. case 'mm':
  6934. return result + (plural(number) ? 'minuty' : 'minut');
  6935. case 'h':
  6936. return withoutSuffix ? 'godzina' : 'godzinę';
  6937. case 'hh':
  6938. return result + (plural(number) ? 'godziny' : 'godzin');
  6939. case 'MM':
  6940. return result + (plural(number) ? 'miesiące' : 'miesięcy');
  6941. case 'yy':
  6942. return result + (plural(number) ? 'lata' : 'lat');
  6943. }
  6944. }
  6945. return moment.defineLocale('pl', {
  6946. months : function (momentToFormat, format) {
  6947. if (/D MMMM/.test(format)) {
  6948. return monthsSubjective[momentToFormat.month()];
  6949. } else {
  6950. return monthsNominative[momentToFormat.month()];
  6951. }
  6952. },
  6953. monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
  6954. weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
  6955. weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
  6956. weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
  6957. longDateFormat : {
  6958. LT : 'HH:mm',
  6959. LTS : 'LT:ss',
  6960. L : 'DD.MM.YYYY',
  6961. LL : 'D MMMM YYYY',
  6962. LLL : 'D MMMM YYYY LT',
  6963. LLLL : 'dddd, D MMMM YYYY LT'
  6964. },
  6965. calendar : {
  6966. sameDay: '[Dziś o] LT',
  6967. nextDay: '[Jutro o] LT',
  6968. nextWeek: '[W] dddd [o] LT',
  6969. lastDay: '[Wczoraj o] LT',
  6970. lastWeek: function () {
  6971. switch (this.day()) {
  6972. case 0:
  6973. return '[W zeszłą niedzielę o] LT';
  6974. case 3:
  6975. return '[W zeszłą środę o] LT';
  6976. case 6:
  6977. return '[W zeszłą sobotę o] LT';
  6978. default:
  6979. return '[W zeszły] dddd [o] LT';
  6980. }
  6981. },
  6982. sameElse: 'L'
  6983. },
  6984. relativeTime : {
  6985. future : 'za %s',
  6986. past : '%s temu',
  6987. s : 'kilka sekund',
  6988. m : translate,
  6989. mm : translate,
  6990. h : translate,
  6991. hh : translate,
  6992. d : '1 dzień',
  6993. dd : '%d dni',
  6994. M : 'miesiąc',
  6995. MM : translate,
  6996. y : 'rok',
  6997. yy : translate
  6998. },
  6999. ordinalParse: /\d{1,2}\./,
  7000. ordinal : '%d.',
  7001. week : {
  7002. dow : 1, // Monday is the first day of the week.
  7003. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7004. }
  7005. });
  7006. }));
  7007. // moment.js locale configuration
  7008. // locale : brazilian portuguese (pt-br)
  7009. // author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
  7010. (function (factory) {
  7011. factory(moment);
  7012. }(function (moment) {
  7013. return moment.defineLocale('pt-br', {
  7014. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  7015. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  7016. weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
  7017. weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
  7018. weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
  7019. longDateFormat : {
  7020. LT : 'HH:mm',
  7021. LTS : 'LT:ss',
  7022. L : 'DD/MM/YYYY',
  7023. LL : 'D [de] MMMM [de] YYYY',
  7024. LLL : 'D [de] MMMM [de] YYYY [às] LT',
  7025. LLLL : 'dddd, D [de] MMMM [de] YYYY [às] LT'
  7026. },
  7027. calendar : {
  7028. sameDay: '[Hoje às] LT',
  7029. nextDay: '[Amanhã às] LT',
  7030. nextWeek: 'dddd [às] LT',
  7031. lastDay: '[Ontem às] LT',
  7032. lastWeek: function () {
  7033. return (this.day() === 0 || this.day() === 6) ?
  7034. '[Último] dddd [às] LT' : // Saturday + Sunday
  7035. '[Última] dddd [às] LT'; // Monday - Friday
  7036. },
  7037. sameElse: 'L'
  7038. },
  7039. relativeTime : {
  7040. future : 'em %s',
  7041. past : '%s atrás',
  7042. s : 'segundos',
  7043. m : 'um minuto',
  7044. mm : '%d minutos',
  7045. h : 'uma hora',
  7046. hh : '%d horas',
  7047. d : 'um dia',
  7048. dd : '%d dias',
  7049. M : 'um mês',
  7050. MM : '%d meses',
  7051. y : 'um ano',
  7052. yy : '%d anos'
  7053. },
  7054. ordinalParse: /\d{1,2}º/,
  7055. ordinal : '%dº'
  7056. });
  7057. }));
  7058. // moment.js locale configuration
  7059. // locale : portuguese (pt)
  7060. // author : Jefferson : https://github.com/jalex79
  7061. (function (factory) {
  7062. factory(moment);
  7063. }(function (moment) {
  7064. return moment.defineLocale('pt', {
  7065. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  7066. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  7067. weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
  7068. weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
  7069. weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
  7070. longDateFormat : {
  7071. LT : 'HH:mm',
  7072. LTS : 'LT:ss',
  7073. L : 'DD/MM/YYYY',
  7074. LL : 'D [de] MMMM [de] YYYY',
  7075. LLL : 'D [de] MMMM [de] YYYY LT',
  7076. LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
  7077. },
  7078. calendar : {
  7079. sameDay: '[Hoje às] LT',
  7080. nextDay: '[Amanhã às] LT',
  7081. nextWeek: 'dddd [às] LT',
  7082. lastDay: '[Ontem às] LT',
  7083. lastWeek: function () {
  7084. return (this.day() === 0 || this.day() === 6) ?
  7085. '[Último] dddd [às] LT' : // Saturday + Sunday
  7086. '[Última] dddd [às] LT'; // Monday - Friday
  7087. },
  7088. sameElse: 'L'
  7089. },
  7090. relativeTime : {
  7091. future : 'em %s',
  7092. past : 'há %s',
  7093. s : 'segundos',
  7094. m : 'um minuto',
  7095. mm : '%d minutos',
  7096. h : 'uma hora',
  7097. hh : '%d horas',
  7098. d : 'um dia',
  7099. dd : '%d dias',
  7100. M : 'um mês',
  7101. MM : '%d meses',
  7102. y : 'um ano',
  7103. yy : '%d anos'
  7104. },
  7105. ordinalParse: /\d{1,2}º/,
  7106. ordinal : '%dº',
  7107. week : {
  7108. dow : 1, // Monday is the first day of the week.
  7109. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7110. }
  7111. });
  7112. }));
  7113. // moment.js locale configuration
  7114. // locale : romanian (ro)
  7115. // author : Vlad Gurdiga : https://github.com/gurdiga
  7116. // author : Valentin Agachi : https://github.com/avaly
  7117. (function (factory) {
  7118. factory(moment);
  7119. }(function (moment) {
  7120. function relativeTimeWithPlural(number, withoutSuffix, key) {
  7121. var format = {
  7122. 'mm': 'minute',
  7123. 'hh': 'ore',
  7124. 'dd': 'zile',
  7125. 'MM': 'luni',
  7126. 'yy': 'ani'
  7127. },
  7128. separator = ' ';
  7129. if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
  7130. separator = ' de ';
  7131. }
  7132. return number + separator + format[key];
  7133. }
  7134. return moment.defineLocale('ro', {
  7135. months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
  7136. monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
  7137. weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
  7138. weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
  7139. weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
  7140. longDateFormat : {
  7141. LT : 'H:mm',
  7142. LTS : 'LT:ss',
  7143. L : 'DD.MM.YYYY',
  7144. LL : 'D MMMM YYYY',
  7145. LLL : 'D MMMM YYYY H:mm',
  7146. LLLL : 'dddd, D MMMM YYYY H:mm'
  7147. },
  7148. calendar : {
  7149. sameDay: '[azi la] LT',
  7150. nextDay: '[mâine la] LT',
  7151. nextWeek: 'dddd [la] LT',
  7152. lastDay: '[ieri la] LT',
  7153. lastWeek: '[fosta] dddd [la] LT',
  7154. sameElse: 'L'
  7155. },
  7156. relativeTime : {
  7157. future : 'peste %s',
  7158. past : '%s în urmă',
  7159. s : 'câteva secunde',
  7160. m : 'un minut',
  7161. mm : relativeTimeWithPlural,
  7162. h : 'o oră',
  7163. hh : relativeTimeWithPlural,
  7164. d : 'o zi',
  7165. dd : relativeTimeWithPlural,
  7166. M : 'o lună',
  7167. MM : relativeTimeWithPlural,
  7168. y : 'un an',
  7169. yy : relativeTimeWithPlural
  7170. },
  7171. week : {
  7172. dow : 1, // Monday is the first day of the week.
  7173. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7174. }
  7175. });
  7176. }));
  7177. // moment.js locale configuration
  7178. // locale : russian (ru)
  7179. // author : Viktorminator : https://github.com/Viktorminator
  7180. // Author : Menelion Elensúle : https://github.com/Oire
  7181. (function (factory) {
  7182. factory(moment);
  7183. }(function (moment) {
  7184. function plural(word, num) {
  7185. var forms = word.split('_');
  7186. 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]);
  7187. }
  7188. function relativeTimeWithPlural(number, withoutSuffix, key) {
  7189. var format = {
  7190. 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
  7191. 'hh': 'час_часа_часов',
  7192. 'dd': 'день_дня_дней',
  7193. 'MM': 'месяц_месяца_месяцев',
  7194. 'yy': 'год_года_лет'
  7195. };
  7196. if (key === 'm') {
  7197. return withoutSuffix ? 'минута' : 'минуту';
  7198. }
  7199. else {
  7200. return number + ' ' + plural(format[key], +number);
  7201. }
  7202. }
  7203. function monthsCaseReplace(m, format) {
  7204. var months = {
  7205. 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  7206. 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
  7207. },
  7208. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  7209. 'accusative' :
  7210. 'nominative';
  7211. return months[nounCase][m.month()];
  7212. }
  7213. function monthsShortCaseReplace(m, format) {
  7214. var monthsShort = {
  7215. 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
  7216. 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
  7217. },
  7218. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  7219. 'accusative' :
  7220. 'nominative';
  7221. return monthsShort[nounCase][m.month()];
  7222. }
  7223. function weekdaysCaseReplace(m, format) {
  7224. var weekdays = {
  7225. 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
  7226. 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
  7227. },
  7228. nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ?
  7229. 'accusative' :
  7230. 'nominative';
  7231. return weekdays[nounCase][m.day()];
  7232. }
  7233. return moment.defineLocale('ru', {
  7234. months : monthsCaseReplace,
  7235. monthsShort : monthsShortCaseReplace,
  7236. weekdays : weekdaysCaseReplace,
  7237. weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  7238. weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  7239. monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
  7240. longDateFormat : {
  7241. LT : 'HH:mm',
  7242. LTS : 'LT:ss',
  7243. L : 'DD.MM.YYYY',
  7244. LL : 'D MMMM YYYY г.',
  7245. LLL : 'D MMMM YYYY г., LT',
  7246. LLLL : 'dddd, D MMMM YYYY г., LT'
  7247. },
  7248. calendar : {
  7249. sameDay: '[Сегодня в] LT',
  7250. nextDay: '[Завтра в] LT',
  7251. lastDay: '[Вчера в] LT',
  7252. nextWeek: function () {
  7253. return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
  7254. },
  7255. lastWeek: function (now) {
  7256. if (now.week() !== this.week()) {
  7257. switch (this.day()) {
  7258. case 0:
  7259. return '[В прошлое] dddd [в] LT';
  7260. case 1:
  7261. case 2:
  7262. case 4:
  7263. return '[В прошлый] dddd [в] LT';
  7264. case 3:
  7265. case 5:
  7266. case 6:
  7267. return '[В прошлую] dddd [в] LT';
  7268. }
  7269. } else {
  7270. if (this.day() === 2) {
  7271. return '[Во] dddd [в] LT';
  7272. } else {
  7273. return '[В] dddd [в] LT';
  7274. }
  7275. }
  7276. },
  7277. sameElse: 'L'
  7278. },
  7279. relativeTime : {
  7280. future : 'через %s',
  7281. past : '%s назад',
  7282. s : 'несколько секунд',
  7283. m : relativeTimeWithPlural,
  7284. mm : relativeTimeWithPlural,
  7285. h : 'час',
  7286. hh : relativeTimeWithPlural,
  7287. d : 'день',
  7288. dd : relativeTimeWithPlural,
  7289. M : 'месяц',
  7290. MM : relativeTimeWithPlural,
  7291. y : 'год',
  7292. yy : relativeTimeWithPlural
  7293. },
  7294. meridiemParse: /ночи|утра|дня|вечера/i,
  7295. isPM : function (input) {
  7296. return /^(дня|вечера)$/.test(input);
  7297. },
  7298. meridiem : function (hour, minute, isLower) {
  7299. if (hour < 4) {
  7300. return 'ночи';
  7301. } else if (hour < 12) {
  7302. return 'утра';
  7303. } else if (hour < 17) {
  7304. return 'дня';
  7305. } else {
  7306. return 'вечера';
  7307. }
  7308. },
  7309. ordinalParse: /\d{1,2}-(й|го|я)/,
  7310. ordinal: function (number, period) {
  7311. switch (period) {
  7312. case 'M':
  7313. case 'd':
  7314. case 'DDD':
  7315. return number + '-й';
  7316. case 'D':
  7317. return number + '-го';
  7318. case 'w':
  7319. case 'W':
  7320. return number + '-я';
  7321. default:
  7322. return number;
  7323. }
  7324. },
  7325. week : {
  7326. dow : 1, // Monday is the first day of the week.
  7327. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7328. }
  7329. });
  7330. }));
  7331. // moment.js locale configuration
  7332. // locale : slovak (sk)
  7333. // author : Martin Minka : https://github.com/k2s
  7334. // based on work of petrbela : https://github.com/petrbela
  7335. (function (factory) {
  7336. factory(moment);
  7337. }(function (moment) {
  7338. var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
  7339. monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
  7340. function plural(n) {
  7341. return (n > 1) && (n < 5);
  7342. }
  7343. function translate(number, withoutSuffix, key, isFuture) {
  7344. var result = number + ' ';
  7345. switch (key) {
  7346. case 's': // a few seconds / in a few seconds / a few seconds ago
  7347. return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
  7348. case 'm': // a minute / in a minute / a minute ago
  7349. return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
  7350. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  7351. if (withoutSuffix || isFuture) {
  7352. return result + (plural(number) ? 'minúty' : 'minút');
  7353. } else {
  7354. return result + 'minútami';
  7355. }
  7356. break;
  7357. case 'h': // an hour / in an hour / an hour ago
  7358. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  7359. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  7360. if (withoutSuffix || isFuture) {
  7361. return result + (plural(number) ? 'hodiny' : 'hodín');
  7362. } else {
  7363. return result + 'hodinami';
  7364. }
  7365. break;
  7366. case 'd': // a day / in a day / a day ago
  7367. return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
  7368. case 'dd': // 9 days / in 9 days / 9 days ago
  7369. if (withoutSuffix || isFuture) {
  7370. return result + (plural(number) ? 'dni' : 'dní');
  7371. } else {
  7372. return result + 'dňami';
  7373. }
  7374. break;
  7375. case 'M': // a month / in a month / a month ago
  7376. return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
  7377. case 'MM': // 9 months / in 9 months / 9 months ago
  7378. if (withoutSuffix || isFuture) {
  7379. return result + (plural(number) ? 'mesiace' : 'mesiacov');
  7380. } else {
  7381. return result + 'mesiacmi';
  7382. }
  7383. break;
  7384. case 'y': // a year / in a year / a year ago
  7385. return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
  7386. case 'yy': // 9 years / in 9 years / 9 years ago
  7387. if (withoutSuffix || isFuture) {
  7388. return result + (plural(number) ? 'roky' : 'rokov');
  7389. } else {
  7390. return result + 'rokmi';
  7391. }
  7392. break;
  7393. }
  7394. }
  7395. return moment.defineLocale('sk', {
  7396. months : months,
  7397. monthsShort : monthsShort,
  7398. monthsParse : (function (months, monthsShort) {
  7399. var i, _monthsParse = [];
  7400. for (i = 0; i < 12; i++) {
  7401. // use custom parser to solve problem with July (červenec)
  7402. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  7403. }
  7404. return _monthsParse;
  7405. }(months, monthsShort)),
  7406. weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
  7407. weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
  7408. weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
  7409. longDateFormat : {
  7410. LT: 'H:mm',
  7411. LTS : 'LT:ss',
  7412. L : 'DD.MM.YYYY',
  7413. LL : 'D. MMMM YYYY',
  7414. LLL : 'D. MMMM YYYY LT',
  7415. LLLL : 'dddd D. MMMM YYYY LT'
  7416. },
  7417. calendar : {
  7418. sameDay: '[dnes o] LT',
  7419. nextDay: '[zajtra o] LT',
  7420. nextWeek: function () {
  7421. switch (this.day()) {
  7422. case 0:
  7423. return '[v nedeľu o] LT';
  7424. case 1:
  7425. case 2:
  7426. return '[v] dddd [o] LT';
  7427. case 3:
  7428. return '[v stredu o] LT';
  7429. case 4:
  7430. return '[vo štvrtok o] LT';
  7431. case 5:
  7432. return '[v piatok o] LT';
  7433. case 6:
  7434. return '[v sobotu o] LT';
  7435. }
  7436. },
  7437. lastDay: '[včera o] LT',
  7438. lastWeek: function () {
  7439. switch (this.day()) {
  7440. case 0:
  7441. return '[minulú nedeľu o] LT';
  7442. case 1:
  7443. case 2:
  7444. return '[minulý] dddd [o] LT';
  7445. case 3:
  7446. return '[minulú stredu o] LT';
  7447. case 4:
  7448. case 5:
  7449. return '[minulý] dddd [o] LT';
  7450. case 6:
  7451. return '[minulú sobotu o] LT';
  7452. }
  7453. },
  7454. sameElse: 'L'
  7455. },
  7456. relativeTime : {
  7457. future : 'za %s',
  7458. past : 'pred %s',
  7459. s : translate,
  7460. m : translate,
  7461. mm : translate,
  7462. h : translate,
  7463. hh : translate,
  7464. d : translate,
  7465. dd : translate,
  7466. M : translate,
  7467. MM : translate,
  7468. y : translate,
  7469. yy : translate
  7470. },
  7471. ordinalParse: /\d{1,2}\./,
  7472. ordinal : '%d.',
  7473. week : {
  7474. dow : 1, // Monday is the first day of the week.
  7475. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7476. }
  7477. });
  7478. }));
  7479. // moment.js locale configuration
  7480. // locale : slovenian (sl)
  7481. // author : Robert Sedovšek : https://github.com/sedovsek
  7482. (function (factory) {
  7483. factory(moment);
  7484. }(function (moment) {
  7485. function translate(number, withoutSuffix, key) {
  7486. var result = number + ' ';
  7487. switch (key) {
  7488. case 'm':
  7489. return withoutSuffix ? 'ena minuta' : 'eno minuto';
  7490. case 'mm':
  7491. if (number === 1) {
  7492. result += 'minuta';
  7493. } else if (number === 2) {
  7494. result += 'minuti';
  7495. } else if (number === 3 || number === 4) {
  7496. result += 'minute';
  7497. } else {
  7498. result += 'minut';
  7499. }
  7500. return result;
  7501. case 'h':
  7502. return withoutSuffix ? 'ena ura' : 'eno uro';
  7503. case 'hh':
  7504. if (number === 1) {
  7505. result += 'ura';
  7506. } else if (number === 2) {
  7507. result += 'uri';
  7508. } else if (number === 3 || number === 4) {
  7509. result += 'ure';
  7510. } else {
  7511. result += 'ur';
  7512. }
  7513. return result;
  7514. case 'dd':
  7515. if (number === 1) {
  7516. result += 'dan';
  7517. } else {
  7518. result += 'dni';
  7519. }
  7520. return result;
  7521. case 'MM':
  7522. if (number === 1) {
  7523. result += 'mesec';
  7524. } else if (number === 2) {
  7525. result += 'meseca';
  7526. } else if (number === 3 || number === 4) {
  7527. result += 'mesece';
  7528. } else {
  7529. result += 'mesecev';
  7530. }
  7531. return result;
  7532. case 'yy':
  7533. if (number === 1) {
  7534. result += 'leto';
  7535. } else if (number === 2) {
  7536. result += 'leti';
  7537. } else if (number === 3 || number === 4) {
  7538. result += 'leta';
  7539. } else {
  7540. result += 'let';
  7541. }
  7542. return result;
  7543. }
  7544. }
  7545. return moment.defineLocale('sl', {
  7546. months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
  7547. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
  7548. weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
  7549. weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
  7550. weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
  7551. longDateFormat : {
  7552. LT : 'H:mm',
  7553. LTS : 'LT:ss',
  7554. L : 'DD. MM. YYYY',
  7555. LL : 'D. MMMM YYYY',
  7556. LLL : 'D. MMMM YYYY LT',
  7557. LLLL : 'dddd, D. MMMM YYYY LT'
  7558. },
  7559. calendar : {
  7560. sameDay : '[danes ob] LT',
  7561. nextDay : '[jutri ob] LT',
  7562. nextWeek : function () {
  7563. switch (this.day()) {
  7564. case 0:
  7565. return '[v] [nedeljo] [ob] LT';
  7566. case 3:
  7567. return '[v] [sredo] [ob] LT';
  7568. case 6:
  7569. return '[v] [soboto] [ob] LT';
  7570. case 1:
  7571. case 2:
  7572. case 4:
  7573. case 5:
  7574. return '[v] dddd [ob] LT';
  7575. }
  7576. },
  7577. lastDay : '[včeraj ob] LT',
  7578. lastWeek : function () {
  7579. switch (this.day()) {
  7580. case 0:
  7581. case 3:
  7582. case 6:
  7583. return '[prejšnja] dddd [ob] LT';
  7584. case 1:
  7585. case 2:
  7586. case 4:
  7587. case 5:
  7588. return '[prejšnji] dddd [ob] LT';
  7589. }
  7590. },
  7591. sameElse : 'L'
  7592. },
  7593. relativeTime : {
  7594. future : 'čez %s',
  7595. past : '%s nazaj',
  7596. s : 'nekaj sekund',
  7597. m : translate,
  7598. mm : translate,
  7599. h : translate,
  7600. hh : translate,
  7601. d : 'en dan',
  7602. dd : translate,
  7603. M : 'en mesec',
  7604. MM : translate,
  7605. y : 'eno leto',
  7606. yy : translate
  7607. },
  7608. ordinalParse: /\d{1,2}\./,
  7609. ordinal : '%d.',
  7610. week : {
  7611. dow : 1, // Monday is the first day of the week.
  7612. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7613. }
  7614. });
  7615. }));
  7616. // moment.js locale configuration
  7617. // locale : Albanian (sq)
  7618. // author : Flakërim Ismani : https://github.com/flakerimi
  7619. // author: Menelion Elensúle: https://github.com/Oire (tests)
  7620. // author : Oerd Cukalla : https://github.com/oerd (fixes)
  7621. (function (factory) {
  7622. factory(moment);
  7623. }(function (moment) {
  7624. return moment.defineLocale('sq', {
  7625. months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
  7626. monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
  7627. weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
  7628. weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
  7629. weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
  7630. meridiem : function (hours, minutes, isLower) {
  7631. return hours < 12 ? 'PD' : 'MD';
  7632. },
  7633. longDateFormat : {
  7634. LT : 'HH:mm',
  7635. LTS : 'LT:ss',
  7636. L : 'DD/MM/YYYY',
  7637. LL : 'D MMMM YYYY',
  7638. LLL : 'D MMMM YYYY LT',
  7639. LLLL : 'dddd, D MMMM YYYY LT'
  7640. },
  7641. calendar : {
  7642. sameDay : '[Sot në] LT',
  7643. nextDay : '[Nesër në] LT',
  7644. nextWeek : 'dddd [në] LT',
  7645. lastDay : '[Dje në] LT',
  7646. lastWeek : 'dddd [e kaluar në] LT',
  7647. sameElse : 'L'
  7648. },
  7649. relativeTime : {
  7650. future : 'në %s',
  7651. past : '%s më parë',
  7652. s : 'disa sekonda',
  7653. m : 'një minutë',
  7654. mm : '%d minuta',
  7655. h : 'një orë',
  7656. hh : '%d orë',
  7657. d : 'një ditë',
  7658. dd : '%d ditë',
  7659. M : 'një muaj',
  7660. MM : '%d muaj',
  7661. y : 'një vit',
  7662. yy : '%d vite'
  7663. },
  7664. ordinalParse: /\d{1,2}\./,
  7665. ordinal : '%d.',
  7666. week : {
  7667. dow : 1, // Monday is the first day of the week.
  7668. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7669. }
  7670. });
  7671. }));
  7672. // moment.js locale configuration
  7673. // locale : Serbian-cyrillic (sr-cyrl)
  7674. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  7675. (function (factory) {
  7676. factory(moment);
  7677. }(function (moment) {
  7678. var translator = {
  7679. words: { //Different grammatical cases
  7680. m: ['један минут', 'једне минуте'],
  7681. mm: ['минут', 'минуте', 'минута'],
  7682. h: ['један сат', 'једног сата'],
  7683. hh: ['сат', 'сата', 'сати'],
  7684. dd: ['дан', 'дана', 'дана'],
  7685. MM: ['месец', 'месеца', 'месеци'],
  7686. yy: ['година', 'године', 'година']
  7687. },
  7688. correctGrammaticalCase: function (number, wordKey) {
  7689. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  7690. },
  7691. translate: function (number, withoutSuffix, key) {
  7692. var wordKey = translator.words[key];
  7693. if (key.length === 1) {
  7694. return withoutSuffix ? wordKey[0] : wordKey[1];
  7695. } else {
  7696. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  7697. }
  7698. }
  7699. };
  7700. return moment.defineLocale('sr-cyrl', {
  7701. months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
  7702. monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
  7703. weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
  7704. weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
  7705. weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
  7706. longDateFormat: {
  7707. LT: 'H:mm',
  7708. LTS : 'LT:ss',
  7709. L: 'DD. MM. YYYY',
  7710. LL: 'D. MMMM YYYY',
  7711. LLL: 'D. MMMM YYYY LT',
  7712. LLLL: 'dddd, D. MMMM YYYY LT'
  7713. },
  7714. calendar: {
  7715. sameDay: '[данас у] LT',
  7716. nextDay: '[сутра у] LT',
  7717. nextWeek: function () {
  7718. switch (this.day()) {
  7719. case 0:
  7720. return '[у] [недељу] [у] LT';
  7721. case 3:
  7722. return '[у] [среду] [у] LT';
  7723. case 6:
  7724. return '[у] [суботу] [у] LT';
  7725. case 1:
  7726. case 2:
  7727. case 4:
  7728. case 5:
  7729. return '[у] dddd [у] LT';
  7730. }
  7731. },
  7732. lastDay : '[јуче у] LT',
  7733. lastWeek : function () {
  7734. var lastWeekDays = [
  7735. '[прошле] [недеље] [у] LT',
  7736. '[прошлог] [понедељка] [у] LT',
  7737. '[прошлог] [уторка] [у] LT',
  7738. '[прошле] [среде] [у] LT',
  7739. '[прошлог] [четвртка] [у] LT',
  7740. '[прошлог] [петка] [у] LT',
  7741. '[прошле] [суботе] [у] LT'
  7742. ];
  7743. return lastWeekDays[this.day()];
  7744. },
  7745. sameElse : 'L'
  7746. },
  7747. relativeTime : {
  7748. future : 'за %s',
  7749. past : 'пре %s',
  7750. s : 'неколико секунди',
  7751. m : translator.translate,
  7752. mm : translator.translate,
  7753. h : translator.translate,
  7754. hh : translator.translate,
  7755. d : 'дан',
  7756. dd : translator.translate,
  7757. M : 'месец',
  7758. MM : translator.translate,
  7759. y : 'годину',
  7760. yy : translator.translate
  7761. },
  7762. ordinalParse: /\d{1,2}\./,
  7763. ordinal : '%d.',
  7764. week : {
  7765. dow : 1, // Monday is the first day of the week.
  7766. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7767. }
  7768. });
  7769. }));
  7770. // moment.js locale configuration
  7771. // locale : Serbian-latin (sr)
  7772. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  7773. (function (factory) {
  7774. factory(moment);
  7775. }(function (moment) {
  7776. var translator = {
  7777. words: { //Different grammatical cases
  7778. m: ['jedan minut', 'jedne minute'],
  7779. mm: ['minut', 'minute', 'minuta'],
  7780. h: ['jedan sat', 'jednog sata'],
  7781. hh: ['sat', 'sata', 'sati'],
  7782. dd: ['dan', 'dana', 'dana'],
  7783. MM: ['mesec', 'meseca', 'meseci'],
  7784. yy: ['godina', 'godine', 'godina']
  7785. },
  7786. correctGrammaticalCase: function (number, wordKey) {
  7787. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  7788. },
  7789. translate: function (number, withoutSuffix, key) {
  7790. var wordKey = translator.words[key];
  7791. if (key.length === 1) {
  7792. return withoutSuffix ? wordKey[0] : wordKey[1];
  7793. } else {
  7794. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  7795. }
  7796. }
  7797. };
  7798. return moment.defineLocale('sr', {
  7799. months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
  7800. monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
  7801. weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
  7802. weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
  7803. weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
  7804. longDateFormat: {
  7805. LT: 'H:mm',
  7806. LTS : 'LT:ss',
  7807. L: 'DD. MM. YYYY',
  7808. LL: 'D. MMMM YYYY',
  7809. LLL: 'D. MMMM YYYY LT',
  7810. LLLL: 'dddd, D. MMMM YYYY LT'
  7811. },
  7812. calendar: {
  7813. sameDay: '[danas u] LT',
  7814. nextDay: '[sutra u] LT',
  7815. nextWeek: function () {
  7816. switch (this.day()) {
  7817. case 0:
  7818. return '[u] [nedelju] [u] LT';
  7819. case 3:
  7820. return '[u] [sredu] [u] LT';
  7821. case 6:
  7822. return '[u] [subotu] [u] LT';
  7823. case 1:
  7824. case 2:
  7825. case 4:
  7826. case 5:
  7827. return '[u] dddd [u] LT';
  7828. }
  7829. },
  7830. lastDay : '[juče u] LT',
  7831. lastWeek : function () {
  7832. var lastWeekDays = [
  7833. '[prošle] [nedelje] [u] LT',
  7834. '[prošlog] [ponedeljka] [u] LT',
  7835. '[prošlog] [utorka] [u] LT',
  7836. '[prošle] [srede] [u] LT',
  7837. '[prošlog] [četvrtka] [u] LT',
  7838. '[prošlog] [petka] [u] LT',
  7839. '[prošle] [subote] [u] LT'
  7840. ];
  7841. return lastWeekDays[this.day()];
  7842. },
  7843. sameElse : 'L'
  7844. },
  7845. relativeTime : {
  7846. future : 'za %s',
  7847. past : 'pre %s',
  7848. s : 'nekoliko sekundi',
  7849. m : translator.translate,
  7850. mm : translator.translate,
  7851. h : translator.translate,
  7852. hh : translator.translate,
  7853. d : 'dan',
  7854. dd : translator.translate,
  7855. M : 'mesec',
  7856. MM : translator.translate,
  7857. y : 'godinu',
  7858. yy : translator.translate
  7859. },
  7860. ordinalParse: /\d{1,2}\./,
  7861. ordinal : '%d.',
  7862. week : {
  7863. dow : 1, // Monday is the first day of the week.
  7864. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7865. }
  7866. });
  7867. }));
  7868. // moment.js locale configuration
  7869. // locale : swedish (sv)
  7870. // author : Jens Alm : https://github.com/ulmus
  7871. (function (factory) {
  7872. factory(moment);
  7873. }(function (moment) {
  7874. return moment.defineLocale('sv', {
  7875. months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
  7876. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  7877. weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
  7878. weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
  7879. weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
  7880. longDateFormat : {
  7881. LT : 'HH:mm',
  7882. LTS : 'LT:ss',
  7883. L : 'YYYY-MM-DD',
  7884. LL : 'D MMMM YYYY',
  7885. LLL : 'D MMMM YYYY LT',
  7886. LLLL : 'dddd D MMMM YYYY LT'
  7887. },
  7888. calendar : {
  7889. sameDay: '[Idag] LT',
  7890. nextDay: '[Imorgon] LT',
  7891. lastDay: '[Igår] LT',
  7892. nextWeek: 'dddd LT',
  7893. lastWeek: '[Förra] dddd[en] LT',
  7894. sameElse: 'L'
  7895. },
  7896. relativeTime : {
  7897. future : 'om %s',
  7898. past : 'för %s sedan',
  7899. s : 'några sekunder',
  7900. m : 'en minut',
  7901. mm : '%d minuter',
  7902. h : 'en timme',
  7903. hh : '%d timmar',
  7904. d : 'en dag',
  7905. dd : '%d dagar',
  7906. M : 'en månad',
  7907. MM : '%d månader',
  7908. y : 'ett år',
  7909. yy : '%d år'
  7910. },
  7911. ordinalParse: /\d{1,2}(e|a)/,
  7912. ordinal : function (number) {
  7913. var b = number % 10,
  7914. output = (~~(number % 100 / 10) === 1) ? 'e' :
  7915. (b === 1) ? 'a' :
  7916. (b === 2) ? 'a' :
  7917. (b === 3) ? 'e' : 'e';
  7918. return number + output;
  7919. },
  7920. week : {
  7921. dow : 1, // Monday is the first day of the week.
  7922. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7923. }
  7924. });
  7925. }));
  7926. // moment.js locale configuration
  7927. // locale : tamil (ta)
  7928. // author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
  7929. (function (factory) {
  7930. factory(moment);
  7931. }(function (moment) {
  7932. /*var symbolMap = {
  7933. '1': '௧',
  7934. '2': '௨',
  7935. '3': '௩',
  7936. '4': '௪',
  7937. '5': '௫',
  7938. '6': '௬',
  7939. '7': '௭',
  7940. '8': '௮',
  7941. '9': '௯',
  7942. '0': '௦'
  7943. },
  7944. numberMap = {
  7945. '௧': '1',
  7946. '௨': '2',
  7947. '௩': '3',
  7948. '௪': '4',
  7949. '௫': '5',
  7950. '௬': '6',
  7951. '௭': '7',
  7952. '௮': '8',
  7953. '௯': '9',
  7954. '௦': '0'
  7955. }; */
  7956. return moment.defineLocale('ta', {
  7957. months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  7958. monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  7959. weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
  7960. weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
  7961. weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
  7962. longDateFormat : {
  7963. LT : 'HH:mm',
  7964. LTS : 'LT:ss',
  7965. L : 'DD/MM/YYYY',
  7966. LL : 'D MMMM YYYY',
  7967. LLL : 'D MMMM YYYY, LT',
  7968. LLLL : 'dddd, D MMMM YYYY, LT'
  7969. },
  7970. calendar : {
  7971. sameDay : '[இன்று] LT',
  7972. nextDay : '[நாளை] LT',
  7973. nextWeek : 'dddd, LT',
  7974. lastDay : '[நேற்று] LT',
  7975. lastWeek : '[கடந்த வாரம்] dddd, LT',
  7976. sameElse : 'L'
  7977. },
  7978. relativeTime : {
  7979. future : '%s இல்',
  7980. past : '%s முன்',
  7981. s : 'ஒரு சில விநாடிகள்',
  7982. m : 'ஒரு நிமிடம்',
  7983. mm : '%d நிமிடங்கள்',
  7984. h : 'ஒரு மணி நேரம்',
  7985. hh : '%d மணி நேரம்',
  7986. d : 'ஒரு நாள்',
  7987. dd : '%d நாட்கள்',
  7988. M : 'ஒரு மாதம்',
  7989. MM : '%d மாதங்கள்',
  7990. y : 'ஒரு வருடம்',
  7991. yy : '%d ஆண்டுகள்'
  7992. },
  7993. /* preparse: function (string) {
  7994. return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
  7995. return numberMap[match];
  7996. });
  7997. },
  7998. postformat: function (string) {
  7999. return string.replace(/\d/g, function (match) {
  8000. return symbolMap[match];
  8001. });
  8002. },*/
  8003. ordinalParse: /\d{1,2}வது/,
  8004. ordinal : function (number) {
  8005. return number + 'வது';
  8006. },
  8007. // refer http://ta.wikipedia.org/s/1er1
  8008. meridiem : function (hour, minute, isLower) {
  8009. if (hour >= 6 && hour <= 10) {
  8010. return ' காலை';
  8011. } else if (hour >= 10 && hour <= 14) {
  8012. return ' நண்பகல்';
  8013. } else if (hour >= 14 && hour <= 18) {
  8014. return ' எற்பாடு';
  8015. } else if (hour >= 18 && hour <= 20) {
  8016. return ' மாலை';
  8017. } else if (hour >= 20 && hour <= 24) {
  8018. return ' இரவு';
  8019. } else if (hour >= 0 && hour <= 6) {
  8020. return ' வைகறை';
  8021. }
  8022. },
  8023. week : {
  8024. dow : 0, // Sunday is the first day of the week.
  8025. doy : 6 // The week that contains Jan 1st is the first week of the year.
  8026. }
  8027. });
  8028. }));
  8029. // moment.js locale configuration
  8030. // locale : thai (th)
  8031. // author : Kridsada Thanabulpong : https://github.com/sirn
  8032. (function (factory) {
  8033. factory(moment);
  8034. }(function (moment) {
  8035. return moment.defineLocale('th', {
  8036. months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
  8037. monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
  8038. weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
  8039. weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
  8040. weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
  8041. longDateFormat : {
  8042. LT : 'H นาฬิกา m นาที',
  8043. LTS : 'LT s วินาที',
  8044. L : 'YYYY/MM/DD',
  8045. LL : 'D MMMM YYYY',
  8046. LLL : 'D MMMM YYYY เวลา LT',
  8047. LLLL : 'วันddddที่ D MMMM YYYY เวลา LT'
  8048. },
  8049. meridiem : function (hour, minute, isLower) {
  8050. if (hour < 12) {
  8051. return 'ก่อนเที่ยง';
  8052. } else {
  8053. return 'หลังเที่ยง';
  8054. }
  8055. },
  8056. calendar : {
  8057. sameDay : '[วันนี้ เวลา] LT',
  8058. nextDay : '[พรุ่งนี้ เวลา] LT',
  8059. nextWeek : 'dddd[หน้า เวลา] LT',
  8060. lastDay : '[เมื่อวานนี้ เวลา] LT',
  8061. lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
  8062. sameElse : 'L'
  8063. },
  8064. relativeTime : {
  8065. future : 'อีก %s',
  8066. past : '%sที่แล้ว',
  8067. s : 'ไม่กี่วินาที',
  8068. m : '1 นาที',
  8069. mm : '%d นาที',
  8070. h : '1 ชั่วโมง',
  8071. hh : '%d ชั่วโมง',
  8072. d : '1 วัน',
  8073. dd : '%d วัน',
  8074. M : '1 เดือน',
  8075. MM : '%d เดือน',
  8076. y : '1 ปี',
  8077. yy : '%d ปี'
  8078. }
  8079. });
  8080. }));
  8081. // moment.js locale configuration
  8082. // locale : Tagalog/Filipino (tl-ph)
  8083. // author : Dan Hagman
  8084. (function (factory) {
  8085. factory(moment);
  8086. }(function (moment) {
  8087. return moment.defineLocale('tl-ph', {
  8088. months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
  8089. monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
  8090. weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
  8091. weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
  8092. weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
  8093. longDateFormat : {
  8094. LT : 'HH:mm',
  8095. LTS : 'LT:ss',
  8096. L : 'MM/D/YYYY',
  8097. LL : 'MMMM D, YYYY',
  8098. LLL : 'MMMM D, YYYY LT',
  8099. LLLL : 'dddd, MMMM DD, YYYY LT'
  8100. },
  8101. calendar : {
  8102. sameDay: '[Ngayon sa] LT',
  8103. nextDay: '[Bukas sa] LT',
  8104. nextWeek: 'dddd [sa] LT',
  8105. lastDay: '[Kahapon sa] LT',
  8106. lastWeek: 'dddd [huling linggo] LT',
  8107. sameElse: 'L'
  8108. },
  8109. relativeTime : {
  8110. future : 'sa loob ng %s',
  8111. past : '%s ang nakalipas',
  8112. s : 'ilang segundo',
  8113. m : 'isang minuto',
  8114. mm : '%d minuto',
  8115. h : 'isang oras',
  8116. hh : '%d oras',
  8117. d : 'isang araw',
  8118. dd : '%d araw',
  8119. M : 'isang buwan',
  8120. MM : '%d buwan',
  8121. y : 'isang taon',
  8122. yy : '%d taon'
  8123. },
  8124. ordinalParse: /\d{1,2}/,
  8125. ordinal : function (number) {
  8126. return number;
  8127. },
  8128. week : {
  8129. dow : 1, // Monday is the first day of the week.
  8130. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8131. }
  8132. });
  8133. }));
  8134. // moment.js locale configuration
  8135. // locale : turkish (tr)
  8136. // authors : Erhan Gundogan : https://github.com/erhangundogan,
  8137. // Burak Yiğit Kaya: https://github.com/BYK
  8138. (function (factory) {
  8139. factory(moment);
  8140. }(function (moment) {
  8141. var suffixes = {
  8142. 1: '\'inci',
  8143. 5: '\'inci',
  8144. 8: '\'inci',
  8145. 70: '\'inci',
  8146. 80: '\'inci',
  8147. 2: '\'nci',
  8148. 7: '\'nci',
  8149. 20: '\'nci',
  8150. 50: '\'nci',
  8151. 3: '\'üncü',
  8152. 4: '\'üncü',
  8153. 100: '\'üncü',
  8154. 6: '\'ncı',
  8155. 9: '\'uncu',
  8156. 10: '\'uncu',
  8157. 30: '\'uncu',
  8158. 60: '\'ıncı',
  8159. 90: '\'ıncı'
  8160. };
  8161. return moment.defineLocale('tr', {
  8162. months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
  8163. monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
  8164. weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
  8165. weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
  8166. weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
  8167. longDateFormat : {
  8168. LT : 'HH:mm',
  8169. LTS : 'LT:ss',
  8170. L : 'DD.MM.YYYY',
  8171. LL : 'D MMMM YYYY',
  8172. LLL : 'D MMMM YYYY LT',
  8173. LLLL : 'dddd, D MMMM YYYY LT'
  8174. },
  8175. calendar : {
  8176. sameDay : '[bugün saat] LT',
  8177. nextDay : '[yarın saat] LT',
  8178. nextWeek : '[haftaya] dddd [saat] LT',
  8179. lastDay : '[dün] LT',
  8180. lastWeek : '[geçen hafta] dddd [saat] LT',
  8181. sameElse : 'L'
  8182. },
  8183. relativeTime : {
  8184. future : '%s sonra',
  8185. past : '%s önce',
  8186. s : 'birkaç saniye',
  8187. m : 'bir dakika',
  8188. mm : '%d dakika',
  8189. h : 'bir saat',
  8190. hh : '%d saat',
  8191. d : 'bir gün',
  8192. dd : '%d gün',
  8193. M : 'bir ay',
  8194. MM : '%d ay',
  8195. y : 'bir yıl',
  8196. yy : '%d yıl'
  8197. },
  8198. ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
  8199. ordinal : function (number) {
  8200. if (number === 0) { // special case for zero
  8201. return number + '\'ıncı';
  8202. }
  8203. var a = number % 10,
  8204. b = number % 100 - a,
  8205. c = number >= 100 ? 100 : null;
  8206. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  8207. },
  8208. week : {
  8209. dow : 1, // Monday is the first day of the week.
  8210. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8211. }
  8212. });
  8213. }));
  8214. // moment.js locale configuration
  8215. // locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
  8216. // author : Abdel Said : https://github.com/abdelsaid
  8217. (function (factory) {
  8218. factory(moment);
  8219. }(function (moment) {
  8220. return moment.defineLocale('tzm-latn', {
  8221. months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  8222. monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  8223. weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8224. weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8225. weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8226. longDateFormat : {
  8227. LT : 'HH:mm',
  8228. LTS : 'LT:ss',
  8229. L : 'DD/MM/YYYY',
  8230. LL : 'D MMMM YYYY',
  8231. LLL : 'D MMMM YYYY LT',
  8232. LLLL : 'dddd D MMMM YYYY LT'
  8233. },
  8234. calendar : {
  8235. sameDay: '[asdkh g] LT',
  8236. nextDay: '[aska g] LT',
  8237. nextWeek: 'dddd [g] LT',
  8238. lastDay: '[assant g] LT',
  8239. lastWeek: 'dddd [g] LT',
  8240. sameElse: 'L'
  8241. },
  8242. relativeTime : {
  8243. future : 'dadkh s yan %s',
  8244. past : 'yan %s',
  8245. s : 'imik',
  8246. m : 'minuḍ',
  8247. mm : '%d minuḍ',
  8248. h : 'saɛa',
  8249. hh : '%d tassaɛin',
  8250. d : 'ass',
  8251. dd : '%d ossan',
  8252. M : 'ayowr',
  8253. MM : '%d iyyirn',
  8254. y : 'asgas',
  8255. yy : '%d isgasn'
  8256. },
  8257. week : {
  8258. dow : 6, // Saturday is the first day of the week.
  8259. doy : 12 // The week that contains Jan 1st is the first week of the year.
  8260. }
  8261. });
  8262. }));
  8263. // moment.js locale configuration
  8264. // locale : Morocco Central Atlas Tamaziɣt (tzm)
  8265. // author : Abdel Said : https://github.com/abdelsaid
  8266. (function (factory) {
  8267. factory(moment);
  8268. }(function (moment) {
  8269. return moment.defineLocale('tzm', {
  8270. months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  8271. monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  8272. weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8273. weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8274. weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8275. longDateFormat : {
  8276. LT : 'HH:mm',
  8277. LTS: 'LT:ss',
  8278. L : 'DD/MM/YYYY',
  8279. LL : 'D MMMM YYYY',
  8280. LLL : 'D MMMM YYYY LT',
  8281. LLLL : 'dddd D MMMM YYYY LT'
  8282. },
  8283. calendar : {
  8284. sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
  8285. nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
  8286. nextWeek: 'dddd [ⴴ] LT',
  8287. lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
  8288. lastWeek: 'dddd [ⴴ] LT',
  8289. sameElse: 'L'
  8290. },
  8291. relativeTime : {
  8292. future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
  8293. past : 'ⵢⴰⵏ %s',
  8294. s : 'ⵉⵎⵉⴽ',
  8295. m : 'ⵎⵉⵏⵓⴺ',
  8296. mm : '%d ⵎⵉⵏⵓⴺ',
  8297. h : 'ⵙⴰⵄⴰ',
  8298. hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
  8299. d : 'ⴰⵙⵙ',
  8300. dd : '%d oⵙⵙⴰⵏ',
  8301. M : 'ⴰⵢoⵓⵔ',
  8302. MM : '%d ⵉⵢⵢⵉⵔⵏ',
  8303. y : 'ⴰⵙⴳⴰⵙ',
  8304. yy : '%d ⵉⵙⴳⴰⵙⵏ'
  8305. },
  8306. week : {
  8307. dow : 6, // Saturday is the first day of the week.
  8308. doy : 12 // The week that contains Jan 1st is the first week of the year.
  8309. }
  8310. });
  8311. }));
  8312. // moment.js locale configuration
  8313. // locale : ukrainian (uk)
  8314. // author : zemlanin : https://github.com/zemlanin
  8315. // Author : Menelion Elensúle : https://github.com/Oire
  8316. (function (factory) {
  8317. factory(moment);
  8318. }(function (moment) {
  8319. function plural(word, num) {
  8320. var forms = word.split('_');
  8321. 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]);
  8322. }
  8323. function relativeTimeWithPlural(number, withoutSuffix, key) {
  8324. var format = {
  8325. 'mm': 'хвилина_хвилини_хвилин',
  8326. 'hh': 'година_години_годин',
  8327. 'dd': 'день_дні_днів',
  8328. 'MM': 'місяць_місяці_місяців',
  8329. 'yy': 'рік_роки_років'
  8330. };
  8331. if (key === 'm') {
  8332. return withoutSuffix ? 'хвилина' : 'хвилину';
  8333. }
  8334. else if (key === 'h') {
  8335. return withoutSuffix ? 'година' : 'годину';
  8336. }
  8337. else {
  8338. return number + ' ' + plural(format[key], +number);
  8339. }
  8340. }
  8341. function monthsCaseReplace(m, format) {
  8342. var months = {
  8343. 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
  8344. 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
  8345. },
  8346. nounCase = (/D[oD]? *MMMM?/).test(format) ?
  8347. 'accusative' :
  8348. 'nominative';
  8349. return months[nounCase][m.month()];
  8350. }
  8351. function weekdaysCaseReplace(m, format) {
  8352. var weekdays = {
  8353. 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
  8354. 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
  8355. 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
  8356. },
  8357. nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
  8358. 'accusative' :
  8359. ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
  8360. 'genitive' :
  8361. 'nominative');
  8362. return weekdays[nounCase][m.day()];
  8363. }
  8364. function processHoursFunction(str) {
  8365. return function () {
  8366. return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
  8367. };
  8368. }
  8369. return moment.defineLocale('uk', {
  8370. months : monthsCaseReplace,
  8371. monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
  8372. weekdays : weekdaysCaseReplace,
  8373. weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  8374. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  8375. longDateFormat : {
  8376. LT : 'HH:mm',
  8377. LTS : 'LT:ss',
  8378. L : 'DD.MM.YYYY',
  8379. LL : 'D MMMM YYYY р.',
  8380. LLL : 'D MMMM YYYY р., LT',
  8381. LLLL : 'dddd, D MMMM YYYY р., LT'
  8382. },
  8383. calendar : {
  8384. sameDay: processHoursFunction('[Сьогодні '),
  8385. nextDay: processHoursFunction('[Завтра '),
  8386. lastDay: processHoursFunction('[Вчора '),
  8387. nextWeek: processHoursFunction('[У] dddd ['),
  8388. lastWeek: function () {
  8389. switch (this.day()) {
  8390. case 0:
  8391. case 3:
  8392. case 5:
  8393. case 6:
  8394. return processHoursFunction('[Минулої] dddd [').call(this);
  8395. case 1:
  8396. case 2:
  8397. case 4:
  8398. return processHoursFunction('[Минулого] dddd [').call(this);
  8399. }
  8400. },
  8401. sameElse: 'L'
  8402. },
  8403. relativeTime : {
  8404. future : 'за %s',
  8405. past : '%s тому',
  8406. s : 'декілька секунд',
  8407. m : relativeTimeWithPlural,
  8408. mm : relativeTimeWithPlural,
  8409. h : 'годину',
  8410. hh : relativeTimeWithPlural,
  8411. d : 'день',
  8412. dd : relativeTimeWithPlural,
  8413. M : 'місяць',
  8414. MM : relativeTimeWithPlural,
  8415. y : 'рік',
  8416. yy : relativeTimeWithPlural
  8417. },
  8418. // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
  8419. meridiem : function (hour, minute, isLower) {
  8420. if (hour < 4) {
  8421. return 'ночі';
  8422. } else if (hour < 12) {
  8423. return 'ранку';
  8424. } else if (hour < 17) {
  8425. return 'дня';
  8426. } else {
  8427. return 'вечора';
  8428. }
  8429. },
  8430. ordinalParse: /\d{1,2}-(й|го)/,
  8431. ordinal: function (number, period) {
  8432. switch (period) {
  8433. case 'M':
  8434. case 'd':
  8435. case 'DDD':
  8436. case 'w':
  8437. case 'W':
  8438. return number + '-й';
  8439. case 'D':
  8440. return number + '-го';
  8441. default:
  8442. return number;
  8443. }
  8444. },
  8445. week : {
  8446. dow : 1, // Monday is the first day of the week.
  8447. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8448. }
  8449. });
  8450. }));
  8451. // moment.js locale configuration
  8452. // locale : uzbek (uz)
  8453. // author : Sardor Muminov : https://github.com/muminoff
  8454. (function (factory) {
  8455. factory(moment);
  8456. }(function (moment) {
  8457. return moment.defineLocale('uz', {
  8458. months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  8459. monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
  8460. weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
  8461. weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
  8462. weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
  8463. longDateFormat : {
  8464. LT : 'HH:mm',
  8465. LTS : 'LT:ss',
  8466. L : 'DD/MM/YYYY',
  8467. LL : 'D MMMM YYYY',
  8468. LLL : 'D MMMM YYYY LT',
  8469. LLLL : 'D MMMM YYYY, dddd LT'
  8470. },
  8471. calendar : {
  8472. sameDay : '[Бугун соат] LT [да]',
  8473. nextDay : '[Эртага] LT [да]',
  8474. nextWeek : 'dddd [куни соат] LT [да]',
  8475. lastDay : '[Кеча соат] LT [да]',
  8476. lastWeek : '[Утган] dddd [куни соат] LT [да]',
  8477. sameElse : 'L'
  8478. },
  8479. relativeTime : {
  8480. future : 'Якин %s ичида',
  8481. past : 'Бир неча %s олдин',
  8482. s : 'фурсат',
  8483. m : 'бир дакика',
  8484. mm : '%d дакика',
  8485. h : 'бир соат',
  8486. hh : '%d соат',
  8487. d : 'бир кун',
  8488. dd : '%d кун',
  8489. M : 'бир ой',
  8490. MM : '%d ой',
  8491. y : 'бир йил',
  8492. yy : '%d йил'
  8493. },
  8494. week : {
  8495. dow : 1, // Monday is the first day of the week.
  8496. doy : 7 // The week that contains Jan 4th is the first week of the year.
  8497. }
  8498. });
  8499. }));
  8500. // moment.js locale configuration
  8501. // locale : vietnamese (vi)
  8502. // author : Bang Nguyen : https://github.com/bangnk
  8503. (function (factory) {
  8504. factory(moment);
  8505. }(function (moment) {
  8506. return moment.defineLocale('vi', {
  8507. 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('_'),
  8508. monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
  8509. weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
  8510. weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  8511. weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  8512. longDateFormat : {
  8513. LT : 'HH:mm',
  8514. LTS : 'LT:ss',
  8515. L : 'DD/MM/YYYY',
  8516. LL : 'D MMMM [năm] YYYY',
  8517. LLL : 'D MMMM [năm] YYYY LT',
  8518. LLLL : 'dddd, D MMMM [năm] YYYY LT',
  8519. l : 'DD/M/YYYY',
  8520. ll : 'D MMM YYYY',
  8521. lll : 'D MMM YYYY LT',
  8522. llll : 'ddd, D MMM YYYY LT'
  8523. },
  8524. calendar : {
  8525. sameDay: '[Hôm nay lúc] LT',
  8526. nextDay: '[Ngày mai lúc] LT',
  8527. nextWeek: 'dddd [tuần tới lúc] LT',
  8528. lastDay: '[Hôm qua lúc] LT',
  8529. lastWeek: 'dddd [tuần rồi lúc] LT',
  8530. sameElse: 'L'
  8531. },
  8532. relativeTime : {
  8533. future : '%s tới',
  8534. past : '%s trước',
  8535. s : 'vài giây',
  8536. m : 'một phút',
  8537. mm : '%d phút',
  8538. h : 'một giờ',
  8539. hh : '%d giờ',
  8540. d : 'một ngày',
  8541. dd : '%d ngày',
  8542. M : 'một tháng',
  8543. MM : '%d tháng',
  8544. y : 'một năm',
  8545. yy : '%d năm'
  8546. },
  8547. ordinalParse: /\d{1,2}/,
  8548. ordinal : function (number) {
  8549. return number;
  8550. },
  8551. week : {
  8552. dow : 1, // Monday is the first day of the week.
  8553. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8554. }
  8555. });
  8556. }));
  8557. // moment.js locale configuration
  8558. // locale : chinese (zh-cn)
  8559. // author : suupic : https://github.com/suupic
  8560. // author : Zeno Zeng : https://github.com/zenozeng
  8561. (function (factory) {
  8562. factory(moment);
  8563. }(function (moment) {
  8564. return moment.defineLocale('zh-cn', {
  8565. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  8566. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  8567. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  8568. weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
  8569. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  8570. longDateFormat : {
  8571. LT : 'Ah点mm',
  8572. LTS : 'Ah点m分s秒',
  8573. L : 'YYYY-MM-DD',
  8574. LL : 'YYYY年MMMD日',
  8575. LLL : 'YYYY年MMMD日LT',
  8576. LLLL : 'YYYY年MMMD日ddddLT',
  8577. l : 'YYYY-MM-DD',
  8578. ll : 'YYYY年MMMD日',
  8579. lll : 'YYYY年MMMD日LT',
  8580. llll : 'YYYY年MMMD日ddddLT'
  8581. },
  8582. meridiem : function (hour, minute, isLower) {
  8583. var hm = hour * 100 + minute;
  8584. if (hm < 600) {
  8585. return '凌晨';
  8586. } else if (hm < 900) {
  8587. return '早上';
  8588. } else if (hm < 1130) {
  8589. return '上午';
  8590. } else if (hm < 1230) {
  8591. return '中午';
  8592. } else if (hm < 1800) {
  8593. return '下午';
  8594. } else {
  8595. return '晚上';
  8596. }
  8597. },
  8598. calendar : {
  8599. sameDay : function () {
  8600. return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
  8601. },
  8602. nextDay : function () {
  8603. return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
  8604. },
  8605. lastDay : function () {
  8606. return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
  8607. },
  8608. nextWeek : function () {
  8609. var startOfWeek, prefix;
  8610. startOfWeek = moment().startOf('week');
  8611. prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
  8612. return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
  8613. },
  8614. lastWeek : function () {
  8615. var startOfWeek, prefix;
  8616. startOfWeek = moment().startOf('week');
  8617. prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
  8618. return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
  8619. },
  8620. sameElse : 'LL'
  8621. },
  8622. ordinalParse: /\d{1,2}(日|月|周)/,
  8623. ordinal : function (number, period) {
  8624. switch (period) {
  8625. case 'd':
  8626. case 'D':
  8627. case 'DDD':
  8628. return number + '日';
  8629. case 'M':
  8630. return number + '月';
  8631. case 'w':
  8632. case 'W':
  8633. return number + '周';
  8634. default:
  8635. return number;
  8636. }
  8637. },
  8638. relativeTime : {
  8639. future : '%s内',
  8640. past : '%s前',
  8641. s : '几秒',
  8642. m : '1分钟',
  8643. mm : '%d分钟',
  8644. h : '1小时',
  8645. hh : '%d小时',
  8646. d : '1天',
  8647. dd : '%d天',
  8648. M : '1个月',
  8649. MM : '%d个月',
  8650. y : '1年',
  8651. yy : '%d年'
  8652. },
  8653. week : {
  8654. // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
  8655. dow : 1, // Monday is the first day of the week.
  8656. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8657. }
  8658. });
  8659. }));
  8660. // moment.js locale configuration
  8661. // locale : traditional chinese (zh-tw)
  8662. // author : Ben : https://github.com/ben-lin
  8663. (function (factory) {
  8664. factory(moment);
  8665. }(function (moment) {
  8666. return moment.defineLocale('zh-tw', {
  8667. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  8668. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  8669. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  8670. weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
  8671. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  8672. longDateFormat : {
  8673. LT : 'Ah點mm',
  8674. LTS : 'Ah點m分s秒',
  8675. L : 'YYYY年MMMD日',
  8676. LL : 'YYYY年MMMD日',
  8677. LLL : 'YYYY年MMMD日LT',
  8678. LLLL : 'YYYY年MMMD日ddddLT',
  8679. l : 'YYYY年MMMD日',
  8680. ll : 'YYYY年MMMD日',
  8681. lll : 'YYYY年MMMD日LT',
  8682. llll : 'YYYY年MMMD日ddddLT'
  8683. },
  8684. meridiem : function (hour, minute, isLower) {
  8685. var hm = hour * 100 + minute;
  8686. if (hm < 900) {
  8687. return '早上';
  8688. } else if (hm < 1130) {
  8689. return '上午';
  8690. } else if (hm < 1230) {
  8691. return '中午';
  8692. } else if (hm < 1800) {
  8693. return '下午';
  8694. } else {
  8695. return '晚上';
  8696. }
  8697. },
  8698. calendar : {
  8699. sameDay : '[今天]LT',
  8700. nextDay : '[明天]LT',
  8701. nextWeek : '[下]ddddLT',
  8702. lastDay : '[昨天]LT',
  8703. lastWeek : '[上]ddddLT',
  8704. sameElse : 'L'
  8705. },
  8706. ordinalParse: /\d{1,2}(日|月|週)/,
  8707. ordinal : function (number, period) {
  8708. switch (period) {
  8709. case 'd' :
  8710. case 'D' :
  8711. case 'DDD' :
  8712. return number + '日';
  8713. case 'M' :
  8714. return number + '月';
  8715. case 'w' :
  8716. case 'W' :
  8717. return number + '週';
  8718. default :
  8719. return number;
  8720. }
  8721. },
  8722. relativeTime : {
  8723. future : '%s內',
  8724. past : '%s前',
  8725. s : '幾秒',
  8726. m : '一分鐘',
  8727. mm : '%d分鐘',
  8728. h : '一小時',
  8729. hh : '%d小時',
  8730. d : '一天',
  8731. dd : '%d天',
  8732. M : '一個月',
  8733. MM : '%d個月',
  8734. y : '一年',
  8735. yy : '%d年'
  8736. }
  8737. });
  8738. }));
  8739. moment.locale('en');
  8740. /************************************
  8741. Exposing Moment
  8742. ************************************/
  8743. function makeGlobal(shouldDeprecate) {
  8744. /*global ender:false */
  8745. if (typeof ender !== 'undefined') {
  8746. return;
  8747. }
  8748. oldGlobalMoment = globalScope.moment;
  8749. if (shouldDeprecate) {
  8750. globalScope.moment = deprecate(
  8751. 'Accessing Moment through the global scope is ' +
  8752. 'deprecated, and will be removed in an upcoming ' +
  8753. 'release.',
  8754. moment);
  8755. } else {
  8756. globalScope.moment = moment;
  8757. }
  8758. }
  8759. // CommonJS module is defined
  8760. if (hasModule) {
  8761. module.exports = moment;
  8762. } else if (typeof define === 'function' && define.amd) {
  8763. define('moment', function (require, exports, module) {
  8764. if (module.config && module.config() && module.config().noGlobal === true) {
  8765. // release the global variable
  8766. globalScope.moment = oldGlobalMoment;
  8767. }
  8768. return moment;
  8769. });
  8770. makeGlobal(true);
  8771. } else {
  8772. makeGlobal();
  8773. }
  8774. }).call(this);