moment-with-locales.js 350 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793
  1. //! moment.js
  2. //! version : 2.9.0
  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.9.0',
  12. // the global-scope this is NOT the global object in Node.js
  13. globalScope = (typeof global !== 'undefined' && (typeof window === 'undefined' || window === global.window)) ? 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.utcOffset(),
  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.utcOffset(),
  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. updateInProgress = false;
  265. // Pick the first defined of two or three arguments. dfl comes from
  266. // default.
  267. function dfl(a, b, c) {
  268. switch (arguments.length) {
  269. case 2: return a != null ? a : b;
  270. case 3: return a != null ? a : b != null ? b : c;
  271. default: throw new Error('Implement me');
  272. }
  273. }
  274. function hasOwnProp(a, b) {
  275. return hasOwnProperty.call(a, b);
  276. }
  277. function defaultParsingFlags() {
  278. // We need to deep clone this object, and es5 standard is not very
  279. // helpful.
  280. return {
  281. empty : false,
  282. unusedTokens : [],
  283. unusedInput : [],
  284. overflow : -2,
  285. charsLeftOver : 0,
  286. nullInput : false,
  287. invalidMonth : null,
  288. invalidFormat : false,
  289. userInvalidated : false,
  290. iso: false
  291. };
  292. }
  293. function printMsg(msg) {
  294. if (moment.suppressDeprecationWarnings === false &&
  295. typeof console !== 'undefined' && console.warn) {
  296. console.warn('Deprecation warning: ' + msg);
  297. }
  298. }
  299. function deprecate(msg, fn) {
  300. var firstTime = true;
  301. return extend(function () {
  302. if (firstTime) {
  303. printMsg(msg);
  304. firstTime = false;
  305. }
  306. return fn.apply(this, arguments);
  307. }, fn);
  308. }
  309. function deprecateSimple(name, msg) {
  310. if (!deprecations[name]) {
  311. printMsg(msg);
  312. deprecations[name] = true;
  313. }
  314. }
  315. function padToken(func, count) {
  316. return function (a) {
  317. return leftZeroFill(func.call(this, a), count);
  318. };
  319. }
  320. function ordinalizeToken(func, period) {
  321. return function (a) {
  322. return this.localeData().ordinal(func.call(this, a), period);
  323. };
  324. }
  325. function monthDiff(a, b) {
  326. // difference in months
  327. var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
  328. // b is in (anchor - 1 month, anchor + 1 month)
  329. anchor = a.clone().add(wholeMonthDiff, 'months'),
  330. anchor2, adjust;
  331. if (b - anchor < 0) {
  332. anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
  333. // linear across the month
  334. adjust = (b - anchor) / (anchor - anchor2);
  335. } else {
  336. anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
  337. // linear across the month
  338. adjust = (b - anchor) / (anchor2 - anchor);
  339. }
  340. return -(wholeMonthDiff + adjust);
  341. }
  342. while (ordinalizeTokens.length) {
  343. i = ordinalizeTokens.pop();
  344. formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i);
  345. }
  346. while (paddedTokens.length) {
  347. i = paddedTokens.pop();
  348. formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2);
  349. }
  350. formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
  351. function meridiemFixWrap(locale, hour, meridiem) {
  352. var isPm;
  353. if (meridiem == null) {
  354. // nothing to do
  355. return hour;
  356. }
  357. if (locale.meridiemHour != null) {
  358. return locale.meridiemHour(hour, meridiem);
  359. } else if (locale.isPM != null) {
  360. // Fallback
  361. isPm = locale.isPM(meridiem);
  362. if (isPm && hour < 12) {
  363. hour += 12;
  364. }
  365. if (!isPm && hour === 12) {
  366. hour = 0;
  367. }
  368. return hour;
  369. } else {
  370. // thie is not supposed to happen
  371. return hour;
  372. }
  373. }
  374. /************************************
  375. Constructors
  376. ************************************/
  377. function Locale() {
  378. }
  379. // Moment prototype object
  380. function Moment(config, skipOverflow) {
  381. if (skipOverflow !== false) {
  382. checkOverflow(config);
  383. }
  384. copyConfig(this, config);
  385. this._d = new Date(+config._d);
  386. // Prevent infinite loop in case updateOffset creates new moment
  387. // objects.
  388. if (updateInProgress === false) {
  389. updateInProgress = true;
  390. moment.updateOffset(this);
  391. updateInProgress = false;
  392. }
  393. }
  394. // Duration Constructor
  395. function Duration(duration) {
  396. var normalizedInput = normalizeObjectUnits(duration),
  397. years = normalizedInput.year || 0,
  398. quarters = normalizedInput.quarter || 0,
  399. months = normalizedInput.month || 0,
  400. weeks = normalizedInput.week || 0,
  401. days = normalizedInput.day || 0,
  402. hours = normalizedInput.hour || 0,
  403. minutes = normalizedInput.minute || 0,
  404. seconds = normalizedInput.second || 0,
  405. milliseconds = normalizedInput.millisecond || 0;
  406. // representation for dateAddRemove
  407. this._milliseconds = +milliseconds +
  408. seconds * 1e3 + // 1000
  409. minutes * 6e4 + // 1000 * 60
  410. hours * 36e5; // 1000 * 60 * 60
  411. // Because of dateAddRemove treats 24 hours as different from a
  412. // day when working around DST, we need to store them separately
  413. this._days = +days +
  414. weeks * 7;
  415. // It is impossible translate months into days without knowing
  416. // which months you are are talking about, so we have to store
  417. // it separately.
  418. this._months = +months +
  419. quarters * 3 +
  420. years * 12;
  421. this._data = {};
  422. this._locale = moment.localeData();
  423. this._bubble();
  424. }
  425. /************************************
  426. Helpers
  427. ************************************/
  428. function extend(a, b) {
  429. for (var i in b) {
  430. if (hasOwnProp(b, i)) {
  431. a[i] = b[i];
  432. }
  433. }
  434. if (hasOwnProp(b, 'toString')) {
  435. a.toString = b.toString;
  436. }
  437. if (hasOwnProp(b, 'valueOf')) {
  438. a.valueOf = b.valueOf;
  439. }
  440. return a;
  441. }
  442. function copyConfig(to, from) {
  443. var i, prop, val;
  444. if (typeof from._isAMomentObject !== 'undefined') {
  445. to._isAMomentObject = from._isAMomentObject;
  446. }
  447. if (typeof from._i !== 'undefined') {
  448. to._i = from._i;
  449. }
  450. if (typeof from._f !== 'undefined') {
  451. to._f = from._f;
  452. }
  453. if (typeof from._l !== 'undefined') {
  454. to._l = from._l;
  455. }
  456. if (typeof from._strict !== 'undefined') {
  457. to._strict = from._strict;
  458. }
  459. if (typeof from._tzm !== 'undefined') {
  460. to._tzm = from._tzm;
  461. }
  462. if (typeof from._isUTC !== 'undefined') {
  463. to._isUTC = from._isUTC;
  464. }
  465. if (typeof from._offset !== 'undefined') {
  466. to._offset = from._offset;
  467. }
  468. if (typeof from._pf !== 'undefined') {
  469. to._pf = from._pf;
  470. }
  471. if (typeof from._locale !== 'undefined') {
  472. to._locale = from._locale;
  473. }
  474. if (momentProperties.length > 0) {
  475. for (i in momentProperties) {
  476. prop = momentProperties[i];
  477. val = from[prop];
  478. if (typeof val !== 'undefined') {
  479. to[prop] = val;
  480. }
  481. }
  482. }
  483. return to;
  484. }
  485. function absRound(number) {
  486. if (number < 0) {
  487. return Math.ceil(number);
  488. } else {
  489. return Math.floor(number);
  490. }
  491. }
  492. // left zero fill a number
  493. // see http://jsperf.com/left-zero-filling for performance comparison
  494. function leftZeroFill(number, targetLength, forceSign) {
  495. var output = '' + Math.abs(number),
  496. sign = number >= 0;
  497. while (output.length < targetLength) {
  498. output = '0' + output;
  499. }
  500. return (sign ? (forceSign ? '+' : '') : '-') + output;
  501. }
  502. function positiveMomentsDifference(base, other) {
  503. var res = {milliseconds: 0, months: 0};
  504. res.months = other.month() - base.month() +
  505. (other.year() - base.year()) * 12;
  506. if (base.clone().add(res.months, 'M').isAfter(other)) {
  507. --res.months;
  508. }
  509. res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
  510. return res;
  511. }
  512. function momentsDifference(base, other) {
  513. var res;
  514. other = makeAs(other, base);
  515. if (base.isBefore(other)) {
  516. res = positiveMomentsDifference(base, other);
  517. } else {
  518. res = positiveMomentsDifference(other, base);
  519. res.milliseconds = -res.milliseconds;
  520. res.months = -res.months;
  521. }
  522. return res;
  523. }
  524. // TODO: remove 'name' arg after deprecation is removed
  525. function createAdder(direction, name) {
  526. return function (val, period) {
  527. var dur, tmp;
  528. //invert the arguments, but complain about it
  529. if (period !== null && !isNaN(+period)) {
  530. deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');
  531. tmp = val; val = period; period = tmp;
  532. }
  533. val = typeof val === 'string' ? +val : val;
  534. dur = moment.duration(val, period);
  535. addOrSubtractDurationFromMoment(this, dur, direction);
  536. return this;
  537. };
  538. }
  539. function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) {
  540. var milliseconds = duration._milliseconds,
  541. days = duration._days,
  542. months = duration._months;
  543. updateOffset = updateOffset == null ? true : updateOffset;
  544. if (milliseconds) {
  545. mom._d.setTime(+mom._d + milliseconds * isAdding);
  546. }
  547. if (days) {
  548. rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding);
  549. }
  550. if (months) {
  551. rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding);
  552. }
  553. if (updateOffset) {
  554. moment.updateOffset(mom, days || months);
  555. }
  556. }
  557. // check if is an array
  558. function isArray(input) {
  559. return Object.prototype.toString.call(input) === '[object Array]';
  560. }
  561. function isDate(input) {
  562. return Object.prototype.toString.call(input) === '[object Date]' ||
  563. input instanceof Date;
  564. }
  565. // compare two arrays, return the number of differences
  566. function compareArrays(array1, array2, dontConvert) {
  567. var len = Math.min(array1.length, array2.length),
  568. lengthDiff = Math.abs(array1.length - array2.length),
  569. diffs = 0,
  570. i;
  571. for (i = 0; i < len; i++) {
  572. if ((dontConvert && array1[i] !== array2[i]) ||
  573. (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
  574. diffs++;
  575. }
  576. }
  577. return diffs + lengthDiff;
  578. }
  579. function normalizeUnits(units) {
  580. if (units) {
  581. var lowered = units.toLowerCase().replace(/(.)s$/, '$1');
  582. units = unitAliases[units] || camelFunctions[lowered] || lowered;
  583. }
  584. return units;
  585. }
  586. function normalizeObjectUnits(inputObject) {
  587. var normalizedInput = {},
  588. normalizedProp,
  589. prop;
  590. for (prop in inputObject) {
  591. if (hasOwnProp(inputObject, prop)) {
  592. normalizedProp = normalizeUnits(prop);
  593. if (normalizedProp) {
  594. normalizedInput[normalizedProp] = inputObject[prop];
  595. }
  596. }
  597. }
  598. return normalizedInput;
  599. }
  600. function makeList(field) {
  601. var count, setter;
  602. if (field.indexOf('week') === 0) {
  603. count = 7;
  604. setter = 'day';
  605. }
  606. else if (field.indexOf('month') === 0) {
  607. count = 12;
  608. setter = 'month';
  609. }
  610. else {
  611. return;
  612. }
  613. moment[field] = function (format, index) {
  614. var i, getter,
  615. method = moment._locale[field],
  616. results = [];
  617. if (typeof format === 'number') {
  618. index = format;
  619. format = undefined;
  620. }
  621. getter = function (i) {
  622. var m = moment().utc().set(setter, i);
  623. return method.call(moment._locale, m, format || '');
  624. };
  625. if (index != null) {
  626. return getter(index);
  627. }
  628. else {
  629. for (i = 0; i < count; i++) {
  630. results.push(getter(i));
  631. }
  632. return results;
  633. }
  634. };
  635. }
  636. function toInt(argumentForCoercion) {
  637. var coercedNumber = +argumentForCoercion,
  638. value = 0;
  639. if (coercedNumber !== 0 && isFinite(coercedNumber)) {
  640. if (coercedNumber >= 0) {
  641. value = Math.floor(coercedNumber);
  642. } else {
  643. value = Math.ceil(coercedNumber);
  644. }
  645. }
  646. return value;
  647. }
  648. function daysInMonth(year, month) {
  649. return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
  650. }
  651. function weeksInYear(year, dow, doy) {
  652. return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week;
  653. }
  654. function daysInYear(year) {
  655. return isLeapYear(year) ? 366 : 365;
  656. }
  657. function isLeapYear(year) {
  658. return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
  659. }
  660. function checkOverflow(m) {
  661. var overflow;
  662. if (m._a && m._pf.overflow === -2) {
  663. overflow =
  664. m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
  665. m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
  666. m._a[HOUR] < 0 || m._a[HOUR] > 24 ||
  667. (m._a[HOUR] === 24 && (m._a[MINUTE] !== 0 ||
  668. m._a[SECOND] !== 0 ||
  669. m._a[MILLISECOND] !== 0)) ? HOUR :
  670. m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
  671. m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
  672. m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
  673. -1;
  674. if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
  675. overflow = DATE;
  676. }
  677. m._pf.overflow = overflow;
  678. }
  679. }
  680. function isValid(m) {
  681. if (m._isValid == null) {
  682. m._isValid = !isNaN(m._d.getTime()) &&
  683. m._pf.overflow < 0 &&
  684. !m._pf.empty &&
  685. !m._pf.invalidMonth &&
  686. !m._pf.nullInput &&
  687. !m._pf.invalidFormat &&
  688. !m._pf.userInvalidated;
  689. if (m._strict) {
  690. m._isValid = m._isValid &&
  691. m._pf.charsLeftOver === 0 &&
  692. m._pf.unusedTokens.length === 0 &&
  693. m._pf.bigHour === undefined;
  694. }
  695. }
  696. return m._isValid;
  697. }
  698. function normalizeLocale(key) {
  699. return key ? key.toLowerCase().replace('_', '-') : key;
  700. }
  701. // pick the locale from the array
  702. // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
  703. // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
  704. function chooseLocale(names) {
  705. var i = 0, j, next, locale, split;
  706. while (i < names.length) {
  707. split = normalizeLocale(names[i]).split('-');
  708. j = split.length;
  709. next = normalizeLocale(names[i + 1]);
  710. next = next ? next.split('-') : null;
  711. while (j > 0) {
  712. locale = loadLocale(split.slice(0, j).join('-'));
  713. if (locale) {
  714. return locale;
  715. }
  716. if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
  717. //the next array item is better than a shallower substring of this one
  718. break;
  719. }
  720. j--;
  721. }
  722. i++;
  723. }
  724. return null;
  725. }
  726. function loadLocale(name) {
  727. var oldLocale = null;
  728. if (!locales[name] && hasModule) {
  729. try {
  730. oldLocale = moment.locale();
  731. require('./locale/' + name);
  732. // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales
  733. moment.locale(oldLocale);
  734. } catch (e) { }
  735. }
  736. return locales[name];
  737. }
  738. // Return a moment from input, that is local/utc/utcOffset equivalent to
  739. // model.
  740. function makeAs(input, model) {
  741. var res, diff;
  742. if (model._isUTC) {
  743. res = model.clone();
  744. diff = (moment.isMoment(input) || isDate(input) ?
  745. +input : +moment(input)) - (+res);
  746. // Use low-level api, because this fn is low-level api.
  747. res._d.setTime(+res._d + diff);
  748. moment.updateOffset(res, false);
  749. return res;
  750. } else {
  751. return moment(input).local();
  752. }
  753. }
  754. /************************************
  755. Locale
  756. ************************************/
  757. extend(Locale.prototype, {
  758. set : function (config) {
  759. var prop, i;
  760. for (i in config) {
  761. prop = config[i];
  762. if (typeof prop === 'function') {
  763. this[i] = prop;
  764. } else {
  765. this['_' + i] = prop;
  766. }
  767. }
  768. // Lenient ordinal parsing accepts just a number in addition to
  769. // number + (possibly) stuff coming from _ordinalParseLenient.
  770. this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
  771. },
  772. _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  773. months : function (m) {
  774. return this._months[m.month()];
  775. },
  776. _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  777. monthsShort : function (m) {
  778. return this._monthsShort[m.month()];
  779. },
  780. monthsParse : function (monthName, format, strict) {
  781. var i, mom, regex;
  782. if (!this._monthsParse) {
  783. this._monthsParse = [];
  784. this._longMonthsParse = [];
  785. this._shortMonthsParse = [];
  786. }
  787. for (i = 0; i < 12; i++) {
  788. // make the regex if we don't have it already
  789. mom = moment.utc([2000, i]);
  790. if (strict && !this._longMonthsParse[i]) {
  791. this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
  792. this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
  793. }
  794. if (!strict && !this._monthsParse[i]) {
  795. regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
  796. this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
  797. }
  798. // test the regex
  799. if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
  800. return i;
  801. } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
  802. return i;
  803. } else if (!strict && this._monthsParse[i].test(monthName)) {
  804. return i;
  805. }
  806. }
  807. },
  808. _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  809. weekdays : function (m) {
  810. return this._weekdays[m.day()];
  811. },
  812. _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  813. weekdaysShort : function (m) {
  814. return this._weekdaysShort[m.day()];
  815. },
  816. _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  817. weekdaysMin : function (m) {
  818. return this._weekdaysMin[m.day()];
  819. },
  820. weekdaysParse : function (weekdayName) {
  821. var i, mom, regex;
  822. if (!this._weekdaysParse) {
  823. this._weekdaysParse = [];
  824. }
  825. for (i = 0; i < 7; i++) {
  826. // make the regex if we don't have it already
  827. if (!this._weekdaysParse[i]) {
  828. mom = moment([2000, 1]).day(i);
  829. regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
  830. this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
  831. }
  832. // test the regex
  833. if (this._weekdaysParse[i].test(weekdayName)) {
  834. return i;
  835. }
  836. }
  837. },
  838. _longDateFormat : {
  839. LTS : 'h:mm:ss A',
  840. LT : 'h:mm A',
  841. L : 'MM/DD/YYYY',
  842. LL : 'MMMM D, YYYY',
  843. LLL : 'MMMM D, YYYY LT',
  844. LLLL : 'dddd, MMMM D, YYYY LT'
  845. },
  846. longDateFormat : function (key) {
  847. var output = this._longDateFormat[key];
  848. if (!output && this._longDateFormat[key.toUpperCase()]) {
  849. output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
  850. return val.slice(1);
  851. });
  852. this._longDateFormat[key] = output;
  853. }
  854. return output;
  855. },
  856. isPM : function (input) {
  857. // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
  858. // Using charAt should be more compatible.
  859. return ((input + '').toLowerCase().charAt(0) === 'p');
  860. },
  861. _meridiemParse : /[ap]\.?m?\.?/i,
  862. meridiem : function (hours, minutes, isLower) {
  863. if (hours > 11) {
  864. return isLower ? 'pm' : 'PM';
  865. } else {
  866. return isLower ? 'am' : 'AM';
  867. }
  868. },
  869. _calendar : {
  870. sameDay : '[Today at] LT',
  871. nextDay : '[Tomorrow at] LT',
  872. nextWeek : 'dddd [at] LT',
  873. lastDay : '[Yesterday at] LT',
  874. lastWeek : '[Last] dddd [at] LT',
  875. sameElse : 'L'
  876. },
  877. calendar : function (key, mom, now) {
  878. var output = this._calendar[key];
  879. return typeof output === 'function' ? output.apply(mom, [now]) : output;
  880. },
  881. _relativeTime : {
  882. future : 'in %s',
  883. past : '%s ago',
  884. s : 'a few seconds',
  885. m : 'a minute',
  886. mm : '%d minutes',
  887. h : 'an hour',
  888. hh : '%d hours',
  889. d : 'a day',
  890. dd : '%d days',
  891. M : 'a month',
  892. MM : '%d months',
  893. y : 'a year',
  894. yy : '%d years'
  895. },
  896. relativeTime : function (number, withoutSuffix, string, isFuture) {
  897. var output = this._relativeTime[string];
  898. return (typeof output === 'function') ?
  899. output(number, withoutSuffix, string, isFuture) :
  900. output.replace(/%d/i, number);
  901. },
  902. pastFuture : function (diff, output) {
  903. var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
  904. return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
  905. },
  906. ordinal : function (number) {
  907. return this._ordinal.replace('%d', number);
  908. },
  909. _ordinal : '%d',
  910. _ordinalParse : /\d{1,2}/,
  911. preparse : function (string) {
  912. return string;
  913. },
  914. postformat : function (string) {
  915. return string;
  916. },
  917. week : function (mom) {
  918. return weekOfYear(mom, this._week.dow, this._week.doy).week;
  919. },
  920. _week : {
  921. dow : 0, // Sunday is the first day of the week.
  922. doy : 6 // The week that contains Jan 1st is the first week of the year.
  923. },
  924. firstDayOfWeek : function () {
  925. return this._week.dow;
  926. },
  927. firstDayOfYear : function () {
  928. return this._week.doy;
  929. },
  930. _invalidDate: 'Invalid date',
  931. invalidDate: function () {
  932. return this._invalidDate;
  933. }
  934. });
  935. /************************************
  936. Formatting
  937. ************************************/
  938. function removeFormattingTokens(input) {
  939. if (input.match(/\[[\s\S]/)) {
  940. return input.replace(/^\[|\]$/g, '');
  941. }
  942. return input.replace(/\\/g, '');
  943. }
  944. function makeFormatFunction(format) {
  945. var array = format.match(formattingTokens), i, length;
  946. for (i = 0, length = array.length; i < length; i++) {
  947. if (formatTokenFunctions[array[i]]) {
  948. array[i] = formatTokenFunctions[array[i]];
  949. } else {
  950. array[i] = removeFormattingTokens(array[i]);
  951. }
  952. }
  953. return function (mom) {
  954. var output = '';
  955. for (i = 0; i < length; i++) {
  956. output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
  957. }
  958. return output;
  959. };
  960. }
  961. // format date using native date object
  962. function formatMoment(m, format) {
  963. if (!m.isValid()) {
  964. return m.localeData().invalidDate();
  965. }
  966. format = expandFormat(format, m.localeData());
  967. if (!formatFunctions[format]) {
  968. formatFunctions[format] = makeFormatFunction(format);
  969. }
  970. return formatFunctions[format](m);
  971. }
  972. function expandFormat(format, locale) {
  973. var i = 5;
  974. function replaceLongDateFormatTokens(input) {
  975. return locale.longDateFormat(input) || input;
  976. }
  977. localFormattingTokens.lastIndex = 0;
  978. while (i >= 0 && localFormattingTokens.test(format)) {
  979. format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
  980. localFormattingTokens.lastIndex = 0;
  981. i -= 1;
  982. }
  983. return format;
  984. }
  985. /************************************
  986. Parsing
  987. ************************************/
  988. // get the regex to find the next token
  989. function getParseRegexForToken(token, config) {
  990. var a, strict = config._strict;
  991. switch (token) {
  992. case 'Q':
  993. return parseTokenOneDigit;
  994. case 'DDDD':
  995. return parseTokenThreeDigits;
  996. case 'YYYY':
  997. case 'GGGG':
  998. case 'gggg':
  999. return strict ? parseTokenFourDigits : parseTokenOneToFourDigits;
  1000. case 'Y':
  1001. case 'G':
  1002. case 'g':
  1003. return parseTokenSignedNumber;
  1004. case 'YYYYYY':
  1005. case 'YYYYY':
  1006. case 'GGGGG':
  1007. case 'ggggg':
  1008. return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
  1009. case 'S':
  1010. if (strict) {
  1011. return parseTokenOneDigit;
  1012. }
  1013. /* falls through */
  1014. case 'SS':
  1015. if (strict) {
  1016. return parseTokenTwoDigits;
  1017. }
  1018. /* falls through */
  1019. case 'SSS':
  1020. if (strict) {
  1021. return parseTokenThreeDigits;
  1022. }
  1023. /* falls through */
  1024. case 'DDD':
  1025. return parseTokenOneToThreeDigits;
  1026. case 'MMM':
  1027. case 'MMMM':
  1028. case 'dd':
  1029. case 'ddd':
  1030. case 'dddd':
  1031. return parseTokenWord;
  1032. case 'a':
  1033. case 'A':
  1034. return config._locale._meridiemParse;
  1035. case 'x':
  1036. return parseTokenOffsetMs;
  1037. case 'X':
  1038. return parseTokenTimestampMs;
  1039. case 'Z':
  1040. case 'ZZ':
  1041. return parseTokenTimezone;
  1042. case 'T':
  1043. return parseTokenT;
  1044. case 'SSSS':
  1045. return parseTokenDigits;
  1046. case 'MM':
  1047. case 'DD':
  1048. case 'YY':
  1049. case 'GG':
  1050. case 'gg':
  1051. case 'HH':
  1052. case 'hh':
  1053. case 'mm':
  1054. case 'ss':
  1055. case 'ww':
  1056. case 'WW':
  1057. return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits;
  1058. case 'M':
  1059. case 'D':
  1060. case 'd':
  1061. case 'H':
  1062. case 'h':
  1063. case 'm':
  1064. case 's':
  1065. case 'w':
  1066. case 'W':
  1067. case 'e':
  1068. case 'E':
  1069. return parseTokenOneOrTwoDigits;
  1070. case 'Do':
  1071. return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient;
  1072. default :
  1073. a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
  1074. return a;
  1075. }
  1076. }
  1077. function utcOffsetFromString(string) {
  1078. string = string || '';
  1079. var possibleTzMatches = (string.match(parseTokenTimezone) || []),
  1080. tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
  1081. parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
  1082. minutes = +(parts[1] * 60) + toInt(parts[2]);
  1083. return parts[0] === '+' ? minutes : -minutes;
  1084. }
  1085. // function to convert string input to date
  1086. function addTimeToArrayFromToken(token, input, config) {
  1087. var a, datePartArray = config._a;
  1088. switch (token) {
  1089. // QUARTER
  1090. case 'Q':
  1091. if (input != null) {
  1092. datePartArray[MONTH] = (toInt(input) - 1) * 3;
  1093. }
  1094. break;
  1095. // MONTH
  1096. case 'M' : // fall through to MM
  1097. case 'MM' :
  1098. if (input != null) {
  1099. datePartArray[MONTH] = toInt(input) - 1;
  1100. }
  1101. break;
  1102. case 'MMM' : // fall through to MMMM
  1103. case 'MMMM' :
  1104. a = config._locale.monthsParse(input, token, config._strict);
  1105. // if we didn't find a month name, mark the date as invalid.
  1106. if (a != null) {
  1107. datePartArray[MONTH] = a;
  1108. } else {
  1109. config._pf.invalidMonth = input;
  1110. }
  1111. break;
  1112. // DAY OF MONTH
  1113. case 'D' : // fall through to DD
  1114. case 'DD' :
  1115. if (input != null) {
  1116. datePartArray[DATE] = toInt(input);
  1117. }
  1118. break;
  1119. case 'Do' :
  1120. if (input != null) {
  1121. datePartArray[DATE] = toInt(parseInt(
  1122. input.match(/\d{1,2}/)[0], 10));
  1123. }
  1124. break;
  1125. // DAY OF YEAR
  1126. case 'DDD' : // fall through to DDDD
  1127. case 'DDDD' :
  1128. if (input != null) {
  1129. config._dayOfYear = toInt(input);
  1130. }
  1131. break;
  1132. // YEAR
  1133. case 'YY' :
  1134. datePartArray[YEAR] = moment.parseTwoDigitYear(input);
  1135. break;
  1136. case 'YYYY' :
  1137. case 'YYYYY' :
  1138. case 'YYYYYY' :
  1139. datePartArray[YEAR] = toInt(input);
  1140. break;
  1141. // AM / PM
  1142. case 'a' : // fall through to A
  1143. case 'A' :
  1144. config._meridiem = input;
  1145. // config._isPm = config._locale.isPM(input);
  1146. break;
  1147. // HOUR
  1148. case 'h' : // fall through to hh
  1149. case 'hh' :
  1150. config._pf.bigHour = true;
  1151. /* falls through */
  1152. case 'H' : // fall through to HH
  1153. case 'HH' :
  1154. datePartArray[HOUR] = toInt(input);
  1155. break;
  1156. // MINUTE
  1157. case 'm' : // fall through to mm
  1158. case 'mm' :
  1159. datePartArray[MINUTE] = toInt(input);
  1160. break;
  1161. // SECOND
  1162. case 's' : // fall through to ss
  1163. case 'ss' :
  1164. datePartArray[SECOND] = toInt(input);
  1165. break;
  1166. // MILLISECOND
  1167. case 'S' :
  1168. case 'SS' :
  1169. case 'SSS' :
  1170. case 'SSSS' :
  1171. datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
  1172. break;
  1173. // UNIX OFFSET (MILLISECONDS)
  1174. case 'x':
  1175. config._d = new Date(toInt(input));
  1176. break;
  1177. // UNIX TIMESTAMP WITH MS
  1178. case 'X':
  1179. config._d = new Date(parseFloat(input) * 1000);
  1180. break;
  1181. // TIMEZONE
  1182. case 'Z' : // fall through to ZZ
  1183. case 'ZZ' :
  1184. config._useUTC = true;
  1185. config._tzm = utcOffsetFromString(input);
  1186. break;
  1187. // WEEKDAY - human
  1188. case 'dd':
  1189. case 'ddd':
  1190. case 'dddd':
  1191. a = config._locale.weekdaysParse(input);
  1192. // if we didn't get a weekday name, mark the date as invalid
  1193. if (a != null) {
  1194. config._w = config._w || {};
  1195. config._w['d'] = a;
  1196. } else {
  1197. config._pf.invalidWeekday = input;
  1198. }
  1199. break;
  1200. // WEEK, WEEK DAY - numeric
  1201. case 'w':
  1202. case 'ww':
  1203. case 'W':
  1204. case 'WW':
  1205. case 'd':
  1206. case 'e':
  1207. case 'E':
  1208. token = token.substr(0, 1);
  1209. /* falls through */
  1210. case 'gggg':
  1211. case 'GGGG':
  1212. case 'GGGGG':
  1213. token = token.substr(0, 2);
  1214. if (input) {
  1215. config._w = config._w || {};
  1216. config._w[token] = toInt(input);
  1217. }
  1218. break;
  1219. case 'gg':
  1220. case 'GG':
  1221. config._w = config._w || {};
  1222. config._w[token] = moment.parseTwoDigitYear(input);
  1223. }
  1224. }
  1225. function dayOfYearFromWeekInfo(config) {
  1226. var w, weekYear, week, weekday, dow, doy, temp;
  1227. w = config._w;
  1228. if (w.GG != null || w.W != null || w.E != null) {
  1229. dow = 1;
  1230. doy = 4;
  1231. // TODO: We need to take the current isoWeekYear, but that depends on
  1232. // how we interpret now (local, utc, fixed offset). So create
  1233. // a now version of current config (take local/utc/offset flags, and
  1234. // create now).
  1235. weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year);
  1236. week = dfl(w.W, 1);
  1237. weekday = dfl(w.E, 1);
  1238. } else {
  1239. dow = config._locale._week.dow;
  1240. doy = config._locale._week.doy;
  1241. weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year);
  1242. week = dfl(w.w, 1);
  1243. if (w.d != null) {
  1244. // weekday -- low day numbers are considered next week
  1245. weekday = w.d;
  1246. if (weekday < dow) {
  1247. ++week;
  1248. }
  1249. } else if (w.e != null) {
  1250. // local weekday -- counting starts from begining of week
  1251. weekday = w.e + dow;
  1252. } else {
  1253. // default to begining of week
  1254. weekday = dow;
  1255. }
  1256. }
  1257. temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);
  1258. config._a[YEAR] = temp.year;
  1259. config._dayOfYear = temp.dayOfYear;
  1260. }
  1261. // convert an array to a date.
  1262. // the array should mirror the parameters below
  1263. // note: all values past the year are optional and will default to the lowest possible value.
  1264. // [year, month, day , hour, minute, second, millisecond]
  1265. function dateFromConfig(config) {
  1266. var i, date, input = [], currentDate, yearToUse;
  1267. if (config._d) {
  1268. return;
  1269. }
  1270. currentDate = currentDateArray(config);
  1271. //compute day of the year from weeks and weekdays
  1272. if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
  1273. dayOfYearFromWeekInfo(config);
  1274. }
  1275. //if the day of the year is set, figure out what it is
  1276. if (config._dayOfYear) {
  1277. yearToUse = dfl(config._a[YEAR], currentDate[YEAR]);
  1278. if (config._dayOfYear > daysInYear(yearToUse)) {
  1279. config._pf._overflowDayOfYear = true;
  1280. }
  1281. date = makeUTCDate(yearToUse, 0, config._dayOfYear);
  1282. config._a[MONTH] = date.getUTCMonth();
  1283. config._a[DATE] = date.getUTCDate();
  1284. }
  1285. // Default to current date.
  1286. // * if no year, month, day of month are given, default to today
  1287. // * if day of month is given, default month and year
  1288. // * if month is given, default only year
  1289. // * if year is given, don't default anything
  1290. for (i = 0; i < 3 && config._a[i] == null; ++i) {
  1291. config._a[i] = input[i] = currentDate[i];
  1292. }
  1293. // Zero out whatever was not defaulted, including time
  1294. for (; i < 7; i++) {
  1295. config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
  1296. }
  1297. // Check for 24:00:00.000
  1298. if (config._a[HOUR] === 24 &&
  1299. config._a[MINUTE] === 0 &&
  1300. config._a[SECOND] === 0 &&
  1301. config._a[MILLISECOND] === 0) {
  1302. config._nextDay = true;
  1303. config._a[HOUR] = 0;
  1304. }
  1305. config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
  1306. // Apply timezone offset from input. The actual utcOffset can be changed
  1307. // with parseZone.
  1308. if (config._tzm != null) {
  1309. config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
  1310. }
  1311. if (config._nextDay) {
  1312. config._a[HOUR] = 24;
  1313. }
  1314. }
  1315. function dateFromObject(config) {
  1316. var normalizedInput;
  1317. if (config._d) {
  1318. return;
  1319. }
  1320. normalizedInput = normalizeObjectUnits(config._i);
  1321. config._a = [
  1322. normalizedInput.year,
  1323. normalizedInput.month,
  1324. normalizedInput.day || normalizedInput.date,
  1325. normalizedInput.hour,
  1326. normalizedInput.minute,
  1327. normalizedInput.second,
  1328. normalizedInput.millisecond
  1329. ];
  1330. dateFromConfig(config);
  1331. }
  1332. function currentDateArray(config) {
  1333. var now = new Date();
  1334. if (config._useUTC) {
  1335. return [
  1336. now.getUTCFullYear(),
  1337. now.getUTCMonth(),
  1338. now.getUTCDate()
  1339. ];
  1340. } else {
  1341. return [now.getFullYear(), now.getMonth(), now.getDate()];
  1342. }
  1343. }
  1344. // date from string and format string
  1345. function makeDateFromStringAndFormat(config) {
  1346. if (config._f === moment.ISO_8601) {
  1347. parseISO(config);
  1348. return;
  1349. }
  1350. config._a = [];
  1351. config._pf.empty = true;
  1352. // This array is used to make a Date, either with `new Date` or `Date.UTC`
  1353. var string = '' + config._i,
  1354. i, parsedInput, tokens, token, skipped,
  1355. stringLength = string.length,
  1356. totalParsedInputLength = 0;
  1357. tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
  1358. for (i = 0; i < tokens.length; i++) {
  1359. token = tokens[i];
  1360. parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
  1361. if (parsedInput) {
  1362. skipped = string.substr(0, string.indexOf(parsedInput));
  1363. if (skipped.length > 0) {
  1364. config._pf.unusedInput.push(skipped);
  1365. }
  1366. string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
  1367. totalParsedInputLength += parsedInput.length;
  1368. }
  1369. // don't parse if it's not a known token
  1370. if (formatTokenFunctions[token]) {
  1371. if (parsedInput) {
  1372. config._pf.empty = false;
  1373. }
  1374. else {
  1375. config._pf.unusedTokens.push(token);
  1376. }
  1377. addTimeToArrayFromToken(token, parsedInput, config);
  1378. }
  1379. else if (config._strict && !parsedInput) {
  1380. config._pf.unusedTokens.push(token);
  1381. }
  1382. }
  1383. // add remaining unparsed input length to the string
  1384. config._pf.charsLeftOver = stringLength - totalParsedInputLength;
  1385. if (string.length > 0) {
  1386. config._pf.unusedInput.push(string);
  1387. }
  1388. // clear _12h flag if hour is <= 12
  1389. if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
  1390. config._pf.bigHour = undefined;
  1391. }
  1392. // handle meridiem
  1393. config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR],
  1394. config._meridiem);
  1395. dateFromConfig(config);
  1396. checkOverflow(config);
  1397. }
  1398. function unescapeFormat(s) {
  1399. return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
  1400. return p1 || p2 || p3 || p4;
  1401. });
  1402. }
  1403. // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
  1404. function regexpEscape(s) {
  1405. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  1406. }
  1407. // date from string and array of format strings
  1408. function makeDateFromStringAndArray(config) {
  1409. var tempConfig,
  1410. bestMoment,
  1411. scoreToBeat,
  1412. i,
  1413. currentScore;
  1414. if (config._f.length === 0) {
  1415. config._pf.invalidFormat = true;
  1416. config._d = new Date(NaN);
  1417. return;
  1418. }
  1419. for (i = 0; i < config._f.length; i++) {
  1420. currentScore = 0;
  1421. tempConfig = copyConfig({}, config);
  1422. if (config._useUTC != null) {
  1423. tempConfig._useUTC = config._useUTC;
  1424. }
  1425. tempConfig._pf = defaultParsingFlags();
  1426. tempConfig._f = config._f[i];
  1427. makeDateFromStringAndFormat(tempConfig);
  1428. if (!isValid(tempConfig)) {
  1429. continue;
  1430. }
  1431. // if there is any input that was not parsed add a penalty for that format
  1432. currentScore += tempConfig._pf.charsLeftOver;
  1433. //or tokens
  1434. currentScore += tempConfig._pf.unusedTokens.length * 10;
  1435. tempConfig._pf.score = currentScore;
  1436. if (scoreToBeat == null || currentScore < scoreToBeat) {
  1437. scoreToBeat = currentScore;
  1438. bestMoment = tempConfig;
  1439. }
  1440. }
  1441. extend(config, bestMoment || tempConfig);
  1442. }
  1443. // date from iso format
  1444. function parseISO(config) {
  1445. var i, l,
  1446. string = config._i,
  1447. match = isoRegex.exec(string);
  1448. if (match) {
  1449. config._pf.iso = true;
  1450. for (i = 0, l = isoDates.length; i < l; i++) {
  1451. if (isoDates[i][1].exec(string)) {
  1452. // match[5] should be 'T' or undefined
  1453. config._f = isoDates[i][0] + (match[6] || ' ');
  1454. break;
  1455. }
  1456. }
  1457. for (i = 0, l = isoTimes.length; i < l; i++) {
  1458. if (isoTimes[i][1].exec(string)) {
  1459. config._f += isoTimes[i][0];
  1460. break;
  1461. }
  1462. }
  1463. if (string.match(parseTokenTimezone)) {
  1464. config._f += 'Z';
  1465. }
  1466. makeDateFromStringAndFormat(config);
  1467. } else {
  1468. config._isValid = false;
  1469. }
  1470. }
  1471. // date from iso format or fallback
  1472. function makeDateFromString(config) {
  1473. parseISO(config);
  1474. if (config._isValid === false) {
  1475. delete config._isValid;
  1476. moment.createFromInputFallback(config);
  1477. }
  1478. }
  1479. function map(arr, fn) {
  1480. var res = [], i;
  1481. for (i = 0; i < arr.length; ++i) {
  1482. res.push(fn(arr[i], i));
  1483. }
  1484. return res;
  1485. }
  1486. function makeDateFromInput(config) {
  1487. var input = config._i, matched;
  1488. if (input === undefined) {
  1489. config._d = new Date();
  1490. } else if (isDate(input)) {
  1491. config._d = new Date(+input);
  1492. } else if ((matched = aspNetJsonRegex.exec(input)) !== null) {
  1493. config._d = new Date(+matched[1]);
  1494. } else if (typeof input === 'string') {
  1495. makeDateFromString(config);
  1496. } else if (isArray(input)) {
  1497. config._a = map(input.slice(0), function (obj) {
  1498. return parseInt(obj, 10);
  1499. });
  1500. dateFromConfig(config);
  1501. } else if (typeof(input) === 'object') {
  1502. dateFromObject(config);
  1503. } else if (typeof(input) === 'number') {
  1504. // from milliseconds
  1505. config._d = new Date(input);
  1506. } else {
  1507. moment.createFromInputFallback(config);
  1508. }
  1509. }
  1510. function makeDate(y, m, d, h, M, s, ms) {
  1511. //can't just apply() to create a date:
  1512. //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
  1513. var date = new Date(y, m, d, h, M, s, ms);
  1514. //the date constructor doesn't accept years < 1970
  1515. if (y < 1970) {
  1516. date.setFullYear(y);
  1517. }
  1518. return date;
  1519. }
  1520. function makeUTCDate(y) {
  1521. var date = new Date(Date.UTC.apply(null, arguments));
  1522. if (y < 1970) {
  1523. date.setUTCFullYear(y);
  1524. }
  1525. return date;
  1526. }
  1527. function parseWeekday(input, locale) {
  1528. if (typeof input === 'string') {
  1529. if (!isNaN(input)) {
  1530. input = parseInt(input, 10);
  1531. }
  1532. else {
  1533. input = locale.weekdaysParse(input);
  1534. if (typeof input !== 'number') {
  1535. return null;
  1536. }
  1537. }
  1538. }
  1539. return input;
  1540. }
  1541. /************************************
  1542. Relative Time
  1543. ************************************/
  1544. // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
  1545. function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
  1546. return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
  1547. }
  1548. function relativeTime(posNegDuration, withoutSuffix, locale) {
  1549. var duration = moment.duration(posNegDuration).abs(),
  1550. seconds = round(duration.as('s')),
  1551. minutes = round(duration.as('m')),
  1552. hours = round(duration.as('h')),
  1553. days = round(duration.as('d')),
  1554. months = round(duration.as('M')),
  1555. years = round(duration.as('y')),
  1556. args = seconds < relativeTimeThresholds.s && ['s', seconds] ||
  1557. minutes === 1 && ['m'] ||
  1558. minutes < relativeTimeThresholds.m && ['mm', minutes] ||
  1559. hours === 1 && ['h'] ||
  1560. hours < relativeTimeThresholds.h && ['hh', hours] ||
  1561. days === 1 && ['d'] ||
  1562. days < relativeTimeThresholds.d && ['dd', days] ||
  1563. months === 1 && ['M'] ||
  1564. months < relativeTimeThresholds.M && ['MM', months] ||
  1565. years === 1 && ['y'] || ['yy', years];
  1566. args[2] = withoutSuffix;
  1567. args[3] = +posNegDuration > 0;
  1568. args[4] = locale;
  1569. return substituteTimeAgo.apply({}, args);
  1570. }
  1571. /************************************
  1572. Week of Year
  1573. ************************************/
  1574. // firstDayOfWeek 0 = sun, 6 = sat
  1575. // the day of the week that starts the week
  1576. // (usually sunday or monday)
  1577. // firstDayOfWeekOfYear 0 = sun, 6 = sat
  1578. // the first week is the week that contains the first
  1579. // of this day of the week
  1580. // (eg. ISO weeks use thursday (4))
  1581. function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
  1582. var end = firstDayOfWeekOfYear - firstDayOfWeek,
  1583. daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
  1584. adjustedMoment;
  1585. if (daysToDayOfWeek > end) {
  1586. daysToDayOfWeek -= 7;
  1587. }
  1588. if (daysToDayOfWeek < end - 7) {
  1589. daysToDayOfWeek += 7;
  1590. }
  1591. adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd');
  1592. return {
  1593. week: Math.ceil(adjustedMoment.dayOfYear() / 7),
  1594. year: adjustedMoment.year()
  1595. };
  1596. }
  1597. //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
  1598. function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
  1599. var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
  1600. d = d === 0 ? 7 : d;
  1601. weekday = weekday != null ? weekday : firstDayOfWeek;
  1602. daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);
  1603. dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
  1604. return {
  1605. year: dayOfYear > 0 ? year : year - 1,
  1606. dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
  1607. };
  1608. }
  1609. /************************************
  1610. Top Level Functions
  1611. ************************************/
  1612. function makeMoment(config) {
  1613. var input = config._i,
  1614. format = config._f,
  1615. res;
  1616. config._locale = config._locale || moment.localeData(config._l);
  1617. if (input === null || (format === undefined && input === '')) {
  1618. return moment.invalid({nullInput: true});
  1619. }
  1620. if (typeof input === 'string') {
  1621. config._i = input = config._locale.preparse(input);
  1622. }
  1623. if (moment.isMoment(input)) {
  1624. return new Moment(input, true);
  1625. } else if (format) {
  1626. if (isArray(format)) {
  1627. makeDateFromStringAndArray(config);
  1628. } else {
  1629. makeDateFromStringAndFormat(config);
  1630. }
  1631. } else {
  1632. makeDateFromInput(config);
  1633. }
  1634. res = new Moment(config);
  1635. if (res._nextDay) {
  1636. // Adding is smart enough around DST
  1637. res.add(1, 'd');
  1638. res._nextDay = undefined;
  1639. }
  1640. return res;
  1641. }
  1642. moment = function (input, format, locale, strict) {
  1643. var c;
  1644. if (typeof(locale) === 'boolean') {
  1645. strict = locale;
  1646. locale = undefined;
  1647. }
  1648. // object construction must be done this way.
  1649. // https://github.com/moment/moment/issues/1423
  1650. c = {};
  1651. c._isAMomentObject = true;
  1652. c._i = input;
  1653. c._f = format;
  1654. c._l = locale;
  1655. c._strict = strict;
  1656. c._isUTC = false;
  1657. c._pf = defaultParsingFlags();
  1658. return makeMoment(c);
  1659. };
  1660. moment.suppressDeprecationWarnings = false;
  1661. moment.createFromInputFallback = deprecate(
  1662. 'moment construction falls back to js Date. This is ' +
  1663. 'discouraged and will be removed in upcoming major ' +
  1664. 'release. Please refer to ' +
  1665. 'https://github.com/moment/moment/issues/1407 for more info.',
  1666. function (config) {
  1667. config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
  1668. }
  1669. );
  1670. // Pick a moment m from moments so that m[fn](other) is true for all
  1671. // other. This relies on the function fn to be transitive.
  1672. //
  1673. // moments should either be an array of moment objects or an array, whose
  1674. // first element is an array of moment objects.
  1675. function pickBy(fn, moments) {
  1676. var res, i;
  1677. if (moments.length === 1 && isArray(moments[0])) {
  1678. moments = moments[0];
  1679. }
  1680. if (!moments.length) {
  1681. return moment();
  1682. }
  1683. res = moments[0];
  1684. for (i = 1; i < moments.length; ++i) {
  1685. if (moments[i][fn](res)) {
  1686. res = moments[i];
  1687. }
  1688. }
  1689. return res;
  1690. }
  1691. moment.min = function () {
  1692. var args = [].slice.call(arguments, 0);
  1693. return pickBy('isBefore', args);
  1694. };
  1695. moment.max = function () {
  1696. var args = [].slice.call(arguments, 0);
  1697. return pickBy('isAfter', args);
  1698. };
  1699. // creating with utc
  1700. moment.utc = function (input, format, locale, strict) {
  1701. var c;
  1702. if (typeof(locale) === 'boolean') {
  1703. strict = locale;
  1704. locale = undefined;
  1705. }
  1706. // object construction must be done this way.
  1707. // https://github.com/moment/moment/issues/1423
  1708. c = {};
  1709. c._isAMomentObject = true;
  1710. c._useUTC = true;
  1711. c._isUTC = true;
  1712. c._l = locale;
  1713. c._i = input;
  1714. c._f = format;
  1715. c._strict = strict;
  1716. c._pf = defaultParsingFlags();
  1717. return makeMoment(c).utc();
  1718. };
  1719. // creating with unix timestamp (in seconds)
  1720. moment.unix = function (input) {
  1721. return moment(input * 1000);
  1722. };
  1723. // duration
  1724. moment.duration = function (input, key) {
  1725. var duration = input,
  1726. // matching against regexp is expensive, do it on demand
  1727. match = null,
  1728. sign,
  1729. ret,
  1730. parseIso,
  1731. diffRes;
  1732. if (moment.isDuration(input)) {
  1733. duration = {
  1734. ms: input._milliseconds,
  1735. d: input._days,
  1736. M: input._months
  1737. };
  1738. } else if (typeof input === 'number') {
  1739. duration = {};
  1740. if (key) {
  1741. duration[key] = input;
  1742. } else {
  1743. duration.milliseconds = input;
  1744. }
  1745. } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
  1746. sign = (match[1] === '-') ? -1 : 1;
  1747. duration = {
  1748. y: 0,
  1749. d: toInt(match[DATE]) * sign,
  1750. h: toInt(match[HOUR]) * sign,
  1751. m: toInt(match[MINUTE]) * sign,
  1752. s: toInt(match[SECOND]) * sign,
  1753. ms: toInt(match[MILLISECOND]) * sign
  1754. };
  1755. } else if (!!(match = isoDurationRegex.exec(input))) {
  1756. sign = (match[1] === '-') ? -1 : 1;
  1757. parseIso = function (inp) {
  1758. // We'd normally use ~~inp for this, but unfortunately it also
  1759. // converts floats to ints.
  1760. // inp may be undefined, so careful calling replace on it.
  1761. var res = inp && parseFloat(inp.replace(',', '.'));
  1762. // apply sign while we're at it
  1763. return (isNaN(res) ? 0 : res) * sign;
  1764. };
  1765. duration = {
  1766. y: parseIso(match[2]),
  1767. M: parseIso(match[3]),
  1768. d: parseIso(match[4]),
  1769. h: parseIso(match[5]),
  1770. m: parseIso(match[6]),
  1771. s: parseIso(match[7]),
  1772. w: parseIso(match[8])
  1773. };
  1774. } else if (duration == null) {// checks for null or undefined
  1775. duration = {};
  1776. } else if (typeof duration === 'object' &&
  1777. ('from' in duration || 'to' in duration)) {
  1778. diffRes = momentsDifference(moment(duration.from), moment(duration.to));
  1779. duration = {};
  1780. duration.ms = diffRes.milliseconds;
  1781. duration.M = diffRes.months;
  1782. }
  1783. ret = new Duration(duration);
  1784. if (moment.isDuration(input) && hasOwnProp(input, '_locale')) {
  1785. ret._locale = input._locale;
  1786. }
  1787. return ret;
  1788. };
  1789. // version number
  1790. moment.version = VERSION;
  1791. // default format
  1792. moment.defaultFormat = isoFormat;
  1793. // constant that refers to the ISO standard
  1794. moment.ISO_8601 = function () {};
  1795. // Plugins that add properties should also add the key here (null value),
  1796. // so we can properly clone ourselves.
  1797. moment.momentProperties = momentProperties;
  1798. // This function will be called whenever a moment is mutated.
  1799. // It is intended to keep the offset in sync with the timezone.
  1800. moment.updateOffset = function () {};
  1801. // This function allows you to set a threshold for relative time strings
  1802. moment.relativeTimeThreshold = function (threshold, limit) {
  1803. if (relativeTimeThresholds[threshold] === undefined) {
  1804. return false;
  1805. }
  1806. if (limit === undefined) {
  1807. return relativeTimeThresholds[threshold];
  1808. }
  1809. relativeTimeThresholds[threshold] = limit;
  1810. return true;
  1811. };
  1812. moment.lang = deprecate(
  1813. 'moment.lang is deprecated. Use moment.locale instead.',
  1814. function (key, value) {
  1815. return moment.locale(key, value);
  1816. }
  1817. );
  1818. // This function will load locale and then set the global locale. If
  1819. // no arguments are passed in, it will simply return the current global
  1820. // locale key.
  1821. moment.locale = function (key, values) {
  1822. var data;
  1823. if (key) {
  1824. if (typeof(values) !== 'undefined') {
  1825. data = moment.defineLocale(key, values);
  1826. }
  1827. else {
  1828. data = moment.localeData(key);
  1829. }
  1830. if (data) {
  1831. moment.duration._locale = moment._locale = data;
  1832. }
  1833. }
  1834. return moment._locale._abbr;
  1835. };
  1836. moment.defineLocale = function (name, values) {
  1837. if (values !== null) {
  1838. values.abbr = name;
  1839. if (!locales[name]) {
  1840. locales[name] = new Locale();
  1841. }
  1842. locales[name].set(values);
  1843. // backwards compat for now: also set the locale
  1844. moment.locale(name);
  1845. return locales[name];
  1846. } else {
  1847. // useful for testing
  1848. delete locales[name];
  1849. return null;
  1850. }
  1851. };
  1852. moment.langData = deprecate(
  1853. 'moment.langData is deprecated. Use moment.localeData instead.',
  1854. function (key) {
  1855. return moment.localeData(key);
  1856. }
  1857. );
  1858. // returns locale data
  1859. moment.localeData = function (key) {
  1860. var locale;
  1861. if (key && key._locale && key._locale._abbr) {
  1862. key = key._locale._abbr;
  1863. }
  1864. if (!key) {
  1865. return moment._locale;
  1866. }
  1867. if (!isArray(key)) {
  1868. //short-circuit everything else
  1869. locale = loadLocale(key);
  1870. if (locale) {
  1871. return locale;
  1872. }
  1873. key = [key];
  1874. }
  1875. return chooseLocale(key);
  1876. };
  1877. // compare moment object
  1878. moment.isMoment = function (obj) {
  1879. return obj instanceof Moment ||
  1880. (obj != null && hasOwnProp(obj, '_isAMomentObject'));
  1881. };
  1882. // for typechecking Duration objects
  1883. moment.isDuration = function (obj) {
  1884. return obj instanceof Duration;
  1885. };
  1886. for (i = lists.length - 1; i >= 0; --i) {
  1887. makeList(lists[i]);
  1888. }
  1889. moment.normalizeUnits = function (units) {
  1890. return normalizeUnits(units);
  1891. };
  1892. moment.invalid = function (flags) {
  1893. var m = moment.utc(NaN);
  1894. if (flags != null) {
  1895. extend(m._pf, flags);
  1896. }
  1897. else {
  1898. m._pf.userInvalidated = true;
  1899. }
  1900. return m;
  1901. };
  1902. moment.parseZone = function () {
  1903. return moment.apply(null, arguments).parseZone();
  1904. };
  1905. moment.parseTwoDigitYear = function (input) {
  1906. return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
  1907. };
  1908. moment.isDate = isDate;
  1909. /************************************
  1910. Moment Prototype
  1911. ************************************/
  1912. extend(moment.fn = Moment.prototype, {
  1913. clone : function () {
  1914. return moment(this);
  1915. },
  1916. valueOf : function () {
  1917. return +this._d - ((this._offset || 0) * 60000);
  1918. },
  1919. unix : function () {
  1920. return Math.floor(+this / 1000);
  1921. },
  1922. toString : function () {
  1923. return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
  1924. },
  1925. toDate : function () {
  1926. return this._offset ? new Date(+this) : this._d;
  1927. },
  1928. toISOString : function () {
  1929. var m = moment(this).utc();
  1930. if (0 < m.year() && m.year() <= 9999) {
  1931. if ('function' === typeof Date.prototype.toISOString) {
  1932. // native implementation is ~50x faster, use it when we can
  1933. return this.toDate().toISOString();
  1934. } else {
  1935. return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1936. }
  1937. } else {
  1938. return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1939. }
  1940. },
  1941. toArray : function () {
  1942. var m = this;
  1943. return [
  1944. m.year(),
  1945. m.month(),
  1946. m.date(),
  1947. m.hours(),
  1948. m.minutes(),
  1949. m.seconds(),
  1950. m.milliseconds()
  1951. ];
  1952. },
  1953. isValid : function () {
  1954. return isValid(this);
  1955. },
  1956. isDSTShifted : function () {
  1957. if (this._a) {
  1958. return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
  1959. }
  1960. return false;
  1961. },
  1962. parsingFlags : function () {
  1963. return extend({}, this._pf);
  1964. },
  1965. invalidAt: function () {
  1966. return this._pf.overflow;
  1967. },
  1968. utc : function (keepLocalTime) {
  1969. return this.utcOffset(0, keepLocalTime);
  1970. },
  1971. local : function (keepLocalTime) {
  1972. if (this._isUTC) {
  1973. this.utcOffset(0, keepLocalTime);
  1974. this._isUTC = false;
  1975. if (keepLocalTime) {
  1976. this.subtract(this._dateUtcOffset(), 'm');
  1977. }
  1978. }
  1979. return this;
  1980. },
  1981. format : function (inputString) {
  1982. var output = formatMoment(this, inputString || moment.defaultFormat);
  1983. return this.localeData().postformat(output);
  1984. },
  1985. add : createAdder(1, 'add'),
  1986. subtract : createAdder(-1, 'subtract'),
  1987. diff : function (input, units, asFloat) {
  1988. var that = makeAs(input, this),
  1989. zoneDiff = (that.utcOffset() - this.utcOffset()) * 6e4,
  1990. anchor, diff, output, daysAdjust;
  1991. units = normalizeUnits(units);
  1992. if (units === 'year' || units === 'month' || units === 'quarter') {
  1993. output = monthDiff(this, that);
  1994. if (units === 'quarter') {
  1995. output = output / 3;
  1996. } else if (units === 'year') {
  1997. output = output / 12;
  1998. }
  1999. } else {
  2000. diff = this - that;
  2001. output = units === 'second' ? diff / 1e3 : // 1000
  2002. units === 'minute' ? diff / 6e4 : // 1000 * 60
  2003. units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60
  2004. units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
  2005. units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
  2006. diff;
  2007. }
  2008. return asFloat ? output : absRound(output);
  2009. },
  2010. from : function (time, withoutSuffix) {
  2011. return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
  2012. },
  2013. fromNow : function (withoutSuffix) {
  2014. return this.from(moment(), withoutSuffix);
  2015. },
  2016. calendar : function (time) {
  2017. // We want to compare the start of today, vs this.
  2018. // Getting start-of-today depends on whether we're locat/utc/offset
  2019. // or not.
  2020. var now = time || moment(),
  2021. sod = makeAs(now, this).startOf('day'),
  2022. diff = this.diff(sod, 'days', true),
  2023. format = diff < -6 ? 'sameElse' :
  2024. diff < -1 ? 'lastWeek' :
  2025. diff < 0 ? 'lastDay' :
  2026. diff < 1 ? 'sameDay' :
  2027. diff < 2 ? 'nextDay' :
  2028. diff < 7 ? 'nextWeek' : 'sameElse';
  2029. return this.format(this.localeData().calendar(format, this, moment(now)));
  2030. },
  2031. isLeapYear : function () {
  2032. return isLeapYear(this.year());
  2033. },
  2034. isDST : function () {
  2035. return (this.utcOffset() > this.clone().month(0).utcOffset() ||
  2036. this.utcOffset() > this.clone().month(5).utcOffset());
  2037. },
  2038. day : function (input) {
  2039. var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
  2040. if (input != null) {
  2041. input = parseWeekday(input, this.localeData());
  2042. return this.add(input - day, 'd');
  2043. } else {
  2044. return day;
  2045. }
  2046. },
  2047. month : makeAccessor('Month', true),
  2048. startOf : function (units) {
  2049. units = normalizeUnits(units);
  2050. // the following switch intentionally omits break keywords
  2051. // to utilize falling through the cases.
  2052. switch (units) {
  2053. case 'year':
  2054. this.month(0);
  2055. /* falls through */
  2056. case 'quarter':
  2057. case 'month':
  2058. this.date(1);
  2059. /* falls through */
  2060. case 'week':
  2061. case 'isoWeek':
  2062. case 'day':
  2063. this.hours(0);
  2064. /* falls through */
  2065. case 'hour':
  2066. this.minutes(0);
  2067. /* falls through */
  2068. case 'minute':
  2069. this.seconds(0);
  2070. /* falls through */
  2071. case 'second':
  2072. this.milliseconds(0);
  2073. /* falls through */
  2074. }
  2075. // weeks are a special case
  2076. if (units === 'week') {
  2077. this.weekday(0);
  2078. } else if (units === 'isoWeek') {
  2079. this.isoWeekday(1);
  2080. }
  2081. // quarters are also special
  2082. if (units === 'quarter') {
  2083. this.month(Math.floor(this.month() / 3) * 3);
  2084. }
  2085. return this;
  2086. },
  2087. endOf: function (units) {
  2088. units = normalizeUnits(units);
  2089. if (units === undefined || units === 'millisecond') {
  2090. return this;
  2091. }
  2092. return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
  2093. },
  2094. isAfter: function (input, units) {
  2095. var inputMs;
  2096. units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
  2097. if (units === 'millisecond') {
  2098. input = moment.isMoment(input) ? input : moment(input);
  2099. return +this > +input;
  2100. } else {
  2101. inputMs = moment.isMoment(input) ? +input : +moment(input);
  2102. return inputMs < +this.clone().startOf(units);
  2103. }
  2104. },
  2105. isBefore: function (input, units) {
  2106. var inputMs;
  2107. units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
  2108. if (units === 'millisecond') {
  2109. input = moment.isMoment(input) ? input : moment(input);
  2110. return +this < +input;
  2111. } else {
  2112. inputMs = moment.isMoment(input) ? +input : +moment(input);
  2113. return +this.clone().endOf(units) < inputMs;
  2114. }
  2115. },
  2116. isBetween: function (from, to, units) {
  2117. return this.isAfter(from, units) && this.isBefore(to, units);
  2118. },
  2119. isSame: function (input, units) {
  2120. var inputMs;
  2121. units = normalizeUnits(units || 'millisecond');
  2122. if (units === 'millisecond') {
  2123. input = moment.isMoment(input) ? input : moment(input);
  2124. return +this === +input;
  2125. } else {
  2126. inputMs = +moment(input);
  2127. return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
  2128. }
  2129. },
  2130. min: deprecate(
  2131. 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',
  2132. function (other) {
  2133. other = moment.apply(null, arguments);
  2134. return other < this ? this : other;
  2135. }
  2136. ),
  2137. max: deprecate(
  2138. 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',
  2139. function (other) {
  2140. other = moment.apply(null, arguments);
  2141. return other > this ? this : other;
  2142. }
  2143. ),
  2144. zone : deprecate(
  2145. 'moment().zone is deprecated, use moment().utcOffset instead. ' +
  2146. 'https://github.com/moment/moment/issues/1779',
  2147. function (input, keepLocalTime) {
  2148. if (input != null) {
  2149. if (typeof input !== 'string') {
  2150. input = -input;
  2151. }
  2152. this.utcOffset(input, keepLocalTime);
  2153. return this;
  2154. } else {
  2155. return -this.utcOffset();
  2156. }
  2157. }
  2158. ),
  2159. // keepLocalTime = true means only change the timezone, without
  2160. // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
  2161. // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
  2162. // +0200, so we adjust the time as needed, to be valid.
  2163. //
  2164. // Keeping the time actually adds/subtracts (one hour)
  2165. // from the actual represented time. That is why we call updateOffset
  2166. // a second time. In case it wants us to change the offset again
  2167. // _changeInProgress == true case, then we have to adjust, because
  2168. // there is no such time in the given timezone.
  2169. utcOffset : function (input, keepLocalTime) {
  2170. var offset = this._offset || 0,
  2171. localAdjust;
  2172. if (input != null) {
  2173. if (typeof input === 'string') {
  2174. input = utcOffsetFromString(input);
  2175. }
  2176. if (Math.abs(input) < 16) {
  2177. input = input * 60;
  2178. }
  2179. if (!this._isUTC && keepLocalTime) {
  2180. localAdjust = this._dateUtcOffset();
  2181. }
  2182. this._offset = input;
  2183. this._isUTC = true;
  2184. if (localAdjust != null) {
  2185. this.add(localAdjust, 'm');
  2186. }
  2187. if (offset !== input) {
  2188. if (!keepLocalTime || this._changeInProgress) {
  2189. addOrSubtractDurationFromMoment(this,
  2190. moment.duration(input - offset, 'm'), 1, false);
  2191. } else if (!this._changeInProgress) {
  2192. this._changeInProgress = true;
  2193. moment.updateOffset(this, true);
  2194. this._changeInProgress = null;
  2195. }
  2196. }
  2197. return this;
  2198. } else {
  2199. return this._isUTC ? offset : this._dateUtcOffset();
  2200. }
  2201. },
  2202. isLocal : function () {
  2203. return !this._isUTC;
  2204. },
  2205. isUtcOffset : function () {
  2206. return this._isUTC;
  2207. },
  2208. isUtc : function () {
  2209. return this._isUTC && this._offset === 0;
  2210. },
  2211. zoneAbbr : function () {
  2212. return this._isUTC ? 'UTC' : '';
  2213. },
  2214. zoneName : function () {
  2215. return this._isUTC ? 'Coordinated Universal Time' : '';
  2216. },
  2217. parseZone : function () {
  2218. if (this._tzm) {
  2219. this.utcOffset(this._tzm);
  2220. } else if (typeof this._i === 'string') {
  2221. this.utcOffset(utcOffsetFromString(this._i));
  2222. }
  2223. return this;
  2224. },
  2225. hasAlignedHourOffset : function (input) {
  2226. if (!input) {
  2227. input = 0;
  2228. }
  2229. else {
  2230. input = moment(input).utcOffset();
  2231. }
  2232. return (this.utcOffset() - input) % 60 === 0;
  2233. },
  2234. daysInMonth : function () {
  2235. return daysInMonth(this.year(), this.month());
  2236. },
  2237. dayOfYear : function (input) {
  2238. var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
  2239. return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
  2240. },
  2241. quarter : function (input) {
  2242. return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
  2243. },
  2244. weekYear : function (input) {
  2245. var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;
  2246. return input == null ? year : this.add((input - year), 'y');
  2247. },
  2248. isoWeekYear : function (input) {
  2249. var year = weekOfYear(this, 1, 4).year;
  2250. return input == null ? year : this.add((input - year), 'y');
  2251. },
  2252. week : function (input) {
  2253. var week = this.localeData().week(this);
  2254. return input == null ? week : this.add((input - week) * 7, 'd');
  2255. },
  2256. isoWeek : function (input) {
  2257. var week = weekOfYear(this, 1, 4).week;
  2258. return input == null ? week : this.add((input - week) * 7, 'd');
  2259. },
  2260. weekday : function (input) {
  2261. var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
  2262. return input == null ? weekday : this.add(input - weekday, 'd');
  2263. },
  2264. isoWeekday : function (input) {
  2265. // behaves the same as moment#day except
  2266. // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
  2267. // as a setter, sunday should belong to the previous week.
  2268. return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
  2269. },
  2270. isoWeeksInYear : function () {
  2271. return weeksInYear(this.year(), 1, 4);
  2272. },
  2273. weeksInYear : function () {
  2274. var weekInfo = this.localeData()._week;
  2275. return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
  2276. },
  2277. get : function (units) {
  2278. units = normalizeUnits(units);
  2279. return this[units]();
  2280. },
  2281. set : function (units, value) {
  2282. var unit;
  2283. if (typeof units === 'object') {
  2284. for (unit in units) {
  2285. this.set(unit, units[unit]);
  2286. }
  2287. }
  2288. else {
  2289. units = normalizeUnits(units);
  2290. if (typeof this[units] === 'function') {
  2291. this[units](value);
  2292. }
  2293. }
  2294. return this;
  2295. },
  2296. // If passed a locale key, it will set the locale for this
  2297. // instance. Otherwise, it will return the locale configuration
  2298. // variables for this instance.
  2299. locale : function (key) {
  2300. var newLocaleData;
  2301. if (key === undefined) {
  2302. return this._locale._abbr;
  2303. } else {
  2304. newLocaleData = moment.localeData(key);
  2305. if (newLocaleData != null) {
  2306. this._locale = newLocaleData;
  2307. }
  2308. return this;
  2309. }
  2310. },
  2311. lang : deprecate(
  2312. 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
  2313. function (key) {
  2314. if (key === undefined) {
  2315. return this.localeData();
  2316. } else {
  2317. return this.locale(key);
  2318. }
  2319. }
  2320. ),
  2321. localeData : function () {
  2322. return this._locale;
  2323. },
  2324. _dateUtcOffset : function () {
  2325. // On Firefox.24 Date#getTimezoneOffset returns a floating point.
  2326. // https://github.com/moment/moment/pull/1871
  2327. return -Math.round(this._d.getTimezoneOffset() / 15) * 15;
  2328. }
  2329. });
  2330. function rawMonthSetter(mom, value) {
  2331. var dayOfMonth;
  2332. // TODO: Move this out of here!
  2333. if (typeof value === 'string') {
  2334. value = mom.localeData().monthsParse(value);
  2335. // TODO: Another silent failure?
  2336. if (typeof value !== 'number') {
  2337. return mom;
  2338. }
  2339. }
  2340. dayOfMonth = Math.min(mom.date(),
  2341. daysInMonth(mom.year(), value));
  2342. mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
  2343. return mom;
  2344. }
  2345. function rawGetter(mom, unit) {
  2346. return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();
  2347. }
  2348. function rawSetter(mom, unit, value) {
  2349. if (unit === 'Month') {
  2350. return rawMonthSetter(mom, value);
  2351. } else {
  2352. return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  2353. }
  2354. }
  2355. function makeAccessor(unit, keepTime) {
  2356. return function (value) {
  2357. if (value != null) {
  2358. rawSetter(this, unit, value);
  2359. moment.updateOffset(this, keepTime);
  2360. return this;
  2361. } else {
  2362. return rawGetter(this, unit);
  2363. }
  2364. };
  2365. }
  2366. moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false);
  2367. moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false);
  2368. moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false);
  2369. // Setting the hour should keep the time, because the user explicitly
  2370. // specified which hour he wants. So trying to maintain the same hour (in
  2371. // a new timezone) makes sense. Adding/subtracting hours does not follow
  2372. // this rule.
  2373. moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true);
  2374. // moment.fn.month is defined separately
  2375. moment.fn.date = makeAccessor('Date', true);
  2376. moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true));
  2377. moment.fn.year = makeAccessor('FullYear', true);
  2378. moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true));
  2379. // add plural methods
  2380. moment.fn.days = moment.fn.day;
  2381. moment.fn.months = moment.fn.month;
  2382. moment.fn.weeks = moment.fn.week;
  2383. moment.fn.isoWeeks = moment.fn.isoWeek;
  2384. moment.fn.quarters = moment.fn.quarter;
  2385. // add aliased format methods
  2386. moment.fn.toJSON = moment.fn.toISOString;
  2387. // alias isUtc for dev-friendliness
  2388. moment.fn.isUTC = moment.fn.isUtc;
  2389. /************************************
  2390. Duration Prototype
  2391. ************************************/
  2392. function daysToYears (days) {
  2393. // 400 years have 146097 days (taking into account leap year rules)
  2394. return days * 400 / 146097;
  2395. }
  2396. function yearsToDays (years) {
  2397. // years * 365 + absRound(years / 4) -
  2398. // absRound(years / 100) + absRound(years / 400);
  2399. return years * 146097 / 400;
  2400. }
  2401. extend(moment.duration.fn = Duration.prototype, {
  2402. _bubble : function () {
  2403. var milliseconds = this._milliseconds,
  2404. days = this._days,
  2405. months = this._months,
  2406. data = this._data,
  2407. seconds, minutes, hours, years = 0;
  2408. // The following code bubbles up values, see the tests for
  2409. // examples of what that means.
  2410. data.milliseconds = milliseconds % 1000;
  2411. seconds = absRound(milliseconds / 1000);
  2412. data.seconds = seconds % 60;
  2413. minutes = absRound(seconds / 60);
  2414. data.minutes = minutes % 60;
  2415. hours = absRound(minutes / 60);
  2416. data.hours = hours % 24;
  2417. days += absRound(hours / 24);
  2418. // Accurately convert days to years, assume start from year 0.
  2419. years = absRound(daysToYears(days));
  2420. days -= absRound(yearsToDays(years));
  2421. // 30 days to a month
  2422. // TODO (iskren): Use anchor date (like 1st Jan) to compute this.
  2423. months += absRound(days / 30);
  2424. days %= 30;
  2425. // 12 months -> 1 year
  2426. years += absRound(months / 12);
  2427. months %= 12;
  2428. data.days = days;
  2429. data.months = months;
  2430. data.years = years;
  2431. },
  2432. abs : function () {
  2433. this._milliseconds = Math.abs(this._milliseconds);
  2434. this._days = Math.abs(this._days);
  2435. this._months = Math.abs(this._months);
  2436. this._data.milliseconds = Math.abs(this._data.milliseconds);
  2437. this._data.seconds = Math.abs(this._data.seconds);
  2438. this._data.minutes = Math.abs(this._data.minutes);
  2439. this._data.hours = Math.abs(this._data.hours);
  2440. this._data.months = Math.abs(this._data.months);
  2441. this._data.years = Math.abs(this._data.years);
  2442. return this;
  2443. },
  2444. weeks : function () {
  2445. return absRound(this.days() / 7);
  2446. },
  2447. valueOf : function () {
  2448. return this._milliseconds +
  2449. this._days * 864e5 +
  2450. (this._months % 12) * 2592e6 +
  2451. toInt(this._months / 12) * 31536e6;
  2452. },
  2453. humanize : function (withSuffix) {
  2454. var output = relativeTime(this, !withSuffix, this.localeData());
  2455. if (withSuffix) {
  2456. output = this.localeData().pastFuture(+this, output);
  2457. }
  2458. return this.localeData().postformat(output);
  2459. },
  2460. add : function (input, val) {
  2461. // supports only 2.0-style add(1, 's') or add(moment)
  2462. var dur = moment.duration(input, val);
  2463. this._milliseconds += dur._milliseconds;
  2464. this._days += dur._days;
  2465. this._months += dur._months;
  2466. this._bubble();
  2467. return this;
  2468. },
  2469. subtract : function (input, val) {
  2470. var dur = moment.duration(input, val);
  2471. this._milliseconds -= dur._milliseconds;
  2472. this._days -= dur._days;
  2473. this._months -= dur._months;
  2474. this._bubble();
  2475. return this;
  2476. },
  2477. get : function (units) {
  2478. units = normalizeUnits(units);
  2479. return this[units.toLowerCase() + 's']();
  2480. },
  2481. as : function (units) {
  2482. var days, months;
  2483. units = normalizeUnits(units);
  2484. if (units === 'month' || units === 'year') {
  2485. days = this._days + this._milliseconds / 864e5;
  2486. months = this._months + daysToYears(days) * 12;
  2487. return units === 'month' ? months : months / 12;
  2488. } else {
  2489. // handle milliseconds separately because of floating point math errors (issue #1867)
  2490. days = this._days + Math.round(yearsToDays(this._months / 12));
  2491. switch (units) {
  2492. case 'week': return days / 7 + this._milliseconds / 6048e5;
  2493. case 'day': return days + this._milliseconds / 864e5;
  2494. case 'hour': return days * 24 + this._milliseconds / 36e5;
  2495. case 'minute': return days * 24 * 60 + this._milliseconds / 6e4;
  2496. case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000;
  2497. // Math.floor prevents floating point math errors here
  2498. case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds;
  2499. default: throw new Error('Unknown unit ' + units);
  2500. }
  2501. }
  2502. },
  2503. lang : moment.fn.lang,
  2504. locale : moment.fn.locale,
  2505. toIsoString : deprecate(
  2506. 'toIsoString() is deprecated. Please use toISOString() instead ' +
  2507. '(notice the capitals)',
  2508. function () {
  2509. return this.toISOString();
  2510. }
  2511. ),
  2512. toISOString : function () {
  2513. // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
  2514. var years = Math.abs(this.years()),
  2515. months = Math.abs(this.months()),
  2516. days = Math.abs(this.days()),
  2517. hours = Math.abs(this.hours()),
  2518. minutes = Math.abs(this.minutes()),
  2519. seconds = Math.abs(this.seconds() + this.milliseconds() / 1000);
  2520. if (!this.asSeconds()) {
  2521. // this is the same as C#'s (Noda) and python (isodate)...
  2522. // but not other JS (goog.date)
  2523. return 'P0D';
  2524. }
  2525. return (this.asSeconds() < 0 ? '-' : '') +
  2526. 'P' +
  2527. (years ? years + 'Y' : '') +
  2528. (months ? months + 'M' : '') +
  2529. (days ? days + 'D' : '') +
  2530. ((hours || minutes || seconds) ? 'T' : '') +
  2531. (hours ? hours + 'H' : '') +
  2532. (minutes ? minutes + 'M' : '') +
  2533. (seconds ? seconds + 'S' : '');
  2534. },
  2535. localeData : function () {
  2536. return this._locale;
  2537. },
  2538. toJSON : function () {
  2539. return this.toISOString();
  2540. }
  2541. });
  2542. moment.duration.fn.toString = moment.duration.fn.toISOString;
  2543. function makeDurationGetter(name) {
  2544. moment.duration.fn[name] = function () {
  2545. return this._data[name];
  2546. };
  2547. }
  2548. for (i in unitMillisecondFactors) {
  2549. if (hasOwnProp(unitMillisecondFactors, i)) {
  2550. makeDurationGetter(i.toLowerCase());
  2551. }
  2552. }
  2553. moment.duration.fn.asMilliseconds = function () {
  2554. return this.as('ms');
  2555. };
  2556. moment.duration.fn.asSeconds = function () {
  2557. return this.as('s');
  2558. };
  2559. moment.duration.fn.asMinutes = function () {
  2560. return this.as('m');
  2561. };
  2562. moment.duration.fn.asHours = function () {
  2563. return this.as('h');
  2564. };
  2565. moment.duration.fn.asDays = function () {
  2566. return this.as('d');
  2567. };
  2568. moment.duration.fn.asWeeks = function () {
  2569. return this.as('weeks');
  2570. };
  2571. moment.duration.fn.asMonths = function () {
  2572. return this.as('M');
  2573. };
  2574. moment.duration.fn.asYears = function () {
  2575. return this.as('y');
  2576. };
  2577. /************************************
  2578. Default Locale
  2579. ************************************/
  2580. // Set default locale, other locale will inherit from English.
  2581. moment.locale('en', {
  2582. ordinalParse: /\d{1,2}(th|st|nd|rd)/,
  2583. ordinal : function (number) {
  2584. var b = number % 10,
  2585. output = (toInt(number % 100 / 10) === 1) ? 'th' :
  2586. (b === 1) ? 'st' :
  2587. (b === 2) ? 'nd' :
  2588. (b === 3) ? 'rd' : 'th';
  2589. return number + output;
  2590. }
  2591. });
  2592. // moment.js locale configuration
  2593. // locale : afrikaans (af)
  2594. // author : Werner Mollentze : https://github.com/wernerm
  2595. (function (factory) {
  2596. factory(moment);
  2597. }(function (moment) {
  2598. return moment.defineLocale('af', {
  2599. months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),
  2600. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
  2601. weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),
  2602. weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
  2603. weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
  2604. meridiemParse: /vm|nm/i,
  2605. isPM : function (input) {
  2606. return /^nm$/i.test(input);
  2607. },
  2608. meridiem : function (hours, minutes, isLower) {
  2609. if (hours < 12) {
  2610. return isLower ? 'vm' : 'VM';
  2611. } else {
  2612. return isLower ? 'nm' : 'NM';
  2613. }
  2614. },
  2615. longDateFormat : {
  2616. LT : 'HH:mm',
  2617. LTS : 'LT:ss',
  2618. L : 'DD/MM/YYYY',
  2619. LL : 'D MMMM YYYY',
  2620. LLL : 'D MMMM YYYY LT',
  2621. LLLL : 'dddd, D MMMM YYYY LT'
  2622. },
  2623. calendar : {
  2624. sameDay : '[Vandag om] LT',
  2625. nextDay : '[Môre om] LT',
  2626. nextWeek : 'dddd [om] LT',
  2627. lastDay : '[Gister om] LT',
  2628. lastWeek : '[Laas] dddd [om] LT',
  2629. sameElse : 'L'
  2630. },
  2631. relativeTime : {
  2632. future : 'oor %s',
  2633. past : '%s gelede',
  2634. s : '\'n paar sekondes',
  2635. m : '\'n minuut',
  2636. mm : '%d minute',
  2637. h : '\'n uur',
  2638. hh : '%d ure',
  2639. d : '\'n dag',
  2640. dd : '%d dae',
  2641. M : '\'n maand',
  2642. MM : '%d maande',
  2643. y : '\'n jaar',
  2644. yy : '%d jaar'
  2645. },
  2646. ordinalParse: /\d{1,2}(ste|de)/,
  2647. ordinal : function (number) {
  2648. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
  2649. },
  2650. week : {
  2651. dow : 1, // Maandag is die eerste dag van die week.
  2652. doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
  2653. }
  2654. });
  2655. }));
  2656. // moment.js locale configuration
  2657. // locale : Moroccan Arabic (ar-ma)
  2658. // author : ElFadili Yassine : https://github.com/ElFadiliY
  2659. // author : Abdel Said : https://github.com/abdelsaid
  2660. (function (factory) {
  2661. factory(moment);
  2662. }(function (moment) {
  2663. return moment.defineLocale('ar-ma', {
  2664. months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  2665. monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),
  2666. weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2667. weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
  2668. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2669. longDateFormat : {
  2670. LT : 'HH:mm',
  2671. LTS : 'LT:ss',
  2672. L : 'DD/MM/YYYY',
  2673. LL : 'D MMMM YYYY',
  2674. LLL : 'D MMMM YYYY LT',
  2675. LLLL : 'dddd D MMMM YYYY LT'
  2676. },
  2677. calendar : {
  2678. sameDay: '[اليوم على الساعة] LT',
  2679. nextDay: '[غدا على الساعة] LT',
  2680. nextWeek: 'dddd [على الساعة] LT',
  2681. lastDay: '[أمس على الساعة] LT',
  2682. lastWeek: 'dddd [على الساعة] LT',
  2683. sameElse: 'L'
  2684. },
  2685. relativeTime : {
  2686. future : 'في %s',
  2687. past : 'منذ %s',
  2688. s : 'ثوان',
  2689. m : 'دقيقة',
  2690. mm : '%d دقائق',
  2691. h : 'ساعة',
  2692. hh : '%d ساعات',
  2693. d : 'يوم',
  2694. dd : '%d أيام',
  2695. M : 'شهر',
  2696. MM : '%d أشهر',
  2697. y : 'سنة',
  2698. yy : '%d سنوات'
  2699. },
  2700. week : {
  2701. dow : 6, // Saturday is the first day of the week.
  2702. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2703. }
  2704. });
  2705. }));
  2706. // moment.js locale configuration
  2707. // locale : Arabic Saudi Arabia (ar-sa)
  2708. // author : Suhail Alkowaileet : https://github.com/xsoh
  2709. (function (factory) {
  2710. factory(moment);
  2711. }(function (moment) {
  2712. var symbolMap = {
  2713. '1': '١',
  2714. '2': '٢',
  2715. '3': '٣',
  2716. '4': '٤',
  2717. '5': '٥',
  2718. '6': '٦',
  2719. '7': '٧',
  2720. '8': '٨',
  2721. '9': '٩',
  2722. '0': '٠'
  2723. }, numberMap = {
  2724. '١': '1',
  2725. '٢': '2',
  2726. '٣': '3',
  2727. '٤': '4',
  2728. '٥': '5',
  2729. '٦': '6',
  2730. '٧': '7',
  2731. '٨': '8',
  2732. '٩': '9',
  2733. '٠': '0'
  2734. };
  2735. return moment.defineLocale('ar-sa', {
  2736. months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2737. monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2738. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2739. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  2740. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2741. longDateFormat : {
  2742. LT : 'HH:mm',
  2743. LTS : 'HH:mm:ss',
  2744. L : 'DD/MM/YYYY',
  2745. LL : 'D MMMM YYYY',
  2746. LLL : 'D MMMM YYYY LT',
  2747. LLLL : 'dddd D MMMM YYYY LT'
  2748. },
  2749. meridiemParse: /ص|م/,
  2750. isPM : function (input) {
  2751. return 'م' === input;
  2752. },
  2753. meridiem : function (hour, minute, isLower) {
  2754. if (hour < 12) {
  2755. return 'ص';
  2756. } else {
  2757. return 'م';
  2758. }
  2759. },
  2760. calendar : {
  2761. sameDay: '[اليوم على الساعة] LT',
  2762. nextDay: '[غدا على الساعة] LT',
  2763. nextWeek: 'dddd [على الساعة] LT',
  2764. lastDay: '[أمس على الساعة] LT',
  2765. lastWeek: 'dddd [على الساعة] LT',
  2766. sameElse: 'L'
  2767. },
  2768. relativeTime : {
  2769. future : 'في %s',
  2770. past : 'منذ %s',
  2771. s : 'ثوان',
  2772. m : 'دقيقة',
  2773. mm : '%d دقائق',
  2774. h : 'ساعة',
  2775. hh : '%d ساعات',
  2776. d : 'يوم',
  2777. dd : '%d أيام',
  2778. M : 'شهر',
  2779. MM : '%d أشهر',
  2780. y : 'سنة',
  2781. yy : '%d سنوات'
  2782. },
  2783. preparse: function (string) {
  2784. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  2785. return numberMap[match];
  2786. }).replace(/،/g, ',');
  2787. },
  2788. postformat: function (string) {
  2789. return string.replace(/\d/g, function (match) {
  2790. return symbolMap[match];
  2791. }).replace(/,/g, '،');
  2792. },
  2793. week : {
  2794. dow : 6, // Saturday is the first day of the week.
  2795. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2796. }
  2797. });
  2798. }));
  2799. // moment.js locale configuration
  2800. // locale : Tunisian Arabic (ar-tn)
  2801. (function (factory) {
  2802. factory(moment);
  2803. }(function (moment) {
  2804. return moment.defineLocale('ar-tn', {
  2805. months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2806. monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
  2807. weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2808. weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  2809. weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2810. longDateFormat: {
  2811. LT: 'HH:mm',
  2812. LTS: 'LT:ss',
  2813. L: 'DD/MM/YYYY',
  2814. LL: 'D MMMM YYYY',
  2815. LLL: 'D MMMM YYYY LT',
  2816. LLLL: 'dddd D MMMM YYYY LT'
  2817. },
  2818. calendar: {
  2819. sameDay: '[اليوم على الساعة] LT',
  2820. nextDay: '[غدا على الساعة] LT',
  2821. nextWeek: 'dddd [على الساعة] LT',
  2822. lastDay: '[أمس على الساعة] LT',
  2823. lastWeek: 'dddd [على الساعة] LT',
  2824. sameElse: 'L'
  2825. },
  2826. relativeTime: {
  2827. future: 'في %s',
  2828. past: 'منذ %s',
  2829. s: 'ثوان',
  2830. m: 'دقيقة',
  2831. mm: '%d دقائق',
  2832. h: 'ساعة',
  2833. hh: '%d ساعات',
  2834. d: 'يوم',
  2835. dd: '%d أيام',
  2836. M: 'شهر',
  2837. MM: '%d أشهر',
  2838. y: 'سنة',
  2839. yy: '%d سنوات'
  2840. },
  2841. week: {
  2842. dow: 1, // Monday is the first day of the week.
  2843. doy: 4 // The week that contains Jan 4th is the first week of the year.
  2844. }
  2845. });
  2846. }));
  2847. // moment.js locale configuration
  2848. // Locale: Arabic (ar)
  2849. // Author: Abdel Said: https://github.com/abdelsaid
  2850. // Changes in months, weekdays: Ahmed Elkhatib
  2851. // Native plural forms: forabi https://github.com/forabi
  2852. (function (factory) {
  2853. factory(moment);
  2854. }(function (moment) {
  2855. var symbolMap = {
  2856. '1': '١',
  2857. '2': '٢',
  2858. '3': '٣',
  2859. '4': '٤',
  2860. '5': '٥',
  2861. '6': '٦',
  2862. '7': '٧',
  2863. '8': '٨',
  2864. '9': '٩',
  2865. '0': '٠'
  2866. }, numberMap = {
  2867. '١': '1',
  2868. '٢': '2',
  2869. '٣': '3',
  2870. '٤': '4',
  2871. '٥': '5',
  2872. '٦': '6',
  2873. '٧': '7',
  2874. '٨': '8',
  2875. '٩': '9',
  2876. '٠': '0'
  2877. }, pluralForm = function (n) {
  2878. return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;
  2879. }, plurals = {
  2880. s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],
  2881. m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],
  2882. h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],
  2883. d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],
  2884. M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],
  2885. y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']
  2886. }, pluralize = function (u) {
  2887. return function (number, withoutSuffix, string, isFuture) {
  2888. var f = pluralForm(number),
  2889. str = plurals[u][pluralForm(number)];
  2890. if (f === 2) {
  2891. str = str[withoutSuffix ? 0 : 1];
  2892. }
  2893. return str.replace(/%d/i, number);
  2894. };
  2895. }, months = [
  2896. 'كانون الثاني يناير',
  2897. 'شباط فبراير',
  2898. 'آذار مارس',
  2899. 'نيسان أبريل',
  2900. 'أيار مايو',
  2901. 'حزيران يونيو',
  2902. 'تموز يوليو',
  2903. 'آب أغسطس',
  2904. 'أيلول سبتمبر',
  2905. 'تشرين الأول أكتوبر',
  2906. 'تشرين الثاني نوفمبر',
  2907. 'كانون الأول ديسمبر'
  2908. ];
  2909. return moment.defineLocale('ar', {
  2910. months : months,
  2911. monthsShort : months,
  2912. weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
  2913. weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
  2914. weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
  2915. longDateFormat : {
  2916. LT : 'HH:mm',
  2917. LTS : 'HH:mm:ss',
  2918. L : 'DD/MM/YYYY',
  2919. LL : 'D MMMM YYYY',
  2920. LLL : 'D MMMM YYYY LT',
  2921. LLLL : 'dddd D MMMM YYYY LT'
  2922. },
  2923. meridiemParse: /ص|م/,
  2924. isPM : function (input) {
  2925. return 'م' === input;
  2926. },
  2927. meridiem : function (hour, minute, isLower) {
  2928. if (hour < 12) {
  2929. return 'ص';
  2930. } else {
  2931. return 'م';
  2932. }
  2933. },
  2934. calendar : {
  2935. sameDay: '[اليوم عند الساعة] LT',
  2936. nextDay: '[غدًا عند الساعة] LT',
  2937. nextWeek: 'dddd [عند الساعة] LT',
  2938. lastDay: '[أمس عند الساعة] LT',
  2939. lastWeek: 'dddd [عند الساعة] LT',
  2940. sameElse: 'L'
  2941. },
  2942. relativeTime : {
  2943. future : 'بعد %s',
  2944. past : 'منذ %s',
  2945. s : pluralize('s'),
  2946. m : pluralize('m'),
  2947. mm : pluralize('m'),
  2948. h : pluralize('h'),
  2949. hh : pluralize('h'),
  2950. d : pluralize('d'),
  2951. dd : pluralize('d'),
  2952. M : pluralize('M'),
  2953. MM : pluralize('M'),
  2954. y : pluralize('y'),
  2955. yy : pluralize('y')
  2956. },
  2957. preparse: function (string) {
  2958. return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
  2959. return numberMap[match];
  2960. }).replace(/،/g, ',');
  2961. },
  2962. postformat: function (string) {
  2963. return string.replace(/\d/g, function (match) {
  2964. return symbolMap[match];
  2965. }).replace(/,/g, '،');
  2966. },
  2967. week : {
  2968. dow : 6, // Saturday is the first day of the week.
  2969. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2970. }
  2971. });
  2972. }));
  2973. // moment.js locale configuration
  2974. // locale : azerbaijani (az)
  2975. // author : topchiyev : https://github.com/topchiyev
  2976. (function (factory) {
  2977. factory(moment);
  2978. }(function (moment) {
  2979. var suffixes = {
  2980. 1: '-inci',
  2981. 5: '-inci',
  2982. 8: '-inci',
  2983. 70: '-inci',
  2984. 80: '-inci',
  2985. 2: '-nci',
  2986. 7: '-nci',
  2987. 20: '-nci',
  2988. 50: '-nci',
  2989. 3: '-üncü',
  2990. 4: '-üncü',
  2991. 100: '-üncü',
  2992. 6: '-ncı',
  2993. 9: '-uncu',
  2994. 10: '-uncu',
  2995. 30: '-uncu',
  2996. 60: '-ıncı',
  2997. 90: '-ıncı'
  2998. };
  2999. return moment.defineLocale('az', {
  3000. months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),
  3001. monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
  3002. weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),
  3003. weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
  3004. weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
  3005. longDateFormat : {
  3006. LT : 'HH:mm',
  3007. LTS : 'LT:ss',
  3008. L : 'DD.MM.YYYY',
  3009. LL : 'D MMMM YYYY',
  3010. LLL : 'D MMMM YYYY LT',
  3011. LLLL : 'dddd, D MMMM YYYY LT'
  3012. },
  3013. calendar : {
  3014. sameDay : '[bugün saat] LT',
  3015. nextDay : '[sabah saat] LT',
  3016. nextWeek : '[gələn həftə] dddd [saat] LT',
  3017. lastDay : '[dünən] LT',
  3018. lastWeek : '[keçən həftə] dddd [saat] LT',
  3019. sameElse : 'L'
  3020. },
  3021. relativeTime : {
  3022. future : '%s sonra',
  3023. past : '%s əvvəl',
  3024. s : 'birneçə saniyyə',
  3025. m : 'bir dəqiqə',
  3026. mm : '%d dəqiqə',
  3027. h : 'bir saat',
  3028. hh : '%d saat',
  3029. d : 'bir gün',
  3030. dd : '%d gün',
  3031. M : 'bir ay',
  3032. MM : '%d ay',
  3033. y : 'bir il',
  3034. yy : '%d il'
  3035. },
  3036. meridiemParse: /gecə|səhər|gündüz|axşam/,
  3037. isPM : function (input) {
  3038. return /^(gündüz|axşam)$/.test(input);
  3039. },
  3040. meridiem : function (hour, minute, isLower) {
  3041. if (hour < 4) {
  3042. return 'gecə';
  3043. } else if (hour < 12) {
  3044. return 'səhər';
  3045. } else if (hour < 17) {
  3046. return 'gündüz';
  3047. } else {
  3048. return 'axşam';
  3049. }
  3050. },
  3051. ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
  3052. ordinal : function (number) {
  3053. if (number === 0) { // special case for zero
  3054. return number + '-ıncı';
  3055. }
  3056. var a = number % 10,
  3057. b = number % 100 - a,
  3058. c = number >= 100 ? 100 : null;
  3059. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  3060. },
  3061. week : {
  3062. dow : 1, // Monday is the first day of the week.
  3063. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3064. }
  3065. });
  3066. }));
  3067. // moment.js locale configuration
  3068. // locale : belarusian (be)
  3069. // author : Dmitry Demidov : https://github.com/demidov91
  3070. // author: Praleska: http://praleska.pro/
  3071. // Author : Menelion Elensúle : https://github.com/Oire
  3072. (function (factory) {
  3073. factory(moment);
  3074. }(function (moment) {
  3075. function plural(word, num) {
  3076. var forms = word.split('_');
  3077. 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]);
  3078. }
  3079. function relativeTimeWithPlural(number, withoutSuffix, key) {
  3080. var format = {
  3081. 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
  3082. 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
  3083. 'dd': 'дзень_дні_дзён',
  3084. 'MM': 'месяц_месяцы_месяцаў',
  3085. 'yy': 'год_гады_гадоў'
  3086. };
  3087. if (key === 'm') {
  3088. return withoutSuffix ? 'хвіліна' : 'хвіліну';
  3089. }
  3090. else if (key === 'h') {
  3091. return withoutSuffix ? 'гадзіна' : 'гадзіну';
  3092. }
  3093. else {
  3094. return number + ' ' + plural(format[key], +number);
  3095. }
  3096. }
  3097. function monthsCaseReplace(m, format) {
  3098. var months = {
  3099. 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'),
  3100. 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_')
  3101. },
  3102. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  3103. 'accusative' :
  3104. 'nominative';
  3105. return months[nounCase][m.month()];
  3106. }
  3107. function weekdaysCaseReplace(m, format) {
  3108. var weekdays = {
  3109. 'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),
  3110. 'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_')
  3111. },
  3112. nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ?
  3113. 'accusative' :
  3114. 'nominative';
  3115. return weekdays[nounCase][m.day()];
  3116. }
  3117. return moment.defineLocale('be', {
  3118. months : monthsCaseReplace,
  3119. monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
  3120. weekdays : weekdaysCaseReplace,
  3121. weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  3122. weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
  3123. longDateFormat : {
  3124. LT : 'HH:mm',
  3125. LTS : 'LT:ss',
  3126. L : 'DD.MM.YYYY',
  3127. LL : 'D MMMM YYYY г.',
  3128. LLL : 'D MMMM YYYY г., LT',
  3129. LLLL : 'dddd, D MMMM YYYY г., LT'
  3130. },
  3131. calendar : {
  3132. sameDay: '[Сёння ў] LT',
  3133. nextDay: '[Заўтра ў] LT',
  3134. lastDay: '[Учора ў] LT',
  3135. nextWeek: function () {
  3136. return '[У] dddd [ў] LT';
  3137. },
  3138. lastWeek: function () {
  3139. switch (this.day()) {
  3140. case 0:
  3141. case 3:
  3142. case 5:
  3143. case 6:
  3144. return '[У мінулую] dddd [ў] LT';
  3145. case 1:
  3146. case 2:
  3147. case 4:
  3148. return '[У мінулы] dddd [ў] LT';
  3149. }
  3150. },
  3151. sameElse: 'L'
  3152. },
  3153. relativeTime : {
  3154. future : 'праз %s',
  3155. past : '%s таму',
  3156. s : 'некалькі секунд',
  3157. m : relativeTimeWithPlural,
  3158. mm : relativeTimeWithPlural,
  3159. h : relativeTimeWithPlural,
  3160. hh : relativeTimeWithPlural,
  3161. d : 'дзень',
  3162. dd : relativeTimeWithPlural,
  3163. M : 'месяц',
  3164. MM : relativeTimeWithPlural,
  3165. y : 'год',
  3166. yy : relativeTimeWithPlural
  3167. },
  3168. meridiemParse: /ночы|раніцы|дня|вечара/,
  3169. isPM : function (input) {
  3170. return /^(дня|вечара)$/.test(input);
  3171. },
  3172. meridiem : function (hour, minute, isLower) {
  3173. if (hour < 4) {
  3174. return 'ночы';
  3175. } else if (hour < 12) {
  3176. return 'раніцы';
  3177. } else if (hour < 17) {
  3178. return 'дня';
  3179. } else {
  3180. return 'вечара';
  3181. }
  3182. },
  3183. ordinalParse: /\d{1,2}-(і|ы|га)/,
  3184. ordinal: function (number, period) {
  3185. switch (period) {
  3186. case 'M':
  3187. case 'd':
  3188. case 'DDD':
  3189. case 'w':
  3190. case 'W':
  3191. return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';
  3192. case 'D':
  3193. return number + '-га';
  3194. default:
  3195. return number;
  3196. }
  3197. },
  3198. week : {
  3199. dow : 1, // Monday is the first day of the week.
  3200. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3201. }
  3202. });
  3203. }));
  3204. // moment.js locale configuration
  3205. // locale : bulgarian (bg)
  3206. // author : Krasen Borisov : https://github.com/kraz
  3207. (function (factory) {
  3208. factory(moment);
  3209. }(function (moment) {
  3210. return moment.defineLocale('bg', {
  3211. months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),
  3212. monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
  3213. weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),
  3214. weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
  3215. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  3216. longDateFormat : {
  3217. LT : 'H:mm',
  3218. LTS : 'LT:ss',
  3219. L : 'D.MM.YYYY',
  3220. LL : 'D MMMM YYYY',
  3221. LLL : 'D MMMM YYYY LT',
  3222. LLLL : 'dddd, D MMMM YYYY LT'
  3223. },
  3224. calendar : {
  3225. sameDay : '[Днес в] LT',
  3226. nextDay : '[Утре в] LT',
  3227. nextWeek : 'dddd [в] LT',
  3228. lastDay : '[Вчера в] LT',
  3229. lastWeek : function () {
  3230. switch (this.day()) {
  3231. case 0:
  3232. case 3:
  3233. case 6:
  3234. return '[В изминалата] dddd [в] LT';
  3235. case 1:
  3236. case 2:
  3237. case 4:
  3238. case 5:
  3239. return '[В изминалия] dddd [в] LT';
  3240. }
  3241. },
  3242. sameElse : 'L'
  3243. },
  3244. relativeTime : {
  3245. future : 'след %s',
  3246. past : 'преди %s',
  3247. s : 'няколко секунди',
  3248. m : 'минута',
  3249. mm : '%d минути',
  3250. h : 'час',
  3251. hh : '%d часа',
  3252. d : 'ден',
  3253. dd : '%d дни',
  3254. M : 'месец',
  3255. MM : '%d месеца',
  3256. y : 'година',
  3257. yy : '%d години'
  3258. },
  3259. ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  3260. ordinal : function (number) {
  3261. var lastDigit = number % 10,
  3262. last2Digits = number % 100;
  3263. if (number === 0) {
  3264. return number + '-ев';
  3265. } else if (last2Digits === 0) {
  3266. return number + '-ен';
  3267. } else if (last2Digits > 10 && last2Digits < 20) {
  3268. return number + '-ти';
  3269. } else if (lastDigit === 1) {
  3270. return number + '-ви';
  3271. } else if (lastDigit === 2) {
  3272. return number + '-ри';
  3273. } else if (lastDigit === 7 || lastDigit === 8) {
  3274. return number + '-ми';
  3275. } else {
  3276. return number + '-ти';
  3277. }
  3278. },
  3279. week : {
  3280. dow : 1, // Monday is the first day of the week.
  3281. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3282. }
  3283. });
  3284. }));
  3285. // moment.js locale configuration
  3286. // locale : Bengali (bn)
  3287. // author : Kaushik Gandhi : https://github.com/kaushikgandhi
  3288. (function (factory) {
  3289. factory(moment);
  3290. }(function (moment) {
  3291. var symbolMap = {
  3292. '1': '১',
  3293. '2': '২',
  3294. '3': '৩',
  3295. '4': '৪',
  3296. '5': '৫',
  3297. '6': '৬',
  3298. '7': '৭',
  3299. '8': '৮',
  3300. '9': '৯',
  3301. '0': '০'
  3302. },
  3303. numberMap = {
  3304. '১': '1',
  3305. '২': '2',
  3306. '৩': '3',
  3307. '৪': '4',
  3308. '৫': '5',
  3309. '৬': '6',
  3310. '৭': '7',
  3311. '৮': '8',
  3312. '৯': '9',
  3313. '০': '0'
  3314. };
  3315. return moment.defineLocale('bn', {
  3316. months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),
  3317. monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'),
  3318. weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split('_'),
  3319. weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split('_'),
  3320. weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
  3321. longDateFormat : {
  3322. LT : 'A h:mm সময়',
  3323. LTS : 'A h:mm:ss সময়',
  3324. L : 'DD/MM/YYYY',
  3325. LL : 'D MMMM YYYY',
  3326. LLL : 'D MMMM YYYY, LT',
  3327. LLLL : 'dddd, D MMMM YYYY, LT'
  3328. },
  3329. calendar : {
  3330. sameDay : '[আজ] LT',
  3331. nextDay : '[আগামীকাল] LT',
  3332. nextWeek : 'dddd, LT',
  3333. lastDay : '[গতকাল] LT',
  3334. lastWeek : '[গত] dddd, LT',
  3335. sameElse : 'L'
  3336. },
  3337. relativeTime : {
  3338. future : '%s পরে',
  3339. past : '%s আগে',
  3340. s : 'কএক সেকেন্ড',
  3341. m : 'এক মিনিট',
  3342. mm : '%d মিনিট',
  3343. h : 'এক ঘন্টা',
  3344. hh : '%d ঘন্টা',
  3345. d : 'এক দিন',
  3346. dd : '%d দিন',
  3347. M : 'এক মাস',
  3348. MM : '%d মাস',
  3349. y : 'এক বছর',
  3350. yy : '%d বছর'
  3351. },
  3352. preparse: function (string) {
  3353. return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
  3354. return numberMap[match];
  3355. });
  3356. },
  3357. postformat: function (string) {
  3358. return string.replace(/\d/g, function (match) {
  3359. return symbolMap[match];
  3360. });
  3361. },
  3362. meridiemParse: /রাত|শকাল|দুপুর|বিকেল|রাত/,
  3363. isPM: function (input) {
  3364. return /^(দুপুর|বিকেল|রাত)$/.test(input);
  3365. },
  3366. //Bengali is a vast language its spoken
  3367. //in different forms in various parts of the world.
  3368. //I have just generalized with most common one used
  3369. meridiem : function (hour, minute, isLower) {
  3370. if (hour < 4) {
  3371. return 'রাত';
  3372. } else if (hour < 10) {
  3373. return 'শকাল';
  3374. } else if (hour < 17) {
  3375. return 'দুপুর';
  3376. } else if (hour < 20) {
  3377. return 'বিকেল';
  3378. } else {
  3379. return 'রাত';
  3380. }
  3381. },
  3382. week : {
  3383. dow : 0, // Sunday is the first day of the week.
  3384. doy : 6 // The week that contains Jan 1st is the first week of the year.
  3385. }
  3386. });
  3387. }));
  3388. // moment.js locale configuration
  3389. // locale : tibetan (bo)
  3390. // author : Thupten N. Chakrishar : https://github.com/vajradog
  3391. (function (factory) {
  3392. factory(moment);
  3393. }(function (moment) {
  3394. var symbolMap = {
  3395. '1': '༡',
  3396. '2': '༢',
  3397. '3': '༣',
  3398. '4': '༤',
  3399. '5': '༥',
  3400. '6': '༦',
  3401. '7': '༧',
  3402. '8': '༨',
  3403. '9': '༩',
  3404. '0': '༠'
  3405. },
  3406. numberMap = {
  3407. '༡': '1',
  3408. '༢': '2',
  3409. '༣': '3',
  3410. '༤': '4',
  3411. '༥': '5',
  3412. '༦': '6',
  3413. '༧': '7',
  3414. '༨': '8',
  3415. '༩': '9',
  3416. '༠': '0'
  3417. };
  3418. return moment.defineLocale('bo', {
  3419. months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  3420. monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),
  3421. weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),
  3422. weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  3423. weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
  3424. longDateFormat : {
  3425. LT : 'A h:mm',
  3426. LTS : 'LT:ss',
  3427. L : 'DD/MM/YYYY',
  3428. LL : 'D MMMM YYYY',
  3429. LLL : 'D MMMM YYYY, LT',
  3430. LLLL : 'dddd, D MMMM YYYY, LT'
  3431. },
  3432. calendar : {
  3433. sameDay : '[དི་རིང] LT',
  3434. nextDay : '[སང་ཉིན] LT',
  3435. nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',
  3436. lastDay : '[ཁ་སང] LT',
  3437. lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
  3438. sameElse : 'L'
  3439. },
  3440. relativeTime : {
  3441. future : '%s ལ་',
  3442. past : '%s སྔན་ལ',
  3443. s : 'ལམ་སང',
  3444. m : 'སྐར་མ་གཅིག',
  3445. mm : '%d སྐར་མ',
  3446. h : 'ཆུ་ཚོད་གཅིག',
  3447. hh : '%d ཆུ་ཚོད',
  3448. d : 'ཉིན་གཅིག',
  3449. dd : '%d ཉིན་',
  3450. M : 'ཟླ་བ་གཅིག',
  3451. MM : '%d ཟླ་བ',
  3452. y : 'ལོ་གཅིག',
  3453. yy : '%d ལོ'
  3454. },
  3455. preparse: function (string) {
  3456. return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
  3457. return numberMap[match];
  3458. });
  3459. },
  3460. postformat: function (string) {
  3461. return string.replace(/\d/g, function (match) {
  3462. return symbolMap[match];
  3463. });
  3464. },
  3465. meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
  3466. isPM: function (input) {
  3467. return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input);
  3468. },
  3469. meridiem : function (hour, minute, isLower) {
  3470. if (hour < 4) {
  3471. return 'མཚན་མོ';
  3472. } else if (hour < 10) {
  3473. return 'ཞོགས་ཀས';
  3474. } else if (hour < 17) {
  3475. return 'ཉིན་གུང';
  3476. } else if (hour < 20) {
  3477. return 'དགོང་དག';
  3478. } else {
  3479. return 'མཚན་མོ';
  3480. }
  3481. },
  3482. week : {
  3483. dow : 0, // Sunday is the first day of the week.
  3484. doy : 6 // The week that contains Jan 1st is the first week of the year.
  3485. }
  3486. });
  3487. }));
  3488. // moment.js locale configuration
  3489. // locale : breton (br)
  3490. // author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
  3491. (function (factory) {
  3492. factory(moment);
  3493. }(function (moment) {
  3494. function relativeTimeWithMutation(number, withoutSuffix, key) {
  3495. var format = {
  3496. 'mm': 'munutenn',
  3497. 'MM': 'miz',
  3498. 'dd': 'devezh'
  3499. };
  3500. return number + ' ' + mutation(format[key], number);
  3501. }
  3502. function specialMutationForYears(number) {
  3503. switch (lastNumber(number)) {
  3504. case 1:
  3505. case 3:
  3506. case 4:
  3507. case 5:
  3508. case 9:
  3509. return number + ' bloaz';
  3510. default:
  3511. return number + ' vloaz';
  3512. }
  3513. }
  3514. function lastNumber(number) {
  3515. if (number > 9) {
  3516. return lastNumber(number % 10);
  3517. }
  3518. return number;
  3519. }
  3520. function mutation(text, number) {
  3521. if (number === 2) {
  3522. return softMutation(text);
  3523. }
  3524. return text;
  3525. }
  3526. function softMutation(text) {
  3527. var mutationTable = {
  3528. 'm': 'v',
  3529. 'b': 'v',
  3530. 'd': 'z'
  3531. };
  3532. if (mutationTable[text.charAt(0)] === undefined) {
  3533. return text;
  3534. }
  3535. return mutationTable[text.charAt(0)] + text.substring(1);
  3536. }
  3537. return moment.defineLocale('br', {
  3538. months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),
  3539. monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
  3540. weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'),
  3541. weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
  3542. weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
  3543. longDateFormat : {
  3544. LT : 'h[e]mm A',
  3545. LTS : 'h[e]mm:ss A',
  3546. L : 'DD/MM/YYYY',
  3547. LL : 'D [a viz] MMMM YYYY',
  3548. LLL : 'D [a viz] MMMM YYYY LT',
  3549. LLLL : 'dddd, D [a viz] MMMM YYYY LT'
  3550. },
  3551. calendar : {
  3552. sameDay : '[Hiziv da] LT',
  3553. nextDay : '[Warc\'hoazh da] LT',
  3554. nextWeek : 'dddd [da] LT',
  3555. lastDay : '[Dec\'h da] LT',
  3556. lastWeek : 'dddd [paset da] LT',
  3557. sameElse : 'L'
  3558. },
  3559. relativeTime : {
  3560. future : 'a-benn %s',
  3561. past : '%s \'zo',
  3562. s : 'un nebeud segondennoù',
  3563. m : 'ur vunutenn',
  3564. mm : relativeTimeWithMutation,
  3565. h : 'un eur',
  3566. hh : '%d eur',
  3567. d : 'un devezh',
  3568. dd : relativeTimeWithMutation,
  3569. M : 'ur miz',
  3570. MM : relativeTimeWithMutation,
  3571. y : 'ur bloaz',
  3572. yy : specialMutationForYears
  3573. },
  3574. ordinalParse: /\d{1,2}(añ|vet)/,
  3575. ordinal : function (number) {
  3576. var output = (number === 1) ? 'añ' : 'vet';
  3577. return number + output;
  3578. },
  3579. week : {
  3580. dow : 1, // Monday is the first day of the week.
  3581. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3582. }
  3583. });
  3584. }));
  3585. // moment.js locale configuration
  3586. // locale : bosnian (bs)
  3587. // author : Nedim Cholich : https://github.com/frontyard
  3588. // based on (hr) translation by Bojan Marković
  3589. (function (factory) {
  3590. factory(moment);
  3591. }(function (moment) {
  3592. function translate(number, withoutSuffix, key) {
  3593. var result = number + ' ';
  3594. switch (key) {
  3595. case 'm':
  3596. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  3597. case 'mm':
  3598. if (number === 1) {
  3599. result += 'minuta';
  3600. } else if (number === 2 || number === 3 || number === 4) {
  3601. result += 'minute';
  3602. } else {
  3603. result += 'minuta';
  3604. }
  3605. return result;
  3606. case 'h':
  3607. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  3608. case 'hh':
  3609. if (number === 1) {
  3610. result += 'sat';
  3611. } else if (number === 2 || number === 3 || number === 4) {
  3612. result += 'sata';
  3613. } else {
  3614. result += 'sati';
  3615. }
  3616. return result;
  3617. case 'dd':
  3618. if (number === 1) {
  3619. result += 'dan';
  3620. } else {
  3621. result += 'dana';
  3622. }
  3623. return result;
  3624. case 'MM':
  3625. if (number === 1) {
  3626. result += 'mjesec';
  3627. } else if (number === 2 || number === 3 || number === 4) {
  3628. result += 'mjeseca';
  3629. } else {
  3630. result += 'mjeseci';
  3631. }
  3632. return result;
  3633. case 'yy':
  3634. if (number === 1) {
  3635. result += 'godina';
  3636. } else if (number === 2 || number === 3 || number === 4) {
  3637. result += 'godine';
  3638. } else {
  3639. result += 'godina';
  3640. }
  3641. return result;
  3642. }
  3643. }
  3644. return moment.defineLocale('bs', {
  3645. months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
  3646. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
  3647. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  3648. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  3649. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  3650. longDateFormat : {
  3651. LT : 'H:mm',
  3652. LTS : 'LT:ss',
  3653. L : 'DD. MM. YYYY',
  3654. LL : 'D. MMMM YYYY',
  3655. LLL : 'D. MMMM YYYY LT',
  3656. LLLL : 'dddd, D. MMMM YYYY LT'
  3657. },
  3658. calendar : {
  3659. sameDay : '[danas u] LT',
  3660. nextDay : '[sutra u] LT',
  3661. nextWeek : function () {
  3662. switch (this.day()) {
  3663. case 0:
  3664. return '[u] [nedjelju] [u] LT';
  3665. case 3:
  3666. return '[u] [srijedu] [u] LT';
  3667. case 6:
  3668. return '[u] [subotu] [u] LT';
  3669. case 1:
  3670. case 2:
  3671. case 4:
  3672. case 5:
  3673. return '[u] dddd [u] LT';
  3674. }
  3675. },
  3676. lastDay : '[jučer u] LT',
  3677. lastWeek : function () {
  3678. switch (this.day()) {
  3679. case 0:
  3680. case 3:
  3681. return '[prošlu] dddd [u] LT';
  3682. case 6:
  3683. return '[prošle] [subote] [u] LT';
  3684. case 1:
  3685. case 2:
  3686. case 4:
  3687. case 5:
  3688. return '[prošli] dddd [u] LT';
  3689. }
  3690. },
  3691. sameElse : 'L'
  3692. },
  3693. relativeTime : {
  3694. future : 'za %s',
  3695. past : 'prije %s',
  3696. s : 'par sekundi',
  3697. m : translate,
  3698. mm : translate,
  3699. h : translate,
  3700. hh : translate,
  3701. d : 'dan',
  3702. dd : translate,
  3703. M : 'mjesec',
  3704. MM : translate,
  3705. y : 'godinu',
  3706. yy : translate
  3707. },
  3708. ordinalParse: /\d{1,2}\./,
  3709. ordinal : '%d.',
  3710. week : {
  3711. dow : 1, // Monday is the first day of the week.
  3712. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3713. }
  3714. });
  3715. }));
  3716. // moment.js locale configuration
  3717. // locale : catalan (ca)
  3718. // author : Juan G. Hurtado : https://github.com/juanghurtado
  3719. (function (factory) {
  3720. factory(moment);
  3721. }(function (moment) {
  3722. return moment.defineLocale('ca', {
  3723. months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),
  3724. monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'),
  3725. weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),
  3726. weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
  3727. weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
  3728. longDateFormat : {
  3729. LT : 'H:mm',
  3730. LTS : 'LT:ss',
  3731. L : 'DD/MM/YYYY',
  3732. LL : 'D MMMM YYYY',
  3733. LLL : 'D MMMM YYYY LT',
  3734. LLLL : 'dddd D MMMM YYYY LT'
  3735. },
  3736. calendar : {
  3737. sameDay : function () {
  3738. return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3739. },
  3740. nextDay : function () {
  3741. return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3742. },
  3743. nextWeek : function () {
  3744. return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3745. },
  3746. lastDay : function () {
  3747. return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3748. },
  3749. lastWeek : function () {
  3750. return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  3751. },
  3752. sameElse : 'L'
  3753. },
  3754. relativeTime : {
  3755. future : 'en %s',
  3756. past : 'fa %s',
  3757. s : 'uns segons',
  3758. m : 'un minut',
  3759. mm : '%d minuts',
  3760. h : 'una hora',
  3761. hh : '%d hores',
  3762. d : 'un dia',
  3763. dd : '%d dies',
  3764. M : 'un mes',
  3765. MM : '%d mesos',
  3766. y : 'un any',
  3767. yy : '%d anys'
  3768. },
  3769. ordinalParse: /\d{1,2}(r|n|t|è|a)/,
  3770. ordinal : function (number, period) {
  3771. var output = (number === 1) ? 'r' :
  3772. (number === 2) ? 'n' :
  3773. (number === 3) ? 'r' :
  3774. (number === 4) ? 't' : 'è';
  3775. if (period === 'w' || period === 'W') {
  3776. output = 'a';
  3777. }
  3778. return number + output;
  3779. },
  3780. week : {
  3781. dow : 1, // Monday is the first day of the week.
  3782. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3783. }
  3784. });
  3785. }));
  3786. // moment.js locale configuration
  3787. // locale : czech (cs)
  3788. // author : petrbela : https://github.com/petrbela
  3789. (function (factory) {
  3790. factory(moment);
  3791. }(function (moment) {
  3792. var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
  3793. monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');
  3794. function plural(n) {
  3795. return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
  3796. }
  3797. function translate(number, withoutSuffix, key, isFuture) {
  3798. var result = number + ' ';
  3799. switch (key) {
  3800. case 's': // a few seconds / in a few seconds / a few seconds ago
  3801. return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
  3802. case 'm': // a minute / in a minute / a minute ago
  3803. return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
  3804. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  3805. if (withoutSuffix || isFuture) {
  3806. return result + (plural(number) ? 'minuty' : 'minut');
  3807. } else {
  3808. return result + 'minutami';
  3809. }
  3810. break;
  3811. case 'h': // an hour / in an hour / an hour ago
  3812. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  3813. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  3814. if (withoutSuffix || isFuture) {
  3815. return result + (plural(number) ? 'hodiny' : 'hodin');
  3816. } else {
  3817. return result + 'hodinami';
  3818. }
  3819. break;
  3820. case 'd': // a day / in a day / a day ago
  3821. return (withoutSuffix || isFuture) ? 'den' : 'dnem';
  3822. case 'dd': // 9 days / in 9 days / 9 days ago
  3823. if (withoutSuffix || isFuture) {
  3824. return result + (plural(number) ? 'dny' : 'dní');
  3825. } else {
  3826. return result + 'dny';
  3827. }
  3828. break;
  3829. case 'M': // a month / in a month / a month ago
  3830. return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
  3831. case 'MM': // 9 months / in 9 months / 9 months ago
  3832. if (withoutSuffix || isFuture) {
  3833. return result + (plural(number) ? 'měsíce' : 'měsíců');
  3834. } else {
  3835. return result + 'měsíci';
  3836. }
  3837. break;
  3838. case 'y': // a year / in a year / a year ago
  3839. return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
  3840. case 'yy': // 9 years / in 9 years / 9 years ago
  3841. if (withoutSuffix || isFuture) {
  3842. return result + (plural(number) ? 'roky' : 'let');
  3843. } else {
  3844. return result + 'lety';
  3845. }
  3846. break;
  3847. }
  3848. }
  3849. return moment.defineLocale('cs', {
  3850. months : months,
  3851. monthsShort : monthsShort,
  3852. monthsParse : (function (months, monthsShort) {
  3853. var i, _monthsParse = [];
  3854. for (i = 0; i < 12; i++) {
  3855. // use custom parser to solve problem with July (červenec)
  3856. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  3857. }
  3858. return _monthsParse;
  3859. }(months, monthsShort)),
  3860. weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
  3861. weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),
  3862. weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
  3863. longDateFormat : {
  3864. LT: 'H:mm',
  3865. LTS : 'LT:ss',
  3866. L : 'DD.MM.YYYY',
  3867. LL : 'D. MMMM YYYY',
  3868. LLL : 'D. MMMM YYYY LT',
  3869. LLLL : 'dddd D. MMMM YYYY LT'
  3870. },
  3871. calendar : {
  3872. sameDay: '[dnes v] LT',
  3873. nextDay: '[zítra v] LT',
  3874. nextWeek: function () {
  3875. switch (this.day()) {
  3876. case 0:
  3877. return '[v neděli v] LT';
  3878. case 1:
  3879. case 2:
  3880. return '[v] dddd [v] LT';
  3881. case 3:
  3882. return '[ve středu v] LT';
  3883. case 4:
  3884. return '[ve čtvrtek v] LT';
  3885. case 5:
  3886. return '[v pátek v] LT';
  3887. case 6:
  3888. return '[v sobotu v] LT';
  3889. }
  3890. },
  3891. lastDay: '[včera v] LT',
  3892. lastWeek: function () {
  3893. switch (this.day()) {
  3894. case 0:
  3895. return '[minulou neděli v] LT';
  3896. case 1:
  3897. case 2:
  3898. return '[minulé] dddd [v] LT';
  3899. case 3:
  3900. return '[minulou středu v] LT';
  3901. case 4:
  3902. case 5:
  3903. return '[minulý] dddd [v] LT';
  3904. case 6:
  3905. return '[minulou sobotu v] LT';
  3906. }
  3907. },
  3908. sameElse: 'L'
  3909. },
  3910. relativeTime : {
  3911. future : 'za %s',
  3912. past : 'před %s',
  3913. s : translate,
  3914. m : translate,
  3915. mm : translate,
  3916. h : translate,
  3917. hh : translate,
  3918. d : translate,
  3919. dd : translate,
  3920. M : translate,
  3921. MM : translate,
  3922. y : translate,
  3923. yy : translate
  3924. },
  3925. ordinalParse : /\d{1,2}\./,
  3926. ordinal : '%d.',
  3927. week : {
  3928. dow : 1, // Monday is the first day of the week.
  3929. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3930. }
  3931. });
  3932. }));
  3933. // moment.js locale configuration
  3934. // locale : chuvash (cv)
  3935. // author : Anatoly Mironov : https://github.com/mirontoli
  3936. (function (factory) {
  3937. factory(moment);
  3938. }(function (moment) {
  3939. return moment.defineLocale('cv', {
  3940. months : 'кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав'.split('_'),
  3941. monthsShort : 'кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш'.split('_'),
  3942. weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун'.split('_'),
  3943. weekdaysShort : 'выр_тун_ытл_юн_кĕç_эрн_шăм'.split('_'),
  3944. weekdaysMin : 'вр_тн_ыт_юн_кç_эр_шм'.split('_'),
  3945. longDateFormat : {
  3946. LT : 'HH:mm',
  3947. LTS : 'LT:ss',
  3948. L : 'DD-MM-YYYY',
  3949. LL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]',
  3950. LLL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT',
  3951. LLLL : 'dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT'
  3952. },
  3953. calendar : {
  3954. sameDay: '[Паян] LT [сехетре]',
  3955. nextDay: '[Ыран] LT [сехетре]',
  3956. lastDay: '[Ĕнер] LT [сехетре]',
  3957. nextWeek: '[Çитес] dddd LT [сехетре]',
  3958. lastWeek: '[Иртнĕ] dddd LT [сехетре]',
  3959. sameElse: 'L'
  3960. },
  3961. relativeTime : {
  3962. future : function (output) {
  3963. var affix = /сехет$/i.exec(output) ? 'рен' : /çул$/i.exec(output) ? 'тан' : 'ран';
  3964. return output + affix;
  3965. },
  3966. past : '%s каялла',
  3967. s : 'пĕр-ик çеккунт',
  3968. m : 'пĕр минут',
  3969. mm : '%d минут',
  3970. h : 'пĕр сехет',
  3971. hh : '%d сехет',
  3972. d : 'пĕр кун',
  3973. dd : '%d кун',
  3974. M : 'пĕр уйăх',
  3975. MM : '%d уйăх',
  3976. y : 'пĕр çул',
  3977. yy : '%d çул'
  3978. },
  3979. ordinalParse: /\d{1,2}-мĕш/,
  3980. ordinal : '%d-мĕш',
  3981. week : {
  3982. dow : 1, // Monday is the first day of the week.
  3983. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3984. }
  3985. });
  3986. }));
  3987. // moment.js locale configuration
  3988. // locale : Welsh (cy)
  3989. // author : Robert Allen
  3990. (function (factory) {
  3991. factory(moment);
  3992. }(function (moment) {
  3993. return moment.defineLocale('cy', {
  3994. months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),
  3995. monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),
  3996. weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),
  3997. weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
  3998. weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
  3999. // time formats are the same as en-gb
  4000. longDateFormat: {
  4001. LT: 'HH:mm',
  4002. LTS : 'LT:ss',
  4003. L: 'DD/MM/YYYY',
  4004. LL: 'D MMMM YYYY',
  4005. LLL: 'D MMMM YYYY LT',
  4006. LLLL: 'dddd, D MMMM YYYY LT'
  4007. },
  4008. calendar: {
  4009. sameDay: '[Heddiw am] LT',
  4010. nextDay: '[Yfory am] LT',
  4011. nextWeek: 'dddd [am] LT',
  4012. lastDay: '[Ddoe am] LT',
  4013. lastWeek: 'dddd [diwethaf am] LT',
  4014. sameElse: 'L'
  4015. },
  4016. relativeTime: {
  4017. future: 'mewn %s',
  4018. past: '%s yn ôl',
  4019. s: 'ychydig eiliadau',
  4020. m: 'munud',
  4021. mm: '%d munud',
  4022. h: 'awr',
  4023. hh: '%d awr',
  4024. d: 'diwrnod',
  4025. dd: '%d diwrnod',
  4026. M: 'mis',
  4027. MM: '%d mis',
  4028. y: 'blwyddyn',
  4029. yy: '%d flynedd'
  4030. },
  4031. ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
  4032. // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
  4033. ordinal: function (number) {
  4034. var b = number,
  4035. output = '',
  4036. lookup = [
  4037. '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
  4038. 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
  4039. ];
  4040. if (b > 20) {
  4041. if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
  4042. output = 'fed'; // not 30ain, 70ain or 90ain
  4043. } else {
  4044. output = 'ain';
  4045. }
  4046. } else if (b > 0) {
  4047. output = lookup[b];
  4048. }
  4049. return number + output;
  4050. },
  4051. week : {
  4052. dow : 1, // Monday is the first day of the week.
  4053. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4054. }
  4055. });
  4056. }));
  4057. // moment.js locale configuration
  4058. // locale : danish (da)
  4059. // author : Ulrik Nielsen : https://github.com/mrbase
  4060. (function (factory) {
  4061. factory(moment);
  4062. }(function (moment) {
  4063. return moment.defineLocale('da', {
  4064. months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),
  4065. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  4066. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  4067. weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),
  4068. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  4069. longDateFormat : {
  4070. LT : 'HH:mm',
  4071. LTS : 'LT:ss',
  4072. L : 'DD/MM/YYYY',
  4073. LL : 'D. MMMM YYYY',
  4074. LLL : 'D. MMMM YYYY LT',
  4075. LLLL : 'dddd [d.] D. MMMM YYYY LT'
  4076. },
  4077. calendar : {
  4078. sameDay : '[I dag kl.] LT',
  4079. nextDay : '[I morgen kl.] LT',
  4080. nextWeek : 'dddd [kl.] LT',
  4081. lastDay : '[I går kl.] LT',
  4082. lastWeek : '[sidste] dddd [kl] LT',
  4083. sameElse : 'L'
  4084. },
  4085. relativeTime : {
  4086. future : 'om %s',
  4087. past : '%s siden',
  4088. s : 'få sekunder',
  4089. m : 'et minut',
  4090. mm : '%d minutter',
  4091. h : 'en time',
  4092. hh : '%d timer',
  4093. d : 'en dag',
  4094. dd : '%d dage',
  4095. M : 'en måned',
  4096. MM : '%d måneder',
  4097. y : 'et år',
  4098. yy : '%d år'
  4099. },
  4100. ordinalParse: /\d{1,2}\./,
  4101. ordinal : '%d.',
  4102. week : {
  4103. dow : 1, // Monday is the first day of the week.
  4104. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4105. }
  4106. });
  4107. }));
  4108. // moment.js locale configuration
  4109. // locale : austrian german (de-at)
  4110. // author : lluchs : https://github.com/lluchs
  4111. // author: Menelion Elensúle: https://github.com/Oire
  4112. // author : Martin Groller : https://github.com/MadMG
  4113. (function (factory) {
  4114. factory(moment);
  4115. }(function (moment) {
  4116. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  4117. var format = {
  4118. 'm': ['eine Minute', 'einer Minute'],
  4119. 'h': ['eine Stunde', 'einer Stunde'],
  4120. 'd': ['ein Tag', 'einem Tag'],
  4121. 'dd': [number + ' Tage', number + ' Tagen'],
  4122. 'M': ['ein Monat', 'einem Monat'],
  4123. 'MM': [number + ' Monate', number + ' Monaten'],
  4124. 'y': ['ein Jahr', 'einem Jahr'],
  4125. 'yy': [number + ' Jahre', number + ' Jahren']
  4126. };
  4127. return withoutSuffix ? format[key][0] : format[key][1];
  4128. }
  4129. return moment.defineLocale('de-at', {
  4130. months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  4131. monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  4132. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  4133. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  4134. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  4135. longDateFormat : {
  4136. LT: 'HH:mm',
  4137. LTS: 'HH:mm:ss',
  4138. L : 'DD.MM.YYYY',
  4139. LL : 'D. MMMM YYYY',
  4140. LLL : 'D. MMMM YYYY LT',
  4141. LLLL : 'dddd, D. MMMM YYYY LT'
  4142. },
  4143. calendar : {
  4144. sameDay: '[Heute um] LT [Uhr]',
  4145. sameElse: 'L',
  4146. nextDay: '[Morgen um] LT [Uhr]',
  4147. nextWeek: 'dddd [um] LT [Uhr]',
  4148. lastDay: '[Gestern um] LT [Uhr]',
  4149. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  4150. },
  4151. relativeTime : {
  4152. future : 'in %s',
  4153. past : 'vor %s',
  4154. s : 'ein paar Sekunden',
  4155. m : processRelativeTime,
  4156. mm : '%d Minuten',
  4157. h : processRelativeTime,
  4158. hh : '%d Stunden',
  4159. d : processRelativeTime,
  4160. dd : processRelativeTime,
  4161. M : processRelativeTime,
  4162. MM : processRelativeTime,
  4163. y : processRelativeTime,
  4164. yy : processRelativeTime
  4165. },
  4166. ordinalParse: /\d{1,2}\./,
  4167. ordinal : '%d.',
  4168. week : {
  4169. dow : 1, // Monday is the first day of the week.
  4170. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4171. }
  4172. });
  4173. }));
  4174. // moment.js locale configuration
  4175. // locale : german (de)
  4176. // author : lluchs : https://github.com/lluchs
  4177. // author: Menelion Elensúle: https://github.com/Oire
  4178. (function (factory) {
  4179. factory(moment);
  4180. }(function (moment) {
  4181. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  4182. var format = {
  4183. 'm': ['eine Minute', 'einer Minute'],
  4184. 'h': ['eine Stunde', 'einer Stunde'],
  4185. 'd': ['ein Tag', 'einem Tag'],
  4186. 'dd': [number + ' Tage', number + ' Tagen'],
  4187. 'M': ['ein Monat', 'einem Monat'],
  4188. 'MM': [number + ' Monate', number + ' Monaten'],
  4189. 'y': ['ein Jahr', 'einem Jahr'],
  4190. 'yy': [number + ' Jahre', number + ' Jahren']
  4191. };
  4192. return withoutSuffix ? format[key][0] : format[key][1];
  4193. }
  4194. return moment.defineLocale('de', {
  4195. months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  4196. monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  4197. weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
  4198. weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
  4199. weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
  4200. longDateFormat : {
  4201. LT: 'HH:mm',
  4202. LTS: 'HH:mm:ss',
  4203. L : 'DD.MM.YYYY',
  4204. LL : 'D. MMMM YYYY',
  4205. LLL : 'D. MMMM YYYY LT',
  4206. LLLL : 'dddd, D. MMMM YYYY LT'
  4207. },
  4208. calendar : {
  4209. sameDay: '[Heute um] LT [Uhr]',
  4210. sameElse: 'L',
  4211. nextDay: '[Morgen um] LT [Uhr]',
  4212. nextWeek: 'dddd [um] LT [Uhr]',
  4213. lastDay: '[Gestern um] LT [Uhr]',
  4214. lastWeek: '[letzten] dddd [um] LT [Uhr]'
  4215. },
  4216. relativeTime : {
  4217. future : 'in %s',
  4218. past : 'vor %s',
  4219. s : 'ein paar Sekunden',
  4220. m : processRelativeTime,
  4221. mm : '%d Minuten',
  4222. h : processRelativeTime,
  4223. hh : '%d Stunden',
  4224. d : processRelativeTime,
  4225. dd : processRelativeTime,
  4226. M : processRelativeTime,
  4227. MM : processRelativeTime,
  4228. y : processRelativeTime,
  4229. yy : processRelativeTime
  4230. },
  4231. ordinalParse: /\d{1,2}\./,
  4232. ordinal : '%d.',
  4233. week : {
  4234. dow : 1, // Monday is the first day of the week.
  4235. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4236. }
  4237. });
  4238. }));
  4239. // moment.js locale configuration
  4240. // locale : modern greek (el)
  4241. // author : Aggelos Karalias : https://github.com/mehiel
  4242. (function (factory) {
  4243. factory(moment);
  4244. }(function (moment) {
  4245. return moment.defineLocale('el', {
  4246. monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
  4247. monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),
  4248. months : function (momentToFormat, format) {
  4249. if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'
  4250. return this._monthsGenitiveEl[momentToFormat.month()];
  4251. } else {
  4252. return this._monthsNominativeEl[momentToFormat.month()];
  4253. }
  4254. },
  4255. monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
  4256. weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),
  4257. weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
  4258. weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
  4259. meridiem : function (hours, minutes, isLower) {
  4260. if (hours > 11) {
  4261. return isLower ? 'μμ' : 'ΜΜ';
  4262. } else {
  4263. return isLower ? 'πμ' : 'ΠΜ';
  4264. }
  4265. },
  4266. isPM : function (input) {
  4267. return ((input + '').toLowerCase()[0] === 'μ');
  4268. },
  4269. meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
  4270. longDateFormat : {
  4271. LT : 'h:mm A',
  4272. LTS : 'h:mm:ss A',
  4273. L : 'DD/MM/YYYY',
  4274. LL : 'D MMMM YYYY',
  4275. LLL : 'D MMMM YYYY LT',
  4276. LLLL : 'dddd, D MMMM YYYY LT'
  4277. },
  4278. calendarEl : {
  4279. sameDay : '[Σήμερα {}] LT',
  4280. nextDay : '[Αύριο {}] LT',
  4281. nextWeek : 'dddd [{}] LT',
  4282. lastDay : '[Χθες {}] LT',
  4283. lastWeek : function () {
  4284. switch (this.day()) {
  4285. case 6:
  4286. return '[το προηγούμενο] dddd [{}] LT';
  4287. default:
  4288. return '[την προηγούμενη] dddd [{}] LT';
  4289. }
  4290. },
  4291. sameElse : 'L'
  4292. },
  4293. calendar : function (key, mom) {
  4294. var output = this._calendarEl[key],
  4295. hours = mom && mom.hours();
  4296. if (typeof output === 'function') {
  4297. output = output.apply(mom);
  4298. }
  4299. return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));
  4300. },
  4301. relativeTime : {
  4302. future : 'σε %s',
  4303. past : '%s πριν',
  4304. s : 'λίγα δευτερόλεπτα',
  4305. m : 'ένα λεπτό',
  4306. mm : '%d λεπτά',
  4307. h : 'μία ώρα',
  4308. hh : '%d ώρες',
  4309. d : 'μία μέρα',
  4310. dd : '%d μέρες',
  4311. M : 'ένας μήνας',
  4312. MM : '%d μήνες',
  4313. y : 'ένας χρόνος',
  4314. yy : '%d χρόνια'
  4315. },
  4316. ordinalParse: /\d{1,2}η/,
  4317. ordinal: '%dη',
  4318. week : {
  4319. dow : 1, // Monday is the first day of the week.
  4320. doy : 4 // The week that contains Jan 4st is the first week of the year.
  4321. }
  4322. });
  4323. }));
  4324. // moment.js locale configuration
  4325. // locale : australian english (en-au)
  4326. (function (factory) {
  4327. factory(moment);
  4328. }(function (moment) {
  4329. return moment.defineLocale('en-au', {
  4330. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4331. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4332. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4333. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4334. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4335. longDateFormat : {
  4336. LT : 'h:mm A',
  4337. LTS : 'h:mm:ss A',
  4338. L : 'DD/MM/YYYY',
  4339. LL : 'D MMMM YYYY',
  4340. LLL : 'D MMMM YYYY LT',
  4341. LLLL : 'dddd, D MMMM YYYY LT'
  4342. },
  4343. calendar : {
  4344. sameDay : '[Today at] LT',
  4345. nextDay : '[Tomorrow at] LT',
  4346. nextWeek : 'dddd [at] LT',
  4347. lastDay : '[Yesterday at] LT',
  4348. lastWeek : '[Last] dddd [at] LT',
  4349. sameElse : 'L'
  4350. },
  4351. relativeTime : {
  4352. future : 'in %s',
  4353. past : '%s ago',
  4354. s : 'a few seconds',
  4355. m : 'a minute',
  4356. mm : '%d minutes',
  4357. h : 'an hour',
  4358. hh : '%d hours',
  4359. d : 'a day',
  4360. dd : '%d days',
  4361. M : 'a month',
  4362. MM : '%d months',
  4363. y : 'a year',
  4364. yy : '%d years'
  4365. },
  4366. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4367. ordinal : function (number) {
  4368. var b = number % 10,
  4369. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4370. (b === 1) ? 'st' :
  4371. (b === 2) ? 'nd' :
  4372. (b === 3) ? 'rd' : 'th';
  4373. return number + output;
  4374. },
  4375. week : {
  4376. dow : 1, // Monday is the first day of the week.
  4377. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4378. }
  4379. });
  4380. }));
  4381. // moment.js locale configuration
  4382. // locale : canadian english (en-ca)
  4383. // author : Jonathan Abourbih : https://github.com/jonbca
  4384. (function (factory) {
  4385. factory(moment);
  4386. }(function (moment) {
  4387. return moment.defineLocale('en-ca', {
  4388. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4389. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4390. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4391. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4392. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4393. longDateFormat : {
  4394. LT : 'h:mm A',
  4395. LTS : 'h:mm:ss A',
  4396. L : 'YYYY-MM-DD',
  4397. LL : 'D MMMM, YYYY',
  4398. LLL : 'D MMMM, YYYY LT',
  4399. LLLL : 'dddd, D MMMM, YYYY LT'
  4400. },
  4401. calendar : {
  4402. sameDay : '[Today at] LT',
  4403. nextDay : '[Tomorrow at] LT',
  4404. nextWeek : 'dddd [at] LT',
  4405. lastDay : '[Yesterday at] LT',
  4406. lastWeek : '[Last] dddd [at] LT',
  4407. sameElse : 'L'
  4408. },
  4409. relativeTime : {
  4410. future : 'in %s',
  4411. past : '%s ago',
  4412. s : 'a few seconds',
  4413. m : 'a minute',
  4414. mm : '%d minutes',
  4415. h : 'an hour',
  4416. hh : '%d hours',
  4417. d : 'a day',
  4418. dd : '%d days',
  4419. M : 'a month',
  4420. MM : '%d months',
  4421. y : 'a year',
  4422. yy : '%d years'
  4423. },
  4424. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4425. ordinal : function (number) {
  4426. var b = number % 10,
  4427. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4428. (b === 1) ? 'st' :
  4429. (b === 2) ? 'nd' :
  4430. (b === 3) ? 'rd' : 'th';
  4431. return number + output;
  4432. }
  4433. });
  4434. }));
  4435. // moment.js locale configuration
  4436. // locale : great britain english (en-gb)
  4437. // author : Chris Gedrim : https://github.com/chrisgedrim
  4438. (function (factory) {
  4439. factory(moment);
  4440. }(function (moment) {
  4441. return moment.defineLocale('en-gb', {
  4442. months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
  4443. monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
  4444. weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
  4445. weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
  4446. weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
  4447. longDateFormat : {
  4448. LT : 'HH:mm',
  4449. LTS : 'HH:mm:ss',
  4450. L : 'DD/MM/YYYY',
  4451. LL : 'D MMMM YYYY',
  4452. LLL : 'D MMMM YYYY LT',
  4453. LLLL : 'dddd, D MMMM YYYY LT'
  4454. },
  4455. calendar : {
  4456. sameDay : '[Today at] LT',
  4457. nextDay : '[Tomorrow at] LT',
  4458. nextWeek : 'dddd [at] LT',
  4459. lastDay : '[Yesterday at] LT',
  4460. lastWeek : '[Last] dddd [at] LT',
  4461. sameElse : 'L'
  4462. },
  4463. relativeTime : {
  4464. future : 'in %s',
  4465. past : '%s ago',
  4466. s : 'a few seconds',
  4467. m : 'a minute',
  4468. mm : '%d minutes',
  4469. h : 'an hour',
  4470. hh : '%d hours',
  4471. d : 'a day',
  4472. dd : '%d days',
  4473. M : 'a month',
  4474. MM : '%d months',
  4475. y : 'a year',
  4476. yy : '%d years'
  4477. },
  4478. ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4479. ordinal : function (number) {
  4480. var b = number % 10,
  4481. output = (~~(number % 100 / 10) === 1) ? 'th' :
  4482. (b === 1) ? 'st' :
  4483. (b === 2) ? 'nd' :
  4484. (b === 3) ? 'rd' : 'th';
  4485. return number + output;
  4486. },
  4487. week : {
  4488. dow : 1, // Monday is the first day of the week.
  4489. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4490. }
  4491. });
  4492. }));
  4493. // moment.js locale configuration
  4494. // locale : esperanto (eo)
  4495. // author : Colin Dean : https://github.com/colindean
  4496. // komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
  4497. // Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
  4498. (function (factory) {
  4499. factory(moment);
  4500. }(function (moment) {
  4501. return moment.defineLocale('eo', {
  4502. months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),
  4503. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),
  4504. weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'),
  4505. weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'),
  4506. weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
  4507. longDateFormat : {
  4508. LT : 'HH:mm',
  4509. LTS : 'LT:ss',
  4510. L : 'YYYY-MM-DD',
  4511. LL : 'D[-an de] MMMM, YYYY',
  4512. LLL : 'D[-an de] MMMM, YYYY LT',
  4513. LLLL : 'dddd, [la] D[-an de] MMMM, YYYY LT'
  4514. },
  4515. meridiemParse: /[ap]\.t\.m/i,
  4516. isPM: function (input) {
  4517. return input.charAt(0).toLowerCase() === 'p';
  4518. },
  4519. meridiem : function (hours, minutes, isLower) {
  4520. if (hours > 11) {
  4521. return isLower ? 'p.t.m.' : 'P.T.M.';
  4522. } else {
  4523. return isLower ? 'a.t.m.' : 'A.T.M.';
  4524. }
  4525. },
  4526. calendar : {
  4527. sameDay : '[Hodiaŭ je] LT',
  4528. nextDay : '[Morgaŭ je] LT',
  4529. nextWeek : 'dddd [je] LT',
  4530. lastDay : '[Hieraŭ je] LT',
  4531. lastWeek : '[pasinta] dddd [je] LT',
  4532. sameElse : 'L'
  4533. },
  4534. relativeTime : {
  4535. future : 'je %s',
  4536. past : 'antaŭ %s',
  4537. s : 'sekundoj',
  4538. m : 'minuto',
  4539. mm : '%d minutoj',
  4540. h : 'horo',
  4541. hh : '%d horoj',
  4542. d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo
  4543. dd : '%d tagoj',
  4544. M : 'monato',
  4545. MM : '%d monatoj',
  4546. y : 'jaro',
  4547. yy : '%d jaroj'
  4548. },
  4549. ordinalParse: /\d{1,2}a/,
  4550. ordinal : '%da',
  4551. week : {
  4552. dow : 1, // Monday is the first day of the week.
  4553. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4554. }
  4555. });
  4556. }));
  4557. // moment.js locale configuration
  4558. // locale : spanish (es)
  4559. // author : Julio Napurí : https://github.com/julionc
  4560. (function (factory) {
  4561. factory(moment);
  4562. }(function (moment) {
  4563. var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
  4564. monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');
  4565. return moment.defineLocale('es', {
  4566. months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),
  4567. monthsShort : function (m, format) {
  4568. if (/-MMM-/.test(format)) {
  4569. return monthsShort[m.month()];
  4570. } else {
  4571. return monthsShortDot[m.month()];
  4572. }
  4573. },
  4574. weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
  4575. weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
  4576. weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
  4577. longDateFormat : {
  4578. LT : 'H:mm',
  4579. LTS : 'LT:ss',
  4580. L : 'DD/MM/YYYY',
  4581. LL : 'D [de] MMMM [de] YYYY',
  4582. LLL : 'D [de] MMMM [de] YYYY LT',
  4583. LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
  4584. },
  4585. calendar : {
  4586. sameDay : function () {
  4587. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4588. },
  4589. nextDay : function () {
  4590. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4591. },
  4592. nextWeek : function () {
  4593. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4594. },
  4595. lastDay : function () {
  4596. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4597. },
  4598. lastWeek : function () {
  4599. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  4600. },
  4601. sameElse : 'L'
  4602. },
  4603. relativeTime : {
  4604. future : 'en %s',
  4605. past : 'hace %s',
  4606. s : 'unos segundos',
  4607. m : 'un minuto',
  4608. mm : '%d minutos',
  4609. h : 'una hora',
  4610. hh : '%d horas',
  4611. d : 'un día',
  4612. dd : '%d días',
  4613. M : 'un mes',
  4614. MM : '%d meses',
  4615. y : 'un año',
  4616. yy : '%d años'
  4617. },
  4618. ordinalParse : /\d{1,2}º/,
  4619. ordinal : '%dº',
  4620. week : {
  4621. dow : 1, // Monday is the first day of the week.
  4622. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4623. }
  4624. });
  4625. }));
  4626. // moment.js locale configuration
  4627. // locale : estonian (et)
  4628. // author : Henry Kehlmann : https://github.com/madhenry
  4629. // improvements : Illimar Tambek : https://github.com/ragulka
  4630. (function (factory) {
  4631. factory(moment);
  4632. }(function (moment) {
  4633. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  4634. var format = {
  4635. 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
  4636. 'm' : ['ühe minuti', 'üks minut'],
  4637. 'mm': [number + ' minuti', number + ' minutit'],
  4638. 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
  4639. 'hh': [number + ' tunni', number + ' tundi'],
  4640. 'd' : ['ühe päeva', 'üks päev'],
  4641. 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
  4642. 'MM': [number + ' kuu', number + ' kuud'],
  4643. 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
  4644. 'yy': [number + ' aasta', number + ' aastat']
  4645. };
  4646. if (withoutSuffix) {
  4647. return format[key][2] ? format[key][2] : format[key][1];
  4648. }
  4649. return isFuture ? format[key][0] : format[key][1];
  4650. }
  4651. return moment.defineLocale('et', {
  4652. months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),
  4653. monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
  4654. weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),
  4655. weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),
  4656. weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
  4657. longDateFormat : {
  4658. LT : 'H:mm',
  4659. LTS : 'LT:ss',
  4660. L : 'DD.MM.YYYY',
  4661. LL : 'D. MMMM YYYY',
  4662. LLL : 'D. MMMM YYYY LT',
  4663. LLLL : 'dddd, D. MMMM YYYY LT'
  4664. },
  4665. calendar : {
  4666. sameDay : '[Täna,] LT',
  4667. nextDay : '[Homme,] LT',
  4668. nextWeek : '[Järgmine] dddd LT',
  4669. lastDay : '[Eile,] LT',
  4670. lastWeek : '[Eelmine] dddd LT',
  4671. sameElse : 'L'
  4672. },
  4673. relativeTime : {
  4674. future : '%s pärast',
  4675. past : '%s tagasi',
  4676. s : processRelativeTime,
  4677. m : processRelativeTime,
  4678. mm : processRelativeTime,
  4679. h : processRelativeTime,
  4680. hh : processRelativeTime,
  4681. d : processRelativeTime,
  4682. dd : '%d päeva',
  4683. M : processRelativeTime,
  4684. MM : processRelativeTime,
  4685. y : processRelativeTime,
  4686. yy : processRelativeTime
  4687. },
  4688. ordinalParse: /\d{1,2}\./,
  4689. ordinal : '%d.',
  4690. week : {
  4691. dow : 1, // Monday is the first day of the week.
  4692. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4693. }
  4694. });
  4695. }));
  4696. // moment.js locale configuration
  4697. // locale : euskara (eu)
  4698. // author : Eneko Illarramendi : https://github.com/eillarra
  4699. (function (factory) {
  4700. factory(moment);
  4701. }(function (moment) {
  4702. return moment.defineLocale('eu', {
  4703. months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),
  4704. monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),
  4705. weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),
  4706. weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),
  4707. weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
  4708. longDateFormat : {
  4709. LT : 'HH:mm',
  4710. LTS : 'LT:ss',
  4711. L : 'YYYY-MM-DD',
  4712. LL : 'YYYY[ko] MMMM[ren] D[a]',
  4713. LLL : 'YYYY[ko] MMMM[ren] D[a] LT',
  4714. LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] LT',
  4715. l : 'YYYY-M-D',
  4716. ll : 'YYYY[ko] MMM D[a]',
  4717. lll : 'YYYY[ko] MMM D[a] LT',
  4718. llll : 'ddd, YYYY[ko] MMM D[a] LT'
  4719. },
  4720. calendar : {
  4721. sameDay : '[gaur] LT[etan]',
  4722. nextDay : '[bihar] LT[etan]',
  4723. nextWeek : 'dddd LT[etan]',
  4724. lastDay : '[atzo] LT[etan]',
  4725. lastWeek : '[aurreko] dddd LT[etan]',
  4726. sameElse : 'L'
  4727. },
  4728. relativeTime : {
  4729. future : '%s barru',
  4730. past : 'duela %s',
  4731. s : 'segundo batzuk',
  4732. m : 'minutu bat',
  4733. mm : '%d minutu',
  4734. h : 'ordu bat',
  4735. hh : '%d ordu',
  4736. d : 'egun bat',
  4737. dd : '%d egun',
  4738. M : 'hilabete bat',
  4739. MM : '%d hilabete',
  4740. y : 'urte bat',
  4741. yy : '%d urte'
  4742. },
  4743. ordinalParse: /\d{1,2}\./,
  4744. ordinal : '%d.',
  4745. week : {
  4746. dow : 1, // Monday is the first day of the week.
  4747. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4748. }
  4749. });
  4750. }));
  4751. // moment.js locale configuration
  4752. // locale : Persian (fa)
  4753. // author : Ebrahim Byagowi : https://github.com/ebraminio
  4754. (function (factory) {
  4755. factory(moment);
  4756. }(function (moment) {
  4757. var symbolMap = {
  4758. '1': '۱',
  4759. '2': '۲',
  4760. '3': '۳',
  4761. '4': '۴',
  4762. '5': '۵',
  4763. '6': '۶',
  4764. '7': '۷',
  4765. '8': '۸',
  4766. '9': '۹',
  4767. '0': '۰'
  4768. }, numberMap = {
  4769. '۱': '1',
  4770. '۲': '2',
  4771. '۳': '3',
  4772. '۴': '4',
  4773. '۵': '5',
  4774. '۶': '6',
  4775. '۷': '7',
  4776. '۸': '8',
  4777. '۹': '9',
  4778. '۰': '0'
  4779. };
  4780. return moment.defineLocale('fa', {
  4781. months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  4782. monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  4783. weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  4784. weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  4785. weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
  4786. longDateFormat : {
  4787. LT : 'HH:mm',
  4788. LTS : 'LT:ss',
  4789. L : 'DD/MM/YYYY',
  4790. LL : 'D MMMM YYYY',
  4791. LLL : 'D MMMM YYYY LT',
  4792. LLLL : 'dddd, D MMMM YYYY LT'
  4793. },
  4794. meridiemParse: /قبل از ظهر|بعد از ظهر/,
  4795. isPM: function (input) {
  4796. return /بعد از ظهر/.test(input);
  4797. },
  4798. meridiem : function (hour, minute, isLower) {
  4799. if (hour < 12) {
  4800. return 'قبل از ظهر';
  4801. } else {
  4802. return 'بعد از ظهر';
  4803. }
  4804. },
  4805. calendar : {
  4806. sameDay : '[امروز ساعت] LT',
  4807. nextDay : '[فردا ساعت] LT',
  4808. nextWeek : 'dddd [ساعت] LT',
  4809. lastDay : '[دیروز ساعت] LT',
  4810. lastWeek : 'dddd [پیش] [ساعت] LT',
  4811. sameElse : 'L'
  4812. },
  4813. relativeTime : {
  4814. future : 'در %s',
  4815. past : '%s پیش',
  4816. s : 'چندین ثانیه',
  4817. m : 'یک دقیقه',
  4818. mm : '%d دقیقه',
  4819. h : 'یک ساعت',
  4820. hh : '%d ساعت',
  4821. d : 'یک روز',
  4822. dd : '%d روز',
  4823. M : 'یک ماه',
  4824. MM : '%d ماه',
  4825. y : 'یک سال',
  4826. yy : '%d سال'
  4827. },
  4828. preparse: function (string) {
  4829. return string.replace(/[۰-۹]/g, function (match) {
  4830. return numberMap[match];
  4831. }).replace(/،/g, ',');
  4832. },
  4833. postformat: function (string) {
  4834. return string.replace(/\d/g, function (match) {
  4835. return symbolMap[match];
  4836. }).replace(/,/g, '،');
  4837. },
  4838. ordinalParse: /\d{1,2}م/,
  4839. ordinal : '%dم',
  4840. week : {
  4841. dow : 6, // Saturday is the first day of the week.
  4842. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4843. }
  4844. });
  4845. }));
  4846. // moment.js locale configuration
  4847. // locale : finnish (fi)
  4848. // author : Tarmo Aidantausta : https://github.com/bleadof
  4849. (function (factory) {
  4850. factory(moment);
  4851. }(function (moment) {
  4852. var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
  4853. numbersFuture = [
  4854. 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
  4855. numbersPast[7], numbersPast[8], numbersPast[9]
  4856. ];
  4857. function translate(number, withoutSuffix, key, isFuture) {
  4858. var result = '';
  4859. switch (key) {
  4860. case 's':
  4861. return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
  4862. case 'm':
  4863. return isFuture ? 'minuutin' : 'minuutti';
  4864. case 'mm':
  4865. result = isFuture ? 'minuutin' : 'minuuttia';
  4866. break;
  4867. case 'h':
  4868. return isFuture ? 'tunnin' : 'tunti';
  4869. case 'hh':
  4870. result = isFuture ? 'tunnin' : 'tuntia';
  4871. break;
  4872. case 'd':
  4873. return isFuture ? 'päivän' : 'päivä';
  4874. case 'dd':
  4875. result = isFuture ? 'päivän' : 'päivää';
  4876. break;
  4877. case 'M':
  4878. return isFuture ? 'kuukauden' : 'kuukausi';
  4879. case 'MM':
  4880. result = isFuture ? 'kuukauden' : 'kuukautta';
  4881. break;
  4882. case 'y':
  4883. return isFuture ? 'vuoden' : 'vuosi';
  4884. case 'yy':
  4885. result = isFuture ? 'vuoden' : 'vuotta';
  4886. break;
  4887. }
  4888. result = verbalNumber(number, isFuture) + ' ' + result;
  4889. return result;
  4890. }
  4891. function verbalNumber(number, isFuture) {
  4892. return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
  4893. }
  4894. return moment.defineLocale('fi', {
  4895. months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),
  4896. monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),
  4897. weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),
  4898. weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),
  4899. weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
  4900. longDateFormat : {
  4901. LT : 'HH.mm',
  4902. LTS : 'HH.mm.ss',
  4903. L : 'DD.MM.YYYY',
  4904. LL : 'Do MMMM[ta] YYYY',
  4905. LLL : 'Do MMMM[ta] YYYY, [klo] LT',
  4906. LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] LT',
  4907. l : 'D.M.YYYY',
  4908. ll : 'Do MMM YYYY',
  4909. lll : 'Do MMM YYYY, [klo] LT',
  4910. llll : 'ddd, Do MMM YYYY, [klo] LT'
  4911. },
  4912. calendar : {
  4913. sameDay : '[tänään] [klo] LT',
  4914. nextDay : '[huomenna] [klo] LT',
  4915. nextWeek : 'dddd [klo] LT',
  4916. lastDay : '[eilen] [klo] LT',
  4917. lastWeek : '[viime] dddd[na] [klo] LT',
  4918. sameElse : 'L'
  4919. },
  4920. relativeTime : {
  4921. future : '%s päästä',
  4922. past : '%s sitten',
  4923. s : translate,
  4924. m : translate,
  4925. mm : translate,
  4926. h : translate,
  4927. hh : translate,
  4928. d : translate,
  4929. dd : translate,
  4930. M : translate,
  4931. MM : translate,
  4932. y : translate,
  4933. yy : translate
  4934. },
  4935. ordinalParse: /\d{1,2}\./,
  4936. ordinal : '%d.',
  4937. week : {
  4938. dow : 1, // Monday is the first day of the week.
  4939. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4940. }
  4941. });
  4942. }));
  4943. // moment.js locale configuration
  4944. // locale : faroese (fo)
  4945. // author : Ragnar Johannesen : https://github.com/ragnar123
  4946. (function (factory) {
  4947. factory(moment);
  4948. }(function (moment) {
  4949. return moment.defineLocale('fo', {
  4950. months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  4951. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  4952. weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),
  4953. weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
  4954. weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
  4955. longDateFormat : {
  4956. LT : 'HH:mm',
  4957. LTS : 'LT:ss',
  4958. L : 'DD/MM/YYYY',
  4959. LL : 'D MMMM YYYY',
  4960. LLL : 'D MMMM YYYY LT',
  4961. LLLL : 'dddd D. MMMM, YYYY LT'
  4962. },
  4963. calendar : {
  4964. sameDay : '[Í dag kl.] LT',
  4965. nextDay : '[Í morgin kl.] LT',
  4966. nextWeek : 'dddd [kl.] LT',
  4967. lastDay : '[Í gjár kl.] LT',
  4968. lastWeek : '[síðstu] dddd [kl] LT',
  4969. sameElse : 'L'
  4970. },
  4971. relativeTime : {
  4972. future : 'um %s',
  4973. past : '%s síðani',
  4974. s : 'fá sekund',
  4975. m : 'ein minutt',
  4976. mm : '%d minuttir',
  4977. h : 'ein tími',
  4978. hh : '%d tímar',
  4979. d : 'ein dagur',
  4980. dd : '%d dagar',
  4981. M : 'ein mánaði',
  4982. MM : '%d mánaðir',
  4983. y : 'eitt ár',
  4984. yy : '%d ár'
  4985. },
  4986. ordinalParse: /\d{1,2}\./,
  4987. ordinal : '%d.',
  4988. week : {
  4989. dow : 1, // Monday is the first day of the week.
  4990. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4991. }
  4992. });
  4993. }));
  4994. // moment.js locale configuration
  4995. // locale : canadian french (fr-ca)
  4996. // author : Jonathan Abourbih : https://github.com/jonbca
  4997. (function (factory) {
  4998. factory(moment);
  4999. }(function (moment) {
  5000. return moment.defineLocale('fr-ca', {
  5001. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  5002. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  5003. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  5004. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  5005. weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
  5006. longDateFormat : {
  5007. LT : 'HH:mm',
  5008. LTS : 'LT:ss',
  5009. L : 'YYYY-MM-DD',
  5010. LL : 'D MMMM YYYY',
  5011. LLL : 'D MMMM YYYY LT',
  5012. LLLL : 'dddd D MMMM YYYY LT'
  5013. },
  5014. calendar : {
  5015. sameDay: '[Aujourd\'hui à] LT',
  5016. nextDay: '[Demain à] LT',
  5017. nextWeek: 'dddd [à] LT',
  5018. lastDay: '[Hier à] LT',
  5019. lastWeek: 'dddd [dernier à] LT',
  5020. sameElse: 'L'
  5021. },
  5022. relativeTime : {
  5023. future : 'dans %s',
  5024. past : 'il y a %s',
  5025. s : 'quelques secondes',
  5026. m : 'une minute',
  5027. mm : '%d minutes',
  5028. h : 'une heure',
  5029. hh : '%d heures',
  5030. d : 'un jour',
  5031. dd : '%d jours',
  5032. M : 'un mois',
  5033. MM : '%d mois',
  5034. y : 'un an',
  5035. yy : '%d ans'
  5036. },
  5037. ordinalParse: /\d{1,2}(er|)/,
  5038. ordinal : function (number) {
  5039. return number + (number === 1 ? 'er' : '');
  5040. }
  5041. });
  5042. }));
  5043. // moment.js locale configuration
  5044. // locale : french (fr)
  5045. // author : John Fischer : https://github.com/jfroffice
  5046. (function (factory) {
  5047. factory(moment);
  5048. }(function (moment) {
  5049. return moment.defineLocale('fr', {
  5050. months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),
  5051. monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),
  5052. weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
  5053. weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
  5054. weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
  5055. longDateFormat : {
  5056. LT : 'HH:mm',
  5057. LTS : 'LT:ss',
  5058. L : 'DD/MM/YYYY',
  5059. LL : 'D MMMM YYYY',
  5060. LLL : 'D MMMM YYYY LT',
  5061. LLLL : 'dddd D MMMM YYYY LT'
  5062. },
  5063. calendar : {
  5064. sameDay: '[Aujourd\'hui à] LT',
  5065. nextDay: '[Demain à] LT',
  5066. nextWeek: 'dddd [à] LT',
  5067. lastDay: '[Hier à] LT',
  5068. lastWeek: 'dddd [dernier à] LT',
  5069. sameElse: 'L'
  5070. },
  5071. relativeTime : {
  5072. future : 'dans %s',
  5073. past : 'il y a %s',
  5074. s : 'quelques secondes',
  5075. m : 'une minute',
  5076. mm : '%d minutes',
  5077. h : 'une heure',
  5078. hh : '%d heures',
  5079. d : 'un jour',
  5080. dd : '%d jours',
  5081. M : 'un mois',
  5082. MM : '%d mois',
  5083. y : 'un an',
  5084. yy : '%d ans'
  5085. },
  5086. ordinalParse: /\d{1,2}(er|)/,
  5087. ordinal : function (number) {
  5088. return number + (number === 1 ? 'er' : '');
  5089. },
  5090. week : {
  5091. dow : 1, // Monday is the first day of the week.
  5092. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5093. }
  5094. });
  5095. }));
  5096. // moment.js locale configuration
  5097. // locale : frisian (fy)
  5098. // author : Robin van der Vliet : https://github.com/robin0van0der0v
  5099. (function (factory) {
  5100. factory(moment);
  5101. }(function (moment) {
  5102. var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
  5103. monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
  5104. return moment.defineLocale('fy', {
  5105. months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),
  5106. monthsShort : function (m, format) {
  5107. if (/-MMM-/.test(format)) {
  5108. return monthsShortWithoutDots[m.month()];
  5109. } else {
  5110. return monthsShortWithDots[m.month()];
  5111. }
  5112. },
  5113. weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),
  5114. weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),
  5115. weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
  5116. longDateFormat : {
  5117. LT : 'HH:mm',
  5118. LTS : 'LT:ss',
  5119. L : 'DD-MM-YYYY',
  5120. LL : 'D MMMM YYYY',
  5121. LLL : 'D MMMM YYYY LT',
  5122. LLLL : 'dddd D MMMM YYYY LT'
  5123. },
  5124. calendar : {
  5125. sameDay: '[hjoed om] LT',
  5126. nextDay: '[moarn om] LT',
  5127. nextWeek: 'dddd [om] LT',
  5128. lastDay: '[juster om] LT',
  5129. lastWeek: '[ôfrûne] dddd [om] LT',
  5130. sameElse: 'L'
  5131. },
  5132. relativeTime : {
  5133. future : 'oer %s',
  5134. past : '%s lyn',
  5135. s : 'in pear sekonden',
  5136. m : 'ien minút',
  5137. mm : '%d minuten',
  5138. h : 'ien oere',
  5139. hh : '%d oeren',
  5140. d : 'ien dei',
  5141. dd : '%d dagen',
  5142. M : 'ien moanne',
  5143. MM : '%d moannen',
  5144. y : 'ien jier',
  5145. yy : '%d jierren'
  5146. },
  5147. ordinalParse: /\d{1,2}(ste|de)/,
  5148. ordinal : function (number) {
  5149. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  5150. },
  5151. week : {
  5152. dow : 1, // Monday is the first day of the week.
  5153. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5154. }
  5155. });
  5156. }));
  5157. // moment.js locale configuration
  5158. // locale : galician (gl)
  5159. // author : Juan G. Hurtado : https://github.com/juanghurtado
  5160. (function (factory) {
  5161. factory(moment);
  5162. }(function (moment) {
  5163. return moment.defineLocale('gl', {
  5164. months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'),
  5165. monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'),
  5166. weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'),
  5167. weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'),
  5168. weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
  5169. longDateFormat : {
  5170. LT : 'H:mm',
  5171. LTS : 'LT:ss',
  5172. L : 'DD/MM/YYYY',
  5173. LL : 'D MMMM YYYY',
  5174. LLL : 'D MMMM YYYY LT',
  5175. LLLL : 'dddd D MMMM YYYY LT'
  5176. },
  5177. calendar : {
  5178. sameDay : function () {
  5179. return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  5180. },
  5181. nextDay : function () {
  5182. return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  5183. },
  5184. nextWeek : function () {
  5185. return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  5186. },
  5187. lastDay : function () {
  5188. return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
  5189. },
  5190. lastWeek : function () {
  5191. return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  5192. },
  5193. sameElse : 'L'
  5194. },
  5195. relativeTime : {
  5196. future : function (str) {
  5197. if (str === 'uns segundos') {
  5198. return 'nuns segundos';
  5199. }
  5200. return 'en ' + str;
  5201. },
  5202. past : 'hai %s',
  5203. s : 'uns segundos',
  5204. m : 'un minuto',
  5205. mm : '%d minutos',
  5206. h : 'unha hora',
  5207. hh : '%d horas',
  5208. d : 'un día',
  5209. dd : '%d días',
  5210. M : 'un mes',
  5211. MM : '%d meses',
  5212. y : 'un ano',
  5213. yy : '%d anos'
  5214. },
  5215. ordinalParse : /\d{1,2}º/,
  5216. ordinal : '%dº',
  5217. week : {
  5218. dow : 1, // Monday is the first day of the week.
  5219. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5220. }
  5221. });
  5222. }));
  5223. // moment.js locale configuration
  5224. // locale : Hebrew (he)
  5225. // author : Tomer Cohen : https://github.com/tomer
  5226. // author : Moshe Simantov : https://github.com/DevelopmentIL
  5227. // author : Tal Ater : https://github.com/TalAter
  5228. (function (factory) {
  5229. factory(moment);
  5230. }(function (moment) {
  5231. return moment.defineLocale('he', {
  5232. months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),
  5233. monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
  5234. weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
  5235. weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
  5236. weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
  5237. longDateFormat : {
  5238. LT : 'HH:mm',
  5239. LTS : 'LT:ss',
  5240. L : 'DD/MM/YYYY',
  5241. LL : 'D [ב]MMMM YYYY',
  5242. LLL : 'D [ב]MMMM YYYY LT',
  5243. LLLL : 'dddd, D [ב]MMMM YYYY LT',
  5244. l : 'D/M/YYYY',
  5245. ll : 'D MMM YYYY',
  5246. lll : 'D MMM YYYY LT',
  5247. llll : 'ddd, D MMM YYYY LT'
  5248. },
  5249. calendar : {
  5250. sameDay : '[היום ב־]LT',
  5251. nextDay : '[מחר ב־]LT',
  5252. nextWeek : 'dddd [בשעה] LT',
  5253. lastDay : '[אתמול ב־]LT',
  5254. lastWeek : '[ביום] dddd [האחרון בשעה] LT',
  5255. sameElse : 'L'
  5256. },
  5257. relativeTime : {
  5258. future : 'בעוד %s',
  5259. past : 'לפני %s',
  5260. s : 'מספר שניות',
  5261. m : 'דקה',
  5262. mm : '%d דקות',
  5263. h : 'שעה',
  5264. hh : function (number) {
  5265. if (number === 2) {
  5266. return 'שעתיים';
  5267. }
  5268. return number + ' שעות';
  5269. },
  5270. d : 'יום',
  5271. dd : function (number) {
  5272. if (number === 2) {
  5273. return 'יומיים';
  5274. }
  5275. return number + ' ימים';
  5276. },
  5277. M : 'חודש',
  5278. MM : function (number) {
  5279. if (number === 2) {
  5280. return 'חודשיים';
  5281. }
  5282. return number + ' חודשים';
  5283. },
  5284. y : 'שנה',
  5285. yy : function (number) {
  5286. if (number === 2) {
  5287. return 'שנתיים';
  5288. } else if (number % 10 === 0 && number !== 10) {
  5289. return number + ' שנה';
  5290. }
  5291. return number + ' שנים';
  5292. }
  5293. }
  5294. });
  5295. }));
  5296. // moment.js locale configuration
  5297. // locale : hindi (hi)
  5298. // author : Mayank Singhal : https://github.com/mayanksinghal
  5299. (function (factory) {
  5300. factory(moment);
  5301. }(function (moment) {
  5302. var symbolMap = {
  5303. '1': '१',
  5304. '2': '२',
  5305. '3': '३',
  5306. '4': '४',
  5307. '5': '५',
  5308. '6': '६',
  5309. '7': '७',
  5310. '8': '८',
  5311. '9': '९',
  5312. '0': '०'
  5313. },
  5314. numberMap = {
  5315. '१': '1',
  5316. '२': '2',
  5317. '३': '3',
  5318. '४': '4',
  5319. '५': '5',
  5320. '६': '6',
  5321. '७': '7',
  5322. '८': '8',
  5323. '९': '9',
  5324. '०': '0'
  5325. };
  5326. return moment.defineLocale('hi', {
  5327. months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),
  5328. monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
  5329. weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  5330. weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
  5331. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  5332. longDateFormat : {
  5333. LT : 'A h:mm बजे',
  5334. LTS : 'A h:mm:ss बजे',
  5335. L : 'DD/MM/YYYY',
  5336. LL : 'D MMMM YYYY',
  5337. LLL : 'D MMMM YYYY, LT',
  5338. LLLL : 'dddd, D MMMM YYYY, LT'
  5339. },
  5340. calendar : {
  5341. sameDay : '[आज] LT',
  5342. nextDay : '[कल] LT',
  5343. nextWeek : 'dddd, LT',
  5344. lastDay : '[कल] LT',
  5345. lastWeek : '[पिछले] dddd, LT',
  5346. sameElse : 'L'
  5347. },
  5348. relativeTime : {
  5349. future : '%s में',
  5350. past : '%s पहले',
  5351. s : 'कुछ ही क्षण',
  5352. m : 'एक मिनट',
  5353. mm : '%d मिनट',
  5354. h : 'एक घंटा',
  5355. hh : '%d घंटे',
  5356. d : 'एक दिन',
  5357. dd : '%d दिन',
  5358. M : 'एक महीने',
  5359. MM : '%d महीने',
  5360. y : 'एक वर्ष',
  5361. yy : '%d वर्ष'
  5362. },
  5363. preparse: function (string) {
  5364. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  5365. return numberMap[match];
  5366. });
  5367. },
  5368. postformat: function (string) {
  5369. return string.replace(/\d/g, function (match) {
  5370. return symbolMap[match];
  5371. });
  5372. },
  5373. // Hindi notation for meridiems are quite fuzzy in practice. While there exists
  5374. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
  5375. meridiemParse: /रात|सुबह|दोपहर|शाम/,
  5376. meridiemHour : function (hour, meridiem) {
  5377. if (hour === 12) {
  5378. hour = 0;
  5379. }
  5380. if (meridiem === 'रात') {
  5381. return hour < 4 ? hour : hour + 12;
  5382. } else if (meridiem === 'सुबह') {
  5383. return hour;
  5384. } else if (meridiem === 'दोपहर') {
  5385. return hour >= 10 ? hour : hour + 12;
  5386. } else if (meridiem === 'शाम') {
  5387. return hour + 12;
  5388. }
  5389. },
  5390. meridiem : function (hour, minute, isLower) {
  5391. if (hour < 4) {
  5392. return 'रात';
  5393. } else if (hour < 10) {
  5394. return 'सुबह';
  5395. } else if (hour < 17) {
  5396. return 'दोपहर';
  5397. } else if (hour < 20) {
  5398. return 'शाम';
  5399. } else {
  5400. return 'रात';
  5401. }
  5402. },
  5403. week : {
  5404. dow : 0, // Sunday is the first day of the week.
  5405. doy : 6 // The week that contains Jan 1st is the first week of the year.
  5406. }
  5407. });
  5408. }));
  5409. // moment.js locale configuration
  5410. // locale : hrvatski (hr)
  5411. // author : Bojan Marković : https://github.com/bmarkovic
  5412. // based on (sl) translation by Robert Sedovšek
  5413. (function (factory) {
  5414. factory(moment);
  5415. }(function (moment) {
  5416. function translate(number, withoutSuffix, key) {
  5417. var result = number + ' ';
  5418. switch (key) {
  5419. case 'm':
  5420. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  5421. case 'mm':
  5422. if (number === 1) {
  5423. result += 'minuta';
  5424. } else if (number === 2 || number === 3 || number === 4) {
  5425. result += 'minute';
  5426. } else {
  5427. result += 'minuta';
  5428. }
  5429. return result;
  5430. case 'h':
  5431. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  5432. case 'hh':
  5433. if (number === 1) {
  5434. result += 'sat';
  5435. } else if (number === 2 || number === 3 || number === 4) {
  5436. result += 'sata';
  5437. } else {
  5438. result += 'sati';
  5439. }
  5440. return result;
  5441. case 'dd':
  5442. if (number === 1) {
  5443. result += 'dan';
  5444. } else {
  5445. result += 'dana';
  5446. }
  5447. return result;
  5448. case 'MM':
  5449. if (number === 1) {
  5450. result += 'mjesec';
  5451. } else if (number === 2 || number === 3 || number === 4) {
  5452. result += 'mjeseca';
  5453. } else {
  5454. result += 'mjeseci';
  5455. }
  5456. return result;
  5457. case 'yy':
  5458. if (number === 1) {
  5459. result += 'godina';
  5460. } else if (number === 2 || number === 3 || number === 4) {
  5461. result += 'godine';
  5462. } else {
  5463. result += 'godina';
  5464. }
  5465. return result;
  5466. }
  5467. }
  5468. return moment.defineLocale('hr', {
  5469. months : 'sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'),
  5470. monthsShort : 'sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),
  5471. weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
  5472. weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
  5473. weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
  5474. longDateFormat : {
  5475. LT : 'H:mm',
  5476. LTS : 'LT:ss',
  5477. L : 'DD. MM. YYYY',
  5478. LL : 'D. MMMM YYYY',
  5479. LLL : 'D. MMMM YYYY LT',
  5480. LLLL : 'dddd, D. MMMM YYYY LT'
  5481. },
  5482. calendar : {
  5483. sameDay : '[danas u] LT',
  5484. nextDay : '[sutra u] LT',
  5485. nextWeek : function () {
  5486. switch (this.day()) {
  5487. case 0:
  5488. return '[u] [nedjelju] [u] LT';
  5489. case 3:
  5490. return '[u] [srijedu] [u] LT';
  5491. case 6:
  5492. return '[u] [subotu] [u] LT';
  5493. case 1:
  5494. case 2:
  5495. case 4:
  5496. case 5:
  5497. return '[u] dddd [u] LT';
  5498. }
  5499. },
  5500. lastDay : '[jučer u] LT',
  5501. lastWeek : function () {
  5502. switch (this.day()) {
  5503. case 0:
  5504. case 3:
  5505. return '[prošlu] dddd [u] LT';
  5506. case 6:
  5507. return '[prošle] [subote] [u] LT';
  5508. case 1:
  5509. case 2:
  5510. case 4:
  5511. case 5:
  5512. return '[prošli] dddd [u] LT';
  5513. }
  5514. },
  5515. sameElse : 'L'
  5516. },
  5517. relativeTime : {
  5518. future : 'za %s',
  5519. past : 'prije %s',
  5520. s : 'par sekundi',
  5521. m : translate,
  5522. mm : translate,
  5523. h : translate,
  5524. hh : translate,
  5525. d : 'dan',
  5526. dd : translate,
  5527. M : 'mjesec',
  5528. MM : translate,
  5529. y : 'godinu',
  5530. yy : translate
  5531. },
  5532. ordinalParse: /\d{1,2}\./,
  5533. ordinal : '%d.',
  5534. week : {
  5535. dow : 1, // Monday is the first day of the week.
  5536. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5537. }
  5538. });
  5539. }));
  5540. // moment.js locale configuration
  5541. // locale : hungarian (hu)
  5542. // author : Adam Brunner : https://github.com/adambrunner
  5543. (function (factory) {
  5544. factory(moment);
  5545. }(function (moment) {
  5546. var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
  5547. function translate(number, withoutSuffix, key, isFuture) {
  5548. var num = number,
  5549. suffix;
  5550. switch (key) {
  5551. case 's':
  5552. return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
  5553. case 'm':
  5554. return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
  5555. case 'mm':
  5556. return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
  5557. case 'h':
  5558. return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
  5559. case 'hh':
  5560. return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
  5561. case 'd':
  5562. return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
  5563. case 'dd':
  5564. return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
  5565. case 'M':
  5566. return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  5567. case 'MM':
  5568. return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  5569. case 'y':
  5570. return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
  5571. case 'yy':
  5572. return num + (isFuture || withoutSuffix ? ' év' : ' éve');
  5573. }
  5574. return '';
  5575. }
  5576. function week(isFuture) {
  5577. return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
  5578. }
  5579. return moment.defineLocale('hu', {
  5580. months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),
  5581. monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),
  5582. weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
  5583. weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
  5584. weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
  5585. longDateFormat : {
  5586. LT : 'H:mm',
  5587. LTS : 'LT:ss',
  5588. L : 'YYYY.MM.DD.',
  5589. LL : 'YYYY. MMMM D.',
  5590. LLL : 'YYYY. MMMM D., LT',
  5591. LLLL : 'YYYY. MMMM D., dddd LT'
  5592. },
  5593. meridiemParse: /de|du/i,
  5594. isPM: function (input) {
  5595. return input.charAt(1).toLowerCase() === 'u';
  5596. },
  5597. meridiem : function (hours, minutes, isLower) {
  5598. if (hours < 12) {
  5599. return isLower === true ? 'de' : 'DE';
  5600. } else {
  5601. return isLower === true ? 'du' : 'DU';
  5602. }
  5603. },
  5604. calendar : {
  5605. sameDay : '[ma] LT[-kor]',
  5606. nextDay : '[holnap] LT[-kor]',
  5607. nextWeek : function () {
  5608. return week.call(this, true);
  5609. },
  5610. lastDay : '[tegnap] LT[-kor]',
  5611. lastWeek : function () {
  5612. return week.call(this, false);
  5613. },
  5614. sameElse : 'L'
  5615. },
  5616. relativeTime : {
  5617. future : '%s múlva',
  5618. past : '%s',
  5619. s : translate,
  5620. m : translate,
  5621. mm : translate,
  5622. h : translate,
  5623. hh : translate,
  5624. d : translate,
  5625. dd : translate,
  5626. M : translate,
  5627. MM : translate,
  5628. y : translate,
  5629. yy : translate
  5630. },
  5631. ordinalParse: /\d{1,2}\./,
  5632. ordinal : '%d.',
  5633. week : {
  5634. dow : 1, // Monday is the first day of the week.
  5635. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5636. }
  5637. });
  5638. }));
  5639. // moment.js locale configuration
  5640. // locale : Armenian (hy-am)
  5641. // author : Armendarabyan : https://github.com/armendarabyan
  5642. (function (factory) {
  5643. factory(moment);
  5644. }(function (moment) {
  5645. function monthsCaseReplace(m, format) {
  5646. var months = {
  5647. 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
  5648. 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
  5649. },
  5650. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  5651. 'accusative' :
  5652. 'nominative';
  5653. return months[nounCase][m.month()];
  5654. }
  5655. function monthsShortCaseReplace(m, format) {
  5656. var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_');
  5657. return monthsShort[m.month()];
  5658. }
  5659. function weekdaysCaseReplace(m, format) {
  5660. var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_');
  5661. return weekdays[m.day()];
  5662. }
  5663. return moment.defineLocale('hy-am', {
  5664. months : monthsCaseReplace,
  5665. monthsShort : monthsShortCaseReplace,
  5666. weekdays : weekdaysCaseReplace,
  5667. weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  5668. weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
  5669. longDateFormat : {
  5670. LT : 'HH:mm',
  5671. LTS : 'LT:ss',
  5672. L : 'DD.MM.YYYY',
  5673. LL : 'D MMMM YYYY թ.',
  5674. LLL : 'D MMMM YYYY թ., LT',
  5675. LLLL : 'dddd, D MMMM YYYY թ., LT'
  5676. },
  5677. calendar : {
  5678. sameDay: '[այսօր] LT',
  5679. nextDay: '[վաղը] LT',
  5680. lastDay: '[երեկ] LT',
  5681. nextWeek: function () {
  5682. return 'dddd [օրը ժամը] LT';
  5683. },
  5684. lastWeek: function () {
  5685. return '[անցած] dddd [օրը ժամը] LT';
  5686. },
  5687. sameElse: 'L'
  5688. },
  5689. relativeTime : {
  5690. future : '%s հետո',
  5691. past : '%s առաջ',
  5692. s : 'մի քանի վայրկյան',
  5693. m : 'րոպե',
  5694. mm : '%d րոպե',
  5695. h : 'ժամ',
  5696. hh : '%d ժամ',
  5697. d : 'օր',
  5698. dd : '%d օր',
  5699. M : 'ամիս',
  5700. MM : '%d ամիս',
  5701. y : 'տարի',
  5702. yy : '%d տարի'
  5703. },
  5704. meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
  5705. isPM: function (input) {
  5706. return /^(ցերեկվա|երեկոյան)$/.test(input);
  5707. },
  5708. meridiem : function (hour) {
  5709. if (hour < 4) {
  5710. return 'գիշերվա';
  5711. } else if (hour < 12) {
  5712. return 'առավոտվա';
  5713. } else if (hour < 17) {
  5714. return 'ցերեկվա';
  5715. } else {
  5716. return 'երեկոյան';
  5717. }
  5718. },
  5719. ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
  5720. ordinal: function (number, period) {
  5721. switch (period) {
  5722. case 'DDD':
  5723. case 'w':
  5724. case 'W':
  5725. case 'DDDo':
  5726. if (number === 1) {
  5727. return number + '-ին';
  5728. }
  5729. return number + '-րդ';
  5730. default:
  5731. return number;
  5732. }
  5733. },
  5734. week : {
  5735. dow : 1, // Monday is the first day of the week.
  5736. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5737. }
  5738. });
  5739. }));
  5740. // moment.js locale configuration
  5741. // locale : Bahasa Indonesia (id)
  5742. // author : Mohammad Satrio Utomo : https://github.com/tyok
  5743. // reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
  5744. (function (factory) {
  5745. factory(moment);
  5746. }(function (moment) {
  5747. return moment.defineLocale('id', {
  5748. months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
  5749. monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),
  5750. weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
  5751. weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
  5752. weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
  5753. longDateFormat : {
  5754. LT : 'HH.mm',
  5755. LTS : 'LT.ss',
  5756. L : 'DD/MM/YYYY',
  5757. LL : 'D MMMM YYYY',
  5758. LLL : 'D MMMM YYYY [pukul] LT',
  5759. LLLL : 'dddd, D MMMM YYYY [pukul] LT'
  5760. },
  5761. meridiemParse: /pagi|siang|sore|malam/,
  5762. meridiemHour : function (hour, meridiem) {
  5763. if (hour === 12) {
  5764. hour = 0;
  5765. }
  5766. if (meridiem === 'pagi') {
  5767. return hour;
  5768. } else if (meridiem === 'siang') {
  5769. return hour >= 11 ? hour : hour + 12;
  5770. } else if (meridiem === 'sore' || meridiem === 'malam') {
  5771. return hour + 12;
  5772. }
  5773. },
  5774. meridiem : function (hours, minutes, isLower) {
  5775. if (hours < 11) {
  5776. return 'pagi';
  5777. } else if (hours < 15) {
  5778. return 'siang';
  5779. } else if (hours < 19) {
  5780. return 'sore';
  5781. } else {
  5782. return 'malam';
  5783. }
  5784. },
  5785. calendar : {
  5786. sameDay : '[Hari ini pukul] LT',
  5787. nextDay : '[Besok pukul] LT',
  5788. nextWeek : 'dddd [pukul] LT',
  5789. lastDay : '[Kemarin pukul] LT',
  5790. lastWeek : 'dddd [lalu pukul] LT',
  5791. sameElse : 'L'
  5792. },
  5793. relativeTime : {
  5794. future : 'dalam %s',
  5795. past : '%s yang lalu',
  5796. s : 'beberapa detik',
  5797. m : 'semenit',
  5798. mm : '%d menit',
  5799. h : 'sejam',
  5800. hh : '%d jam',
  5801. d : 'sehari',
  5802. dd : '%d hari',
  5803. M : 'sebulan',
  5804. MM : '%d bulan',
  5805. y : 'setahun',
  5806. yy : '%d tahun'
  5807. },
  5808. week : {
  5809. dow : 1, // Monday is the first day of the week.
  5810. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5811. }
  5812. });
  5813. }));
  5814. // moment.js locale configuration
  5815. // locale : icelandic (is)
  5816. // author : Hinrik Örn Sigurðsson : https://github.com/hinrik
  5817. (function (factory) {
  5818. factory(moment);
  5819. }(function (moment) {
  5820. function plural(n) {
  5821. if (n % 100 === 11) {
  5822. return true;
  5823. } else if (n % 10 === 1) {
  5824. return false;
  5825. }
  5826. return true;
  5827. }
  5828. function translate(number, withoutSuffix, key, isFuture) {
  5829. var result = number + ' ';
  5830. switch (key) {
  5831. case 's':
  5832. return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
  5833. case 'm':
  5834. return withoutSuffix ? 'mínúta' : 'mínútu';
  5835. case 'mm':
  5836. if (plural(number)) {
  5837. return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
  5838. } else if (withoutSuffix) {
  5839. return result + 'mínúta';
  5840. }
  5841. return result + 'mínútu';
  5842. case 'hh':
  5843. if (plural(number)) {
  5844. return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
  5845. }
  5846. return result + 'klukkustund';
  5847. case 'd':
  5848. if (withoutSuffix) {
  5849. return 'dagur';
  5850. }
  5851. return isFuture ? 'dag' : 'degi';
  5852. case 'dd':
  5853. if (plural(number)) {
  5854. if (withoutSuffix) {
  5855. return result + 'dagar';
  5856. }
  5857. return result + (isFuture ? 'daga' : 'dögum');
  5858. } else if (withoutSuffix) {
  5859. return result + 'dagur';
  5860. }
  5861. return result + (isFuture ? 'dag' : 'degi');
  5862. case 'M':
  5863. if (withoutSuffix) {
  5864. return 'mánuður';
  5865. }
  5866. return isFuture ? 'mánuð' : 'mánuði';
  5867. case 'MM':
  5868. if (plural(number)) {
  5869. if (withoutSuffix) {
  5870. return result + 'mánuðir';
  5871. }
  5872. return result + (isFuture ? 'mánuði' : 'mánuðum');
  5873. } else if (withoutSuffix) {
  5874. return result + 'mánuður';
  5875. }
  5876. return result + (isFuture ? 'mánuð' : 'mánuði');
  5877. case 'y':
  5878. return withoutSuffix || isFuture ? 'ár' : 'ári';
  5879. case 'yy':
  5880. if (plural(number)) {
  5881. return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
  5882. }
  5883. return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
  5884. }
  5885. }
  5886. return moment.defineLocale('is', {
  5887. months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),
  5888. monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
  5889. weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),
  5890. weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
  5891. weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
  5892. longDateFormat : {
  5893. LT : 'H:mm',
  5894. LTS : 'LT:ss',
  5895. L : 'DD/MM/YYYY',
  5896. LL : 'D. MMMM YYYY',
  5897. LLL : 'D. MMMM YYYY [kl.] LT',
  5898. LLLL : 'dddd, D. MMMM YYYY [kl.] LT'
  5899. },
  5900. calendar : {
  5901. sameDay : '[í dag kl.] LT',
  5902. nextDay : '[á morgun kl.] LT',
  5903. nextWeek : 'dddd [kl.] LT',
  5904. lastDay : '[í gær kl.] LT',
  5905. lastWeek : '[síðasta] dddd [kl.] LT',
  5906. sameElse : 'L'
  5907. },
  5908. relativeTime : {
  5909. future : 'eftir %s',
  5910. past : 'fyrir %s síðan',
  5911. s : translate,
  5912. m : translate,
  5913. mm : translate,
  5914. h : 'klukkustund',
  5915. hh : translate,
  5916. d : translate,
  5917. dd : translate,
  5918. M : translate,
  5919. MM : translate,
  5920. y : translate,
  5921. yy : translate
  5922. },
  5923. ordinalParse: /\d{1,2}\./,
  5924. ordinal : '%d.',
  5925. week : {
  5926. dow : 1, // Monday is the first day of the week.
  5927. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5928. }
  5929. });
  5930. }));
  5931. // moment.js locale configuration
  5932. // locale : italian (it)
  5933. // author : Lorenzo : https://github.com/aliem
  5934. // author: Mattia Larentis: https://github.com/nostalgiaz
  5935. (function (factory) {
  5936. factory(moment);
  5937. }(function (moment) {
  5938. return moment.defineLocale('it', {
  5939. months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),
  5940. monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
  5941. weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),
  5942. weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),
  5943. weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'),
  5944. longDateFormat : {
  5945. LT : 'HH:mm',
  5946. LTS : 'LT:ss',
  5947. L : 'DD/MM/YYYY',
  5948. LL : 'D MMMM YYYY',
  5949. LLL : 'D MMMM YYYY LT',
  5950. LLLL : 'dddd, D MMMM YYYY LT'
  5951. },
  5952. calendar : {
  5953. sameDay: '[Oggi alle] LT',
  5954. nextDay: '[Domani alle] LT',
  5955. nextWeek: 'dddd [alle] LT',
  5956. lastDay: '[Ieri alle] LT',
  5957. lastWeek: function () {
  5958. switch (this.day()) {
  5959. case 0:
  5960. return '[la scorsa] dddd [alle] LT';
  5961. default:
  5962. return '[lo scorso] dddd [alle] LT';
  5963. }
  5964. },
  5965. sameElse: 'L'
  5966. },
  5967. relativeTime : {
  5968. future : function (s) {
  5969. return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;
  5970. },
  5971. past : '%s fa',
  5972. s : 'alcuni secondi',
  5973. m : 'un minuto',
  5974. mm : '%d minuti',
  5975. h : 'un\'ora',
  5976. hh : '%d ore',
  5977. d : 'un giorno',
  5978. dd : '%d giorni',
  5979. M : 'un mese',
  5980. MM : '%d mesi',
  5981. y : 'un anno',
  5982. yy : '%d anni'
  5983. },
  5984. ordinalParse : /\d{1,2}º/,
  5985. ordinal: '%dº',
  5986. week : {
  5987. dow : 1, // Monday is the first day of the week.
  5988. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5989. }
  5990. });
  5991. }));
  5992. // moment.js locale configuration
  5993. // locale : japanese (ja)
  5994. // author : LI Long : https://github.com/baryon
  5995. (function (factory) {
  5996. factory(moment);
  5997. }(function (moment) {
  5998. return moment.defineLocale('ja', {
  5999. months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  6000. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  6001. weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
  6002. weekdaysShort : '日_月_火_水_木_金_土'.split('_'),
  6003. weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
  6004. longDateFormat : {
  6005. LT : 'Ah時m分',
  6006. LTS : 'LTs秒',
  6007. L : 'YYYY/MM/DD',
  6008. LL : 'YYYY年M月D日',
  6009. LLL : 'YYYY年M月D日LT',
  6010. LLLL : 'YYYY年M月D日LT dddd'
  6011. },
  6012. meridiemParse: /午前|午後/i,
  6013. isPM : function (input) {
  6014. return input === '午後';
  6015. },
  6016. meridiem : function (hour, minute, isLower) {
  6017. if (hour < 12) {
  6018. return '午前';
  6019. } else {
  6020. return '午後';
  6021. }
  6022. },
  6023. calendar : {
  6024. sameDay : '[今日] LT',
  6025. nextDay : '[明日] LT',
  6026. nextWeek : '[来週]dddd LT',
  6027. lastDay : '[昨日] LT',
  6028. lastWeek : '[前週]dddd LT',
  6029. sameElse : 'L'
  6030. },
  6031. relativeTime : {
  6032. future : '%s後',
  6033. past : '%s前',
  6034. s : '数秒',
  6035. m : '1分',
  6036. mm : '%d分',
  6037. h : '1時間',
  6038. hh : '%d時間',
  6039. d : '1日',
  6040. dd : '%d日',
  6041. M : '1ヶ月',
  6042. MM : '%dヶ月',
  6043. y : '1年',
  6044. yy : '%d年'
  6045. }
  6046. });
  6047. }));
  6048. // moment.js locale configuration
  6049. // locale : Georgian (ka)
  6050. // author : Irakli Janiashvili : https://github.com/irakli-janiashvili
  6051. (function (factory) {
  6052. factory(moment);
  6053. }(function (moment) {
  6054. function monthsCaseReplace(m, format) {
  6055. var months = {
  6056. 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
  6057. 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
  6058. },
  6059. nounCase = (/D[oD] *MMMM?/).test(format) ?
  6060. 'accusative' :
  6061. 'nominative';
  6062. return months[nounCase][m.month()];
  6063. }
  6064. function weekdaysCaseReplace(m, format) {
  6065. var weekdays = {
  6066. 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
  6067. 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
  6068. },
  6069. nounCase = (/(წინა|შემდეგ)/).test(format) ?
  6070. 'accusative' :
  6071. 'nominative';
  6072. return weekdays[nounCase][m.day()];
  6073. }
  6074. return moment.defineLocale('ka', {
  6075. months : monthsCaseReplace,
  6076. monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
  6077. weekdays : weekdaysCaseReplace,
  6078. weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
  6079. weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
  6080. longDateFormat : {
  6081. LT : 'h:mm A',
  6082. LTS : 'h:mm:ss A',
  6083. L : 'DD/MM/YYYY',
  6084. LL : 'D MMMM YYYY',
  6085. LLL : 'D MMMM YYYY LT',
  6086. LLLL : 'dddd, D MMMM YYYY LT'
  6087. },
  6088. calendar : {
  6089. sameDay : '[დღეს] LT[-ზე]',
  6090. nextDay : '[ხვალ] LT[-ზე]',
  6091. lastDay : '[გუშინ] LT[-ზე]',
  6092. nextWeek : '[შემდეგ] dddd LT[-ზე]',
  6093. lastWeek : '[წინა] dddd LT-ზე',
  6094. sameElse : 'L'
  6095. },
  6096. relativeTime : {
  6097. future : function (s) {
  6098. return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
  6099. s.replace(/ი$/, 'ში') :
  6100. s + 'ში';
  6101. },
  6102. past : function (s) {
  6103. if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
  6104. return s.replace(/(ი|ე)$/, 'ის წინ');
  6105. }
  6106. if ((/წელი/).test(s)) {
  6107. return s.replace(/წელი$/, 'წლის წინ');
  6108. }
  6109. },
  6110. s : 'რამდენიმე წამი',
  6111. m : 'წუთი',
  6112. mm : '%d წუთი',
  6113. h : 'საათი',
  6114. hh : '%d საათი',
  6115. d : 'დღე',
  6116. dd : '%d დღე',
  6117. M : 'თვე',
  6118. MM : '%d თვე',
  6119. y : 'წელი',
  6120. yy : '%d წელი'
  6121. },
  6122. ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
  6123. ordinal : function (number) {
  6124. if (number === 0) {
  6125. return number;
  6126. }
  6127. if (number === 1) {
  6128. return number + '-ლი';
  6129. }
  6130. if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
  6131. return 'მე-' + number;
  6132. }
  6133. return number + '-ე';
  6134. },
  6135. week : {
  6136. dow : 1,
  6137. doy : 7
  6138. }
  6139. });
  6140. }));
  6141. // moment.js locale configuration
  6142. // locale : khmer (km)
  6143. // author : Kruy Vanna : https://github.com/kruyvanna
  6144. (function (factory) {
  6145. factory(moment);
  6146. }(function (moment) {
  6147. return moment.defineLocale('km', {
  6148. months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  6149. monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),
  6150. weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  6151. weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  6152. weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
  6153. longDateFormat: {
  6154. LT: 'HH:mm',
  6155. LTS : 'LT:ss',
  6156. L: 'DD/MM/YYYY',
  6157. LL: 'D MMMM YYYY',
  6158. LLL: 'D MMMM YYYY LT',
  6159. LLLL: 'dddd, D MMMM YYYY LT'
  6160. },
  6161. calendar: {
  6162. sameDay: '[ថ្ងៃនៈ ម៉ោង] LT',
  6163. nextDay: '[ស្អែក ម៉ោង] LT',
  6164. nextWeek: 'dddd [ម៉ោង] LT',
  6165. lastDay: '[ម្សិលមិញ ម៉ោង] LT',
  6166. lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
  6167. sameElse: 'L'
  6168. },
  6169. relativeTime: {
  6170. future: '%sទៀត',
  6171. past: '%sមុន',
  6172. s: 'ប៉ុន្មានវិនាទី',
  6173. m: 'មួយនាទី',
  6174. mm: '%d នាទី',
  6175. h: 'មួយម៉ោង',
  6176. hh: '%d ម៉ោង',
  6177. d: 'មួយថ្ងៃ',
  6178. dd: '%d ថ្ងៃ',
  6179. M: 'មួយខែ',
  6180. MM: '%d ខែ',
  6181. y: 'មួយឆ្នាំ',
  6182. yy: '%d ឆ្នាំ'
  6183. },
  6184. week: {
  6185. dow: 1, // Monday is the first day of the week.
  6186. doy: 4 // The week that contains Jan 4th is the first week of the year.
  6187. }
  6188. });
  6189. }));
  6190. // moment.js locale configuration
  6191. // locale : korean (ko)
  6192. //
  6193. // authors
  6194. //
  6195. // - Kyungwook, Park : https://github.com/kyungw00k
  6196. // - Jeeeyul Lee <jeeeyul@gmail.com>
  6197. (function (factory) {
  6198. factory(moment);
  6199. }(function (moment) {
  6200. return moment.defineLocale('ko', {
  6201. months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  6202. monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
  6203. weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
  6204. weekdaysShort : '일_월_화_수_목_금_토'.split('_'),
  6205. weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
  6206. longDateFormat : {
  6207. LT : 'A h시 m분',
  6208. LTS : 'A h시 m분 s초',
  6209. L : 'YYYY.MM.DD',
  6210. LL : 'YYYY년 MMMM D일',
  6211. LLL : 'YYYY년 MMMM D일 LT',
  6212. LLLL : 'YYYY년 MMMM D일 dddd LT'
  6213. },
  6214. calendar : {
  6215. sameDay : '오늘 LT',
  6216. nextDay : '내일 LT',
  6217. nextWeek : 'dddd LT',
  6218. lastDay : '어제 LT',
  6219. lastWeek : '지난주 dddd LT',
  6220. sameElse : 'L'
  6221. },
  6222. relativeTime : {
  6223. future : '%s 후',
  6224. past : '%s 전',
  6225. s : '몇초',
  6226. ss : '%d초',
  6227. m : '일분',
  6228. mm : '%d분',
  6229. h : '한시간',
  6230. hh : '%d시간',
  6231. d : '하루',
  6232. dd : '%d일',
  6233. M : '한달',
  6234. MM : '%d달',
  6235. y : '일년',
  6236. yy : '%d년'
  6237. },
  6238. ordinalParse : /\d{1,2}일/,
  6239. ordinal : '%d일',
  6240. meridiemParse : /오전|오후/,
  6241. isPM : function (token) {
  6242. return token === '오후';
  6243. },
  6244. meridiem : function (hour, minute, isUpper) {
  6245. return hour < 12 ? '오전' : '오후';
  6246. }
  6247. });
  6248. }));
  6249. // moment.js locale configuration
  6250. // locale : Luxembourgish (lb)
  6251. // author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
  6252. // Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the
  6253. // deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday'
  6254. // and 'eifelerRegelAppliesToNumber' methods are meant for
  6255. (function (factory) {
  6256. factory(moment);
  6257. }(function (moment) {
  6258. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  6259. var format = {
  6260. 'm': ['eng Minutt', 'enger Minutt'],
  6261. 'h': ['eng Stonn', 'enger Stonn'],
  6262. 'd': ['een Dag', 'engem Dag'],
  6263. 'M': ['ee Mount', 'engem Mount'],
  6264. 'y': ['ee Joer', 'engem Joer']
  6265. };
  6266. return withoutSuffix ? format[key][0] : format[key][1];
  6267. }
  6268. function processFutureTime(string) {
  6269. var number = string.substr(0, string.indexOf(' '));
  6270. if (eifelerRegelAppliesToNumber(number)) {
  6271. return 'a ' + string;
  6272. }
  6273. return 'an ' + string;
  6274. }
  6275. function processPastTime(string) {
  6276. var number = string.substr(0, string.indexOf(' '));
  6277. if (eifelerRegelAppliesToNumber(number)) {
  6278. return 'viru ' + string;
  6279. }
  6280. return 'virun ' + string;
  6281. }
  6282. /**
  6283. * Returns true if the word before the given number loses the '-n' ending.
  6284. * e.g. 'an 10 Deeg' but 'a 5 Deeg'
  6285. *
  6286. * @param number {integer}
  6287. * @returns {boolean}
  6288. */
  6289. function eifelerRegelAppliesToNumber(number) {
  6290. number = parseInt(number, 10);
  6291. if (isNaN(number)) {
  6292. return false;
  6293. }
  6294. if (number < 0) {
  6295. // Negative Number --> always true
  6296. return true;
  6297. } else if (number < 10) {
  6298. // Only 1 digit
  6299. if (4 <= number && number <= 7) {
  6300. return true;
  6301. }
  6302. return false;
  6303. } else if (number < 100) {
  6304. // 2 digits
  6305. var lastDigit = number % 10, firstDigit = number / 10;
  6306. if (lastDigit === 0) {
  6307. return eifelerRegelAppliesToNumber(firstDigit);
  6308. }
  6309. return eifelerRegelAppliesToNumber(lastDigit);
  6310. } else if (number < 10000) {
  6311. // 3 or 4 digits --> recursively check first digit
  6312. while (number >= 10) {
  6313. number = number / 10;
  6314. }
  6315. return eifelerRegelAppliesToNumber(number);
  6316. } else {
  6317. // Anything larger than 4 digits: recursively check first n-3 digits
  6318. number = number / 1000;
  6319. return eifelerRegelAppliesToNumber(number);
  6320. }
  6321. }
  6322. return moment.defineLocale('lb', {
  6323. months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  6324. monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  6325. weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
  6326. weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
  6327. weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
  6328. longDateFormat: {
  6329. LT: 'H:mm [Auer]',
  6330. LTS: 'H:mm:ss [Auer]',
  6331. L: 'DD.MM.YYYY',
  6332. LL: 'D. MMMM YYYY',
  6333. LLL: 'D. MMMM YYYY LT',
  6334. LLLL: 'dddd, D. MMMM YYYY LT'
  6335. },
  6336. calendar: {
  6337. sameDay: '[Haut um] LT',
  6338. sameElse: 'L',
  6339. nextDay: '[Muer um] LT',
  6340. nextWeek: 'dddd [um] LT',
  6341. lastDay: '[Gëschter um] LT',
  6342. lastWeek: function () {
  6343. // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
  6344. switch (this.day()) {
  6345. case 2:
  6346. case 4:
  6347. return '[Leschten] dddd [um] LT';
  6348. default:
  6349. return '[Leschte] dddd [um] LT';
  6350. }
  6351. }
  6352. },
  6353. relativeTime : {
  6354. future : processFutureTime,
  6355. past : processPastTime,
  6356. s : 'e puer Sekonnen',
  6357. m : processRelativeTime,
  6358. mm : '%d Minutten',
  6359. h : processRelativeTime,
  6360. hh : '%d Stonnen',
  6361. d : processRelativeTime,
  6362. dd : '%d Deeg',
  6363. M : processRelativeTime,
  6364. MM : '%d Méint',
  6365. y : processRelativeTime,
  6366. yy : '%d Joer'
  6367. },
  6368. ordinalParse: /\d{1,2}\./,
  6369. ordinal: '%d.',
  6370. week: {
  6371. dow: 1, // Monday is the first day of the week.
  6372. doy: 4 // The week that contains Jan 4th is the first week of the year.
  6373. }
  6374. });
  6375. }));
  6376. // moment.js locale configuration
  6377. // locale : Lithuanian (lt)
  6378. // author : Mindaugas Mozūras : https://github.com/mmozuras
  6379. (function (factory) {
  6380. factory(moment);
  6381. }(function (moment) {
  6382. var units = {
  6383. 'm' : 'minutė_minutės_minutę',
  6384. 'mm': 'minutės_minučių_minutes',
  6385. 'h' : 'valanda_valandos_valandą',
  6386. 'hh': 'valandos_valandų_valandas',
  6387. 'd' : 'diena_dienos_dieną',
  6388. 'dd': 'dienos_dienų_dienas',
  6389. 'M' : 'mėnuo_mėnesio_mėnesį',
  6390. 'MM': 'mėnesiai_mėnesių_mėnesius',
  6391. 'y' : 'metai_metų_metus',
  6392. 'yy': 'metai_metų_metus'
  6393. },
  6394. weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_');
  6395. function translateSeconds(number, withoutSuffix, key, isFuture) {
  6396. if (withoutSuffix) {
  6397. return 'kelios sekundės';
  6398. } else {
  6399. return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
  6400. }
  6401. }
  6402. function translateSingular(number, withoutSuffix, key, isFuture) {
  6403. return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
  6404. }
  6405. function special(number) {
  6406. return number % 10 === 0 || (number > 10 && number < 20);
  6407. }
  6408. function forms(key) {
  6409. return units[key].split('_');
  6410. }
  6411. function translate(number, withoutSuffix, key, isFuture) {
  6412. var result = number + ' ';
  6413. if (number === 1) {
  6414. return result + translateSingular(number, withoutSuffix, key[0], isFuture);
  6415. } else if (withoutSuffix) {
  6416. return result + (special(number) ? forms(key)[1] : forms(key)[0]);
  6417. } else {
  6418. if (isFuture) {
  6419. return result + forms(key)[1];
  6420. } else {
  6421. return result + (special(number) ? forms(key)[1] : forms(key)[2]);
  6422. }
  6423. }
  6424. }
  6425. function relativeWeekDay(moment, format) {
  6426. var nominative = format.indexOf('dddd HH:mm') === -1,
  6427. weekDay = weekDays[moment.day()];
  6428. return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į';
  6429. }
  6430. return moment.defineLocale('lt', {
  6431. months : 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),
  6432. monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
  6433. weekdays : relativeWeekDay,
  6434. weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
  6435. weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
  6436. longDateFormat : {
  6437. LT : 'HH:mm',
  6438. LTS : 'LT:ss',
  6439. L : 'YYYY-MM-DD',
  6440. LL : 'YYYY [m.] MMMM D [d.]',
  6441. LLL : 'YYYY [m.] MMMM D [d.], LT [val.]',
  6442. LLLL : 'YYYY [m.] MMMM D [d.], dddd, LT [val.]',
  6443. l : 'YYYY-MM-DD',
  6444. ll : 'YYYY [m.] MMMM D [d.]',
  6445. lll : 'YYYY [m.] MMMM D [d.], LT [val.]',
  6446. llll : 'YYYY [m.] MMMM D [d.], ddd, LT [val.]'
  6447. },
  6448. calendar : {
  6449. sameDay : '[Šiandien] LT',
  6450. nextDay : '[Rytoj] LT',
  6451. nextWeek : 'dddd LT',
  6452. lastDay : '[Vakar] LT',
  6453. lastWeek : '[Praėjusį] dddd LT',
  6454. sameElse : 'L'
  6455. },
  6456. relativeTime : {
  6457. future : 'po %s',
  6458. past : 'prieš %s',
  6459. s : translateSeconds,
  6460. m : translateSingular,
  6461. mm : translate,
  6462. h : translateSingular,
  6463. hh : translate,
  6464. d : translateSingular,
  6465. dd : translate,
  6466. M : translateSingular,
  6467. MM : translate,
  6468. y : translateSingular,
  6469. yy : translate
  6470. },
  6471. ordinalParse: /\d{1,2}-oji/,
  6472. ordinal : function (number) {
  6473. return number + '-oji';
  6474. },
  6475. week : {
  6476. dow : 1, // Monday is the first day of the week.
  6477. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6478. }
  6479. });
  6480. }));
  6481. // moment.js locale configuration
  6482. // locale : latvian (lv)
  6483. // author : Kristaps Karlsons : https://github.com/skakri
  6484. (function (factory) {
  6485. factory(moment);
  6486. }(function (moment) {
  6487. var units = {
  6488. 'mm': 'minūti_minūtes_minūte_minūtes',
  6489. 'hh': 'stundu_stundas_stunda_stundas',
  6490. 'dd': 'dienu_dienas_diena_dienas',
  6491. 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
  6492. 'yy': 'gadu_gadus_gads_gadi'
  6493. };
  6494. function format(word, number, withoutSuffix) {
  6495. var forms = word.split('_');
  6496. if (withoutSuffix) {
  6497. return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
  6498. } else {
  6499. return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
  6500. }
  6501. }
  6502. function relativeTimeWithPlural(number, withoutSuffix, key) {
  6503. return number + ' ' + format(units[key], number, withoutSuffix);
  6504. }
  6505. return moment.defineLocale('lv', {
  6506. months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),
  6507. monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
  6508. weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),
  6509. weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),
  6510. weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
  6511. longDateFormat : {
  6512. LT : 'HH:mm',
  6513. LTS : 'LT:ss',
  6514. L : 'DD.MM.YYYY',
  6515. LL : 'YYYY. [gada] D. MMMM',
  6516. LLL : 'YYYY. [gada] D. MMMM, LT',
  6517. LLLL : 'YYYY. [gada] D. MMMM, dddd, LT'
  6518. },
  6519. calendar : {
  6520. sameDay : '[Šodien pulksten] LT',
  6521. nextDay : '[Rīt pulksten] LT',
  6522. nextWeek : 'dddd [pulksten] LT',
  6523. lastDay : '[Vakar pulksten] LT',
  6524. lastWeek : '[Pagājušā] dddd [pulksten] LT',
  6525. sameElse : 'L'
  6526. },
  6527. relativeTime : {
  6528. future : '%s vēlāk',
  6529. past : '%s agrāk',
  6530. s : 'dažas sekundes',
  6531. m : 'minūti',
  6532. mm : relativeTimeWithPlural,
  6533. h : 'stundu',
  6534. hh : relativeTimeWithPlural,
  6535. d : 'dienu',
  6536. dd : relativeTimeWithPlural,
  6537. M : 'mēnesi',
  6538. MM : relativeTimeWithPlural,
  6539. y : 'gadu',
  6540. yy : relativeTimeWithPlural
  6541. },
  6542. ordinalParse: /\d{1,2}\./,
  6543. ordinal : '%d.',
  6544. week : {
  6545. dow : 1, // Monday is the first day of the week.
  6546. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6547. }
  6548. });
  6549. }));
  6550. // moment.js locale configuration
  6551. // locale : macedonian (mk)
  6552. // author : Borislav Mickov : https://github.com/B0k0
  6553. (function (factory) {
  6554. factory(moment);
  6555. }(function (moment) {
  6556. return moment.defineLocale('mk', {
  6557. months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),
  6558. monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
  6559. weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),
  6560. weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
  6561. weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
  6562. longDateFormat : {
  6563. LT : 'H:mm',
  6564. LTS : 'LT:ss',
  6565. L : 'D.MM.YYYY',
  6566. LL : 'D MMMM YYYY',
  6567. LLL : 'D MMMM YYYY LT',
  6568. LLLL : 'dddd, D MMMM YYYY LT'
  6569. },
  6570. calendar : {
  6571. sameDay : '[Денес во] LT',
  6572. nextDay : '[Утре во] LT',
  6573. nextWeek : 'dddd [во] LT',
  6574. lastDay : '[Вчера во] LT',
  6575. lastWeek : function () {
  6576. switch (this.day()) {
  6577. case 0:
  6578. case 3:
  6579. case 6:
  6580. return '[Во изминатата] dddd [во] LT';
  6581. case 1:
  6582. case 2:
  6583. case 4:
  6584. case 5:
  6585. return '[Во изминатиот] dddd [во] LT';
  6586. }
  6587. },
  6588. sameElse : 'L'
  6589. },
  6590. relativeTime : {
  6591. future : 'после %s',
  6592. past : 'пред %s',
  6593. s : 'неколку секунди',
  6594. m : 'минута',
  6595. mm : '%d минути',
  6596. h : 'час',
  6597. hh : '%d часа',
  6598. d : 'ден',
  6599. dd : '%d дена',
  6600. M : 'месец',
  6601. MM : '%d месеци',
  6602. y : 'година',
  6603. yy : '%d години'
  6604. },
  6605. ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  6606. ordinal : function (number) {
  6607. var lastDigit = number % 10,
  6608. last2Digits = number % 100;
  6609. if (number === 0) {
  6610. return number + '-ев';
  6611. } else if (last2Digits === 0) {
  6612. return number + '-ен';
  6613. } else if (last2Digits > 10 && last2Digits < 20) {
  6614. return number + '-ти';
  6615. } else if (lastDigit === 1) {
  6616. return number + '-ви';
  6617. } else if (lastDigit === 2) {
  6618. return number + '-ри';
  6619. } else if (lastDigit === 7 || lastDigit === 8) {
  6620. return number + '-ми';
  6621. } else {
  6622. return number + '-ти';
  6623. }
  6624. },
  6625. week : {
  6626. dow : 1, // Monday is the first day of the week.
  6627. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6628. }
  6629. });
  6630. }));
  6631. // moment.js locale configuration
  6632. // locale : malayalam (ml)
  6633. // author : Floyd Pink : https://github.com/floydpink
  6634. (function (factory) {
  6635. factory(moment);
  6636. }(function (moment) {
  6637. return moment.defineLocale('ml', {
  6638. months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),
  6639. monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),
  6640. weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),
  6641. weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
  6642. weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
  6643. longDateFormat : {
  6644. LT : 'A h:mm -നു',
  6645. LTS : 'A h:mm:ss -നു',
  6646. L : 'DD/MM/YYYY',
  6647. LL : 'D MMMM YYYY',
  6648. LLL : 'D MMMM YYYY, LT',
  6649. LLLL : 'dddd, D MMMM YYYY, LT'
  6650. },
  6651. calendar : {
  6652. sameDay : '[ഇന്ന്] LT',
  6653. nextDay : '[നാളെ] LT',
  6654. nextWeek : 'dddd, LT',
  6655. lastDay : '[ഇന്നലെ] LT',
  6656. lastWeek : '[കഴിഞ്ഞ] dddd, LT',
  6657. sameElse : 'L'
  6658. },
  6659. relativeTime : {
  6660. future : '%s കഴിഞ്ഞ്',
  6661. past : '%s മുൻപ്',
  6662. s : 'അൽപ നിമിഷങ്ങൾ',
  6663. m : 'ഒരു മിനിറ്റ്',
  6664. mm : '%d മിനിറ്റ്',
  6665. h : 'ഒരു മണിക്കൂർ',
  6666. hh : '%d മണിക്കൂർ',
  6667. d : 'ഒരു ദിവസം',
  6668. dd : '%d ദിവസം',
  6669. M : 'ഒരു മാസം',
  6670. MM : '%d മാസം',
  6671. y : 'ഒരു വർഷം',
  6672. yy : '%d വർഷം'
  6673. },
  6674. meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
  6675. isPM : function (input) {
  6676. return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input);
  6677. },
  6678. meridiem : function (hour, minute, isLower) {
  6679. if (hour < 4) {
  6680. return 'രാത്രി';
  6681. } else if (hour < 12) {
  6682. return 'രാവിലെ';
  6683. } else if (hour < 17) {
  6684. return 'ഉച്ച കഴിഞ്ഞ്';
  6685. } else if (hour < 20) {
  6686. return 'വൈകുന്നേരം';
  6687. } else {
  6688. return 'രാത്രി';
  6689. }
  6690. }
  6691. });
  6692. }));
  6693. // moment.js locale configuration
  6694. // locale : Marathi (mr)
  6695. // author : Harshad Kale : https://github.com/kalehv
  6696. (function (factory) {
  6697. factory(moment);
  6698. }(function (moment) {
  6699. var symbolMap = {
  6700. '1': '१',
  6701. '2': '२',
  6702. '3': '३',
  6703. '4': '४',
  6704. '5': '५',
  6705. '6': '६',
  6706. '7': '७',
  6707. '8': '८',
  6708. '9': '९',
  6709. '0': '०'
  6710. },
  6711. numberMap = {
  6712. '१': '1',
  6713. '२': '2',
  6714. '३': '3',
  6715. '४': '4',
  6716. '५': '5',
  6717. '६': '6',
  6718. '७': '7',
  6719. '८': '8',
  6720. '९': '9',
  6721. '०': '0'
  6722. };
  6723. return moment.defineLocale('mr', {
  6724. months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
  6725. monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
  6726. weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  6727. weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
  6728. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
  6729. longDateFormat : {
  6730. LT : 'A h:mm वाजता',
  6731. LTS : 'A h:mm:ss वाजता',
  6732. L : 'DD/MM/YYYY',
  6733. LL : 'D MMMM YYYY',
  6734. LLL : 'D MMMM YYYY, LT',
  6735. LLLL : 'dddd, D MMMM YYYY, LT'
  6736. },
  6737. calendar : {
  6738. sameDay : '[आज] LT',
  6739. nextDay : '[उद्या] LT',
  6740. nextWeek : 'dddd, LT',
  6741. lastDay : '[काल] LT',
  6742. lastWeek: '[मागील] dddd, LT',
  6743. sameElse : 'L'
  6744. },
  6745. relativeTime : {
  6746. future : '%s नंतर',
  6747. past : '%s पूर्वी',
  6748. s : 'सेकंद',
  6749. m: 'एक मिनिट',
  6750. mm: '%d मिनिटे',
  6751. h : 'एक तास',
  6752. hh : '%d तास',
  6753. d : 'एक दिवस',
  6754. dd : '%d दिवस',
  6755. M : 'एक महिना',
  6756. MM : '%d महिने',
  6757. y : 'एक वर्ष',
  6758. yy : '%d वर्षे'
  6759. },
  6760. preparse: function (string) {
  6761. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  6762. return numberMap[match];
  6763. });
  6764. },
  6765. postformat: function (string) {
  6766. return string.replace(/\d/g, function (match) {
  6767. return symbolMap[match];
  6768. });
  6769. },
  6770. meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
  6771. meridiemHour : function (hour, meridiem) {
  6772. if (hour === 12) {
  6773. hour = 0;
  6774. }
  6775. if (meridiem === 'रात्री') {
  6776. return hour < 4 ? hour : hour + 12;
  6777. } else if (meridiem === 'सकाळी') {
  6778. return hour;
  6779. } else if (meridiem === 'दुपारी') {
  6780. return hour >= 10 ? hour : hour + 12;
  6781. } else if (meridiem === 'सायंकाळी') {
  6782. return hour + 12;
  6783. }
  6784. },
  6785. meridiem: function (hour, minute, isLower)
  6786. {
  6787. if (hour < 4) {
  6788. return 'रात्री';
  6789. } else if (hour < 10) {
  6790. return 'सकाळी';
  6791. } else if (hour < 17) {
  6792. return 'दुपारी';
  6793. } else if (hour < 20) {
  6794. return 'सायंकाळी';
  6795. } else {
  6796. return 'रात्री';
  6797. }
  6798. },
  6799. week : {
  6800. dow : 0, // Sunday is the first day of the week.
  6801. doy : 6 // The week that contains Jan 1st is the first week of the year.
  6802. }
  6803. });
  6804. }));
  6805. // moment.js locale configuration
  6806. // locale : Bahasa Malaysia (ms-MY)
  6807. // author : Weldan Jamili : https://github.com/weldan
  6808. (function (factory) {
  6809. factory(moment);
  6810. }(function (moment) {
  6811. return moment.defineLocale('ms-my', {
  6812. months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
  6813. monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
  6814. weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
  6815. weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
  6816. weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
  6817. longDateFormat : {
  6818. LT : 'HH.mm',
  6819. LTS : 'LT.ss',
  6820. L : 'DD/MM/YYYY',
  6821. LL : 'D MMMM YYYY',
  6822. LLL : 'D MMMM YYYY [pukul] LT',
  6823. LLLL : 'dddd, D MMMM YYYY [pukul] LT'
  6824. },
  6825. meridiemParse: /pagi|tengahari|petang|malam/,
  6826. meridiemHour: function (hour, meridiem) {
  6827. if (hour === 12) {
  6828. hour = 0;
  6829. }
  6830. if (meridiem === 'pagi') {
  6831. return hour;
  6832. } else if (meridiem === 'tengahari') {
  6833. return hour >= 11 ? hour : hour + 12;
  6834. } else if (meridiem === 'petang' || meridiem === 'malam') {
  6835. return hour + 12;
  6836. }
  6837. },
  6838. meridiem : function (hours, minutes, isLower) {
  6839. if (hours < 11) {
  6840. return 'pagi';
  6841. } else if (hours < 15) {
  6842. return 'tengahari';
  6843. } else if (hours < 19) {
  6844. return 'petang';
  6845. } else {
  6846. return 'malam';
  6847. }
  6848. },
  6849. calendar : {
  6850. sameDay : '[Hari ini pukul] LT',
  6851. nextDay : '[Esok pukul] LT',
  6852. nextWeek : 'dddd [pukul] LT',
  6853. lastDay : '[Kelmarin pukul] LT',
  6854. lastWeek : 'dddd [lepas pukul] LT',
  6855. sameElse : 'L'
  6856. },
  6857. relativeTime : {
  6858. future : 'dalam %s',
  6859. past : '%s yang lepas',
  6860. s : 'beberapa saat',
  6861. m : 'seminit',
  6862. mm : '%d minit',
  6863. h : 'sejam',
  6864. hh : '%d jam',
  6865. d : 'sehari',
  6866. dd : '%d hari',
  6867. M : 'sebulan',
  6868. MM : '%d bulan',
  6869. y : 'setahun',
  6870. yy : '%d tahun'
  6871. },
  6872. week : {
  6873. dow : 1, // Monday is the first day of the week.
  6874. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6875. }
  6876. });
  6877. }));
  6878. // moment.js locale configuration
  6879. // locale : Burmese (my)
  6880. // author : Squar team, mysquar.com
  6881. (function (factory) {
  6882. factory(moment);
  6883. }(function (moment) {
  6884. var symbolMap = {
  6885. '1': '၁',
  6886. '2': '၂',
  6887. '3': '၃',
  6888. '4': '၄',
  6889. '5': '၅',
  6890. '6': '၆',
  6891. '7': '၇',
  6892. '8': '၈',
  6893. '9': '၉',
  6894. '0': '၀'
  6895. }, numberMap = {
  6896. '၁': '1',
  6897. '၂': '2',
  6898. '၃': '3',
  6899. '၄': '4',
  6900. '၅': '5',
  6901. '၆': '6',
  6902. '၇': '7',
  6903. '၈': '8',
  6904. '၉': '9',
  6905. '၀': '0'
  6906. };
  6907. return moment.defineLocale('my', {
  6908. months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
  6909. monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
  6910. weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
  6911. weekdaysShort: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  6912. weekdaysMin: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
  6913. longDateFormat: {
  6914. LT: 'HH:mm',
  6915. LTS: 'HH:mm:ss',
  6916. L: 'DD/MM/YYYY',
  6917. LL: 'D MMMM YYYY',
  6918. LLL: 'D MMMM YYYY LT',
  6919. LLLL: 'dddd D MMMM YYYY LT'
  6920. },
  6921. calendar: {
  6922. sameDay: '[ယနေ.] LT [မှာ]',
  6923. nextDay: '[မနက်ဖြန်] LT [မှာ]',
  6924. nextWeek: 'dddd LT [မှာ]',
  6925. lastDay: '[မနေ.က] LT [မှာ]',
  6926. lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
  6927. sameElse: 'L'
  6928. },
  6929. relativeTime: {
  6930. future: 'လာမည့် %s မှာ',
  6931. past: 'လွန်ခဲ့သော %s က',
  6932. s: 'စက္ကန်.အနည်းငယ်',
  6933. m: 'တစ်မိနစ်',
  6934. mm: '%d မိနစ်',
  6935. h: 'တစ်နာရီ',
  6936. hh: '%d နာရီ',
  6937. d: 'တစ်ရက်',
  6938. dd: '%d ရက်',
  6939. M: 'တစ်လ',
  6940. MM: '%d လ',
  6941. y: 'တစ်နှစ်',
  6942. yy: '%d နှစ်'
  6943. },
  6944. preparse: function (string) {
  6945. return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
  6946. return numberMap[match];
  6947. });
  6948. },
  6949. postformat: function (string) {
  6950. return string.replace(/\d/g, function (match) {
  6951. return symbolMap[match];
  6952. });
  6953. },
  6954. week: {
  6955. dow: 1, // Monday is the first day of the week.
  6956. doy: 4 // The week that contains Jan 1st is the first week of the year.
  6957. }
  6958. });
  6959. }));
  6960. // moment.js locale configuration
  6961. // locale : norwegian bokmål (nb)
  6962. // authors : Espen Hovlandsdal : https://github.com/rexxars
  6963. // Sigurd Gartmann : https://github.com/sigurdga
  6964. (function (factory) {
  6965. factory(moment);
  6966. }(function (moment) {
  6967. return moment.defineLocale('nb', {
  6968. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  6969. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  6970. weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
  6971. weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'),
  6972. weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
  6973. longDateFormat : {
  6974. LT : 'H.mm',
  6975. LTS : 'LT.ss',
  6976. L : 'DD.MM.YYYY',
  6977. LL : 'D. MMMM YYYY',
  6978. LLL : 'D. MMMM YYYY [kl.] LT',
  6979. LLLL : 'dddd D. MMMM YYYY [kl.] LT'
  6980. },
  6981. calendar : {
  6982. sameDay: '[i dag kl.] LT',
  6983. nextDay: '[i morgen kl.] LT',
  6984. nextWeek: 'dddd [kl.] LT',
  6985. lastDay: '[i går kl.] LT',
  6986. lastWeek: '[forrige] dddd [kl.] LT',
  6987. sameElse: 'L'
  6988. },
  6989. relativeTime : {
  6990. future : 'om %s',
  6991. past : 'for %s siden',
  6992. s : 'noen sekunder',
  6993. m : 'ett minutt',
  6994. mm : '%d minutter',
  6995. h : 'en time',
  6996. hh : '%d timer',
  6997. d : 'en dag',
  6998. dd : '%d dager',
  6999. M : 'en måned',
  7000. MM : '%d måneder',
  7001. y : 'ett år',
  7002. yy : '%d år'
  7003. },
  7004. ordinalParse: /\d{1,2}\./,
  7005. ordinal : '%d.',
  7006. week : {
  7007. dow : 1, // Monday is the first day of the week.
  7008. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7009. }
  7010. });
  7011. }));
  7012. // moment.js locale configuration
  7013. // locale : nepali/nepalese
  7014. // author : suvash : https://github.com/suvash
  7015. (function (factory) {
  7016. factory(moment);
  7017. }(function (moment) {
  7018. var symbolMap = {
  7019. '1': '१',
  7020. '2': '२',
  7021. '3': '३',
  7022. '4': '४',
  7023. '5': '५',
  7024. '6': '६',
  7025. '7': '७',
  7026. '8': '८',
  7027. '9': '९',
  7028. '0': '०'
  7029. },
  7030. numberMap = {
  7031. '१': '1',
  7032. '२': '2',
  7033. '३': '3',
  7034. '४': '4',
  7035. '५': '5',
  7036. '६': '6',
  7037. '७': '7',
  7038. '८': '8',
  7039. '९': '9',
  7040. '०': '0'
  7041. };
  7042. return moment.defineLocale('ne', {
  7043. months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),
  7044. monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),
  7045. weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),
  7046. weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
  7047. weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'),
  7048. longDateFormat : {
  7049. LT : 'Aको h:mm बजे',
  7050. LTS : 'Aको h:mm:ss बजे',
  7051. L : 'DD/MM/YYYY',
  7052. LL : 'D MMMM YYYY',
  7053. LLL : 'D MMMM YYYY, LT',
  7054. LLLL : 'dddd, D MMMM YYYY, LT'
  7055. },
  7056. preparse: function (string) {
  7057. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  7058. return numberMap[match];
  7059. });
  7060. },
  7061. postformat: function (string) {
  7062. return string.replace(/\d/g, function (match) {
  7063. return symbolMap[match];
  7064. });
  7065. },
  7066. meridiemParse: /राती|बिहान|दिउँसो|बेलुका|साँझ|राती/,
  7067. meridiemHour : function (hour, meridiem) {
  7068. if (hour === 12) {
  7069. hour = 0;
  7070. }
  7071. if (meridiem === 'राती') {
  7072. return hour < 3 ? hour : hour + 12;
  7073. } else if (meridiem === 'बिहान') {
  7074. return hour;
  7075. } else if (meridiem === 'दिउँसो') {
  7076. return hour >= 10 ? hour : hour + 12;
  7077. } else if (meridiem === 'बेलुका' || meridiem === 'साँझ') {
  7078. return hour + 12;
  7079. }
  7080. },
  7081. meridiem : function (hour, minute, isLower) {
  7082. if (hour < 3) {
  7083. return 'राती';
  7084. } else if (hour < 10) {
  7085. return 'बिहान';
  7086. } else if (hour < 15) {
  7087. return 'दिउँसो';
  7088. } else if (hour < 18) {
  7089. return 'बेलुका';
  7090. } else if (hour < 20) {
  7091. return 'साँझ';
  7092. } else {
  7093. return 'राती';
  7094. }
  7095. },
  7096. calendar : {
  7097. sameDay : '[आज] LT',
  7098. nextDay : '[भोली] LT',
  7099. nextWeek : '[आउँदो] dddd[,] LT',
  7100. lastDay : '[हिजो] LT',
  7101. lastWeek : '[गएको] dddd[,] LT',
  7102. sameElse : 'L'
  7103. },
  7104. relativeTime : {
  7105. future : '%sमा',
  7106. past : '%s अगाडी',
  7107. s : 'केही समय',
  7108. m : 'एक मिनेट',
  7109. mm : '%d मिनेट',
  7110. h : 'एक घण्टा',
  7111. hh : '%d घण्टा',
  7112. d : 'एक दिन',
  7113. dd : '%d दिन',
  7114. M : 'एक महिना',
  7115. MM : '%d महिना',
  7116. y : 'एक बर्ष',
  7117. yy : '%d बर्ष'
  7118. },
  7119. week : {
  7120. dow : 1, // Monday is the first day of the week.
  7121. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7122. }
  7123. });
  7124. }));
  7125. // moment.js locale configuration
  7126. // locale : dutch (nl)
  7127. // author : Joris Röling : https://github.com/jjupiter
  7128. (function (factory) {
  7129. factory(moment);
  7130. }(function (moment) {
  7131. var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
  7132. monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');
  7133. return moment.defineLocale('nl', {
  7134. months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),
  7135. monthsShort : function (m, format) {
  7136. if (/-MMM-/.test(format)) {
  7137. return monthsShortWithoutDots[m.month()];
  7138. } else {
  7139. return monthsShortWithDots[m.month()];
  7140. }
  7141. },
  7142. weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
  7143. weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),
  7144. weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
  7145. longDateFormat : {
  7146. LT : 'HH:mm',
  7147. LTS : 'LT:ss',
  7148. L : 'DD-MM-YYYY',
  7149. LL : 'D MMMM YYYY',
  7150. LLL : 'D MMMM YYYY LT',
  7151. LLLL : 'dddd D MMMM YYYY LT'
  7152. },
  7153. calendar : {
  7154. sameDay: '[vandaag om] LT',
  7155. nextDay: '[morgen om] LT',
  7156. nextWeek: 'dddd [om] LT',
  7157. lastDay: '[gisteren om] LT',
  7158. lastWeek: '[afgelopen] dddd [om] LT',
  7159. sameElse: 'L'
  7160. },
  7161. relativeTime : {
  7162. future : 'over %s',
  7163. past : '%s geleden',
  7164. s : 'een paar seconden',
  7165. m : 'één minuut',
  7166. mm : '%d minuten',
  7167. h : 'één uur',
  7168. hh : '%d uur',
  7169. d : 'één dag',
  7170. dd : '%d dagen',
  7171. M : 'één maand',
  7172. MM : '%d maanden',
  7173. y : 'één jaar',
  7174. yy : '%d jaar'
  7175. },
  7176. ordinalParse: /\d{1,2}(ste|de)/,
  7177. ordinal : function (number) {
  7178. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  7179. },
  7180. week : {
  7181. dow : 1, // Monday is the first day of the week.
  7182. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7183. }
  7184. });
  7185. }));
  7186. // moment.js locale configuration
  7187. // locale : norwegian nynorsk (nn)
  7188. // author : https://github.com/mechuwind
  7189. (function (factory) {
  7190. factory(moment);
  7191. }(function (moment) {
  7192. return moment.defineLocale('nn', {
  7193. months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),
  7194. monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
  7195. weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
  7196. weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),
  7197. weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
  7198. longDateFormat : {
  7199. LT : 'HH:mm',
  7200. LTS : 'LT:ss',
  7201. L : 'DD.MM.YYYY',
  7202. LL : 'D MMMM YYYY',
  7203. LLL : 'D MMMM YYYY LT',
  7204. LLLL : 'dddd D MMMM YYYY LT'
  7205. },
  7206. calendar : {
  7207. sameDay: '[I dag klokka] LT',
  7208. nextDay: '[I morgon klokka] LT',
  7209. nextWeek: 'dddd [klokka] LT',
  7210. lastDay: '[I går klokka] LT',
  7211. lastWeek: '[Føregåande] dddd [klokka] LT',
  7212. sameElse: 'L'
  7213. },
  7214. relativeTime : {
  7215. future : 'om %s',
  7216. past : 'for %s sidan',
  7217. s : 'nokre sekund',
  7218. m : 'eit minutt',
  7219. mm : '%d minutt',
  7220. h : 'ein time',
  7221. hh : '%d timar',
  7222. d : 'ein dag',
  7223. dd : '%d dagar',
  7224. M : 'ein månad',
  7225. MM : '%d månader',
  7226. y : 'eit år',
  7227. yy : '%d år'
  7228. },
  7229. ordinalParse: /\d{1,2}\./,
  7230. ordinal : '%d.',
  7231. week : {
  7232. dow : 1, // Monday is the first day of the week.
  7233. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7234. }
  7235. });
  7236. }));
  7237. // moment.js locale configuration
  7238. // locale : polish (pl)
  7239. // author : Rafal Hirsz : https://github.com/evoL
  7240. (function (factory) {
  7241. factory(moment);
  7242. }(function (moment) {
  7243. var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
  7244. monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');
  7245. function plural(n) {
  7246. return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
  7247. }
  7248. function translate(number, withoutSuffix, key) {
  7249. var result = number + ' ';
  7250. switch (key) {
  7251. case 'm':
  7252. return withoutSuffix ? 'minuta' : 'minutę';
  7253. case 'mm':
  7254. return result + (plural(number) ? 'minuty' : 'minut');
  7255. case 'h':
  7256. return withoutSuffix ? 'godzina' : 'godzinę';
  7257. case 'hh':
  7258. return result + (plural(number) ? 'godziny' : 'godzin');
  7259. case 'MM':
  7260. return result + (plural(number) ? 'miesiące' : 'miesięcy');
  7261. case 'yy':
  7262. return result + (plural(number) ? 'lata' : 'lat');
  7263. }
  7264. }
  7265. return moment.defineLocale('pl', {
  7266. months : function (momentToFormat, format) {
  7267. if (/D MMMM/.test(format)) {
  7268. return monthsSubjective[momentToFormat.month()];
  7269. } else {
  7270. return monthsNominative[momentToFormat.month()];
  7271. }
  7272. },
  7273. monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
  7274. weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
  7275. weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'),
  7276. weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
  7277. longDateFormat : {
  7278. LT : 'HH:mm',
  7279. LTS : 'LT:ss',
  7280. L : 'DD.MM.YYYY',
  7281. LL : 'D MMMM YYYY',
  7282. LLL : 'D MMMM YYYY LT',
  7283. LLLL : 'dddd, D MMMM YYYY LT'
  7284. },
  7285. calendar : {
  7286. sameDay: '[Dziś o] LT',
  7287. nextDay: '[Jutro o] LT',
  7288. nextWeek: '[W] dddd [o] LT',
  7289. lastDay: '[Wczoraj o] LT',
  7290. lastWeek: function () {
  7291. switch (this.day()) {
  7292. case 0:
  7293. return '[W zeszłą niedzielę o] LT';
  7294. case 3:
  7295. return '[W zeszłą środę o] LT';
  7296. case 6:
  7297. return '[W zeszłą sobotę o] LT';
  7298. default:
  7299. return '[W zeszły] dddd [o] LT';
  7300. }
  7301. },
  7302. sameElse: 'L'
  7303. },
  7304. relativeTime : {
  7305. future : 'za %s',
  7306. past : '%s temu',
  7307. s : 'kilka sekund',
  7308. m : translate,
  7309. mm : translate,
  7310. h : translate,
  7311. hh : translate,
  7312. d : '1 dzień',
  7313. dd : '%d dni',
  7314. M : 'miesiąc',
  7315. MM : translate,
  7316. y : 'rok',
  7317. yy : translate
  7318. },
  7319. ordinalParse: /\d{1,2}\./,
  7320. ordinal : '%d.',
  7321. week : {
  7322. dow : 1, // Monday is the first day of the week.
  7323. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7324. }
  7325. });
  7326. }));
  7327. // moment.js locale configuration
  7328. // locale : brazilian portuguese (pt-br)
  7329. // author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
  7330. (function (factory) {
  7331. factory(moment);
  7332. }(function (moment) {
  7333. return moment.defineLocale('pt-br', {
  7334. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  7335. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  7336. weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
  7337. weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
  7338. weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
  7339. longDateFormat : {
  7340. LT : 'HH:mm',
  7341. LTS : 'LT:ss',
  7342. L : 'DD/MM/YYYY',
  7343. LL : 'D [de] MMMM [de] YYYY',
  7344. LLL : 'D [de] MMMM [de] YYYY [às] LT',
  7345. LLLL : 'dddd, D [de] MMMM [de] YYYY [às] LT'
  7346. },
  7347. calendar : {
  7348. sameDay: '[Hoje às] LT',
  7349. nextDay: '[Amanhã às] LT',
  7350. nextWeek: 'dddd [às] LT',
  7351. lastDay: '[Ontem às] LT',
  7352. lastWeek: function () {
  7353. return (this.day() === 0 || this.day() === 6) ?
  7354. '[Último] dddd [às] LT' : // Saturday + Sunday
  7355. '[Última] dddd [às] LT'; // Monday - Friday
  7356. },
  7357. sameElse: 'L'
  7358. },
  7359. relativeTime : {
  7360. future : 'em %s',
  7361. past : '%s atrás',
  7362. s : 'segundos',
  7363. m : 'um minuto',
  7364. mm : '%d minutos',
  7365. h : 'uma hora',
  7366. hh : '%d horas',
  7367. d : 'um dia',
  7368. dd : '%d dias',
  7369. M : 'um mês',
  7370. MM : '%d meses',
  7371. y : 'um ano',
  7372. yy : '%d anos'
  7373. },
  7374. ordinalParse: /\d{1,2}º/,
  7375. ordinal : '%dº'
  7376. });
  7377. }));
  7378. // moment.js locale configuration
  7379. // locale : portuguese (pt)
  7380. // author : Jefferson : https://github.com/jalex79
  7381. (function (factory) {
  7382. factory(moment);
  7383. }(function (moment) {
  7384. return moment.defineLocale('pt', {
  7385. months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),
  7386. monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
  7387. weekdays : 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),
  7388. weekdaysShort : 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
  7389. weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
  7390. longDateFormat : {
  7391. LT : 'HH:mm',
  7392. LTS : 'LT:ss',
  7393. L : 'DD/MM/YYYY',
  7394. LL : 'D [de] MMMM [de] YYYY',
  7395. LLL : 'D [de] MMMM [de] YYYY LT',
  7396. LLLL : 'dddd, D [de] MMMM [de] YYYY LT'
  7397. },
  7398. calendar : {
  7399. sameDay: '[Hoje às] LT',
  7400. nextDay: '[Amanhã às] LT',
  7401. nextWeek: 'dddd [às] LT',
  7402. lastDay: '[Ontem às] LT',
  7403. lastWeek: function () {
  7404. return (this.day() === 0 || this.day() === 6) ?
  7405. '[Último] dddd [às] LT' : // Saturday + Sunday
  7406. '[Última] dddd [às] LT'; // Monday - Friday
  7407. },
  7408. sameElse: 'L'
  7409. },
  7410. relativeTime : {
  7411. future : 'em %s',
  7412. past : 'há %s',
  7413. s : 'segundos',
  7414. m : 'um minuto',
  7415. mm : '%d minutos',
  7416. h : 'uma hora',
  7417. hh : '%d horas',
  7418. d : 'um dia',
  7419. dd : '%d dias',
  7420. M : 'um mês',
  7421. MM : '%d meses',
  7422. y : 'um ano',
  7423. yy : '%d anos'
  7424. },
  7425. ordinalParse: /\d{1,2}º/,
  7426. ordinal : '%dº',
  7427. week : {
  7428. dow : 1, // Monday is the first day of the week.
  7429. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7430. }
  7431. });
  7432. }));
  7433. // moment.js locale configuration
  7434. // locale : romanian (ro)
  7435. // author : Vlad Gurdiga : https://github.com/gurdiga
  7436. // author : Valentin Agachi : https://github.com/avaly
  7437. (function (factory) {
  7438. factory(moment);
  7439. }(function (moment) {
  7440. function relativeTimeWithPlural(number, withoutSuffix, key) {
  7441. var format = {
  7442. 'mm': 'minute',
  7443. 'hh': 'ore',
  7444. 'dd': 'zile',
  7445. 'MM': 'luni',
  7446. 'yy': 'ani'
  7447. },
  7448. separator = ' ';
  7449. if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
  7450. separator = ' de ';
  7451. }
  7452. return number + separator + format[key];
  7453. }
  7454. return moment.defineLocale('ro', {
  7455. months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),
  7456. monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),
  7457. weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
  7458. weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
  7459. weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
  7460. longDateFormat : {
  7461. LT : 'H:mm',
  7462. LTS : 'LT:ss',
  7463. L : 'DD.MM.YYYY',
  7464. LL : 'D MMMM YYYY',
  7465. LLL : 'D MMMM YYYY H:mm',
  7466. LLLL : 'dddd, D MMMM YYYY H:mm'
  7467. },
  7468. calendar : {
  7469. sameDay: '[azi la] LT',
  7470. nextDay: '[mâine la] LT',
  7471. nextWeek: 'dddd [la] LT',
  7472. lastDay: '[ieri la] LT',
  7473. lastWeek: '[fosta] dddd [la] LT',
  7474. sameElse: 'L'
  7475. },
  7476. relativeTime : {
  7477. future : 'peste %s',
  7478. past : '%s în urmă',
  7479. s : 'câteva secunde',
  7480. m : 'un minut',
  7481. mm : relativeTimeWithPlural,
  7482. h : 'o oră',
  7483. hh : relativeTimeWithPlural,
  7484. d : 'o zi',
  7485. dd : relativeTimeWithPlural,
  7486. M : 'o lună',
  7487. MM : relativeTimeWithPlural,
  7488. y : 'un an',
  7489. yy : relativeTimeWithPlural
  7490. },
  7491. week : {
  7492. dow : 1, // Monday is the first day of the week.
  7493. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7494. }
  7495. });
  7496. }));
  7497. // moment.js locale configuration
  7498. // locale : russian (ru)
  7499. // author : Viktorminator : https://github.com/Viktorminator
  7500. // Author : Menelion Elensúle : https://github.com/Oire
  7501. (function (factory) {
  7502. factory(moment);
  7503. }(function (moment) {
  7504. function plural(word, num) {
  7505. var forms = word.split('_');
  7506. 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]);
  7507. }
  7508. function relativeTimeWithPlural(number, withoutSuffix, key) {
  7509. var format = {
  7510. 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
  7511. 'hh': 'час_часа_часов',
  7512. 'dd': 'день_дня_дней',
  7513. 'MM': 'месяц_месяца_месяцев',
  7514. 'yy': 'год_года_лет'
  7515. };
  7516. if (key === 'm') {
  7517. return withoutSuffix ? 'минута' : 'минуту';
  7518. }
  7519. else {
  7520. return number + ' ' + plural(format[key], +number);
  7521. }
  7522. }
  7523. function monthsCaseReplace(m, format) {
  7524. var months = {
  7525. 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  7526. 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
  7527. },
  7528. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  7529. 'accusative' :
  7530. 'nominative';
  7531. return months[nounCase][m.month()];
  7532. }
  7533. function monthsShortCaseReplace(m, format) {
  7534. var monthsShort = {
  7535. 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
  7536. 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
  7537. },
  7538. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  7539. 'accusative' :
  7540. 'nominative';
  7541. return monthsShort[nounCase][m.month()];
  7542. }
  7543. function weekdaysCaseReplace(m, format) {
  7544. var weekdays = {
  7545. 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
  7546. 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
  7547. },
  7548. nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ?
  7549. 'accusative' :
  7550. 'nominative';
  7551. return weekdays[nounCase][m.day()];
  7552. }
  7553. return moment.defineLocale('ru', {
  7554. months : monthsCaseReplace,
  7555. monthsShort : monthsShortCaseReplace,
  7556. weekdays : weekdaysCaseReplace,
  7557. weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  7558. weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
  7559. monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
  7560. longDateFormat : {
  7561. LT : 'HH:mm',
  7562. LTS : 'LT:ss',
  7563. L : 'DD.MM.YYYY',
  7564. LL : 'D MMMM YYYY г.',
  7565. LLL : 'D MMMM YYYY г., LT',
  7566. LLLL : 'dddd, D MMMM YYYY г., LT'
  7567. },
  7568. calendar : {
  7569. sameDay: '[Сегодня в] LT',
  7570. nextDay: '[Завтра в] LT',
  7571. lastDay: '[Вчера в] LT',
  7572. nextWeek: function () {
  7573. return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
  7574. },
  7575. lastWeek: function (now) {
  7576. if (now.week() !== this.week()) {
  7577. switch (this.day()) {
  7578. case 0:
  7579. return '[В прошлое] dddd [в] LT';
  7580. case 1:
  7581. case 2:
  7582. case 4:
  7583. return '[В прошлый] dddd [в] LT';
  7584. case 3:
  7585. case 5:
  7586. case 6:
  7587. return '[В прошлую] dddd [в] LT';
  7588. }
  7589. } else {
  7590. if (this.day() === 2) {
  7591. return '[Во] dddd [в] LT';
  7592. } else {
  7593. return '[В] dddd [в] LT';
  7594. }
  7595. }
  7596. },
  7597. sameElse: 'L'
  7598. },
  7599. relativeTime : {
  7600. future : 'через %s',
  7601. past : '%s назад',
  7602. s : 'несколько секунд',
  7603. m : relativeTimeWithPlural,
  7604. mm : relativeTimeWithPlural,
  7605. h : 'час',
  7606. hh : relativeTimeWithPlural,
  7607. d : 'день',
  7608. dd : relativeTimeWithPlural,
  7609. M : 'месяц',
  7610. MM : relativeTimeWithPlural,
  7611. y : 'год',
  7612. yy : relativeTimeWithPlural
  7613. },
  7614. meridiemParse: /ночи|утра|дня|вечера/i,
  7615. isPM : function (input) {
  7616. return /^(дня|вечера)$/.test(input);
  7617. },
  7618. meridiem : function (hour, minute, isLower) {
  7619. if (hour < 4) {
  7620. return 'ночи';
  7621. } else if (hour < 12) {
  7622. return 'утра';
  7623. } else if (hour < 17) {
  7624. return 'дня';
  7625. } else {
  7626. return 'вечера';
  7627. }
  7628. },
  7629. ordinalParse: /\d{1,2}-(й|го|я)/,
  7630. ordinal: function (number, period) {
  7631. switch (period) {
  7632. case 'M':
  7633. case 'd':
  7634. case 'DDD':
  7635. return number + '-й';
  7636. case 'D':
  7637. return number + '-го';
  7638. case 'w':
  7639. case 'W':
  7640. return number + '-я';
  7641. default:
  7642. return number;
  7643. }
  7644. },
  7645. week : {
  7646. dow : 1, // Monday is the first day of the week.
  7647. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7648. }
  7649. });
  7650. }));
  7651. // moment.js locale configuration
  7652. // locale : slovak (sk)
  7653. // author : Martin Minka : https://github.com/k2s
  7654. // based on work of petrbela : https://github.com/petrbela
  7655. (function (factory) {
  7656. factory(moment);
  7657. }(function (moment) {
  7658. var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
  7659. monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
  7660. function plural(n) {
  7661. return (n > 1) && (n < 5);
  7662. }
  7663. function translate(number, withoutSuffix, key, isFuture) {
  7664. var result = number + ' ';
  7665. switch (key) {
  7666. case 's': // a few seconds / in a few seconds / a few seconds ago
  7667. return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
  7668. case 'm': // a minute / in a minute / a minute ago
  7669. return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
  7670. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  7671. if (withoutSuffix || isFuture) {
  7672. return result + (plural(number) ? 'minúty' : 'minút');
  7673. } else {
  7674. return result + 'minútami';
  7675. }
  7676. break;
  7677. case 'h': // an hour / in an hour / an hour ago
  7678. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  7679. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  7680. if (withoutSuffix || isFuture) {
  7681. return result + (plural(number) ? 'hodiny' : 'hodín');
  7682. } else {
  7683. return result + 'hodinami';
  7684. }
  7685. break;
  7686. case 'd': // a day / in a day / a day ago
  7687. return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
  7688. case 'dd': // 9 days / in 9 days / 9 days ago
  7689. if (withoutSuffix || isFuture) {
  7690. return result + (plural(number) ? 'dni' : 'dní');
  7691. } else {
  7692. return result + 'dňami';
  7693. }
  7694. break;
  7695. case 'M': // a month / in a month / a month ago
  7696. return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
  7697. case 'MM': // 9 months / in 9 months / 9 months ago
  7698. if (withoutSuffix || isFuture) {
  7699. return result + (plural(number) ? 'mesiace' : 'mesiacov');
  7700. } else {
  7701. return result + 'mesiacmi';
  7702. }
  7703. break;
  7704. case 'y': // a year / in a year / a year ago
  7705. return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
  7706. case 'yy': // 9 years / in 9 years / 9 years ago
  7707. if (withoutSuffix || isFuture) {
  7708. return result + (plural(number) ? 'roky' : 'rokov');
  7709. } else {
  7710. return result + 'rokmi';
  7711. }
  7712. break;
  7713. }
  7714. }
  7715. return moment.defineLocale('sk', {
  7716. months : months,
  7717. monthsShort : monthsShort,
  7718. monthsParse : (function (months, monthsShort) {
  7719. var i, _monthsParse = [];
  7720. for (i = 0; i < 12; i++) {
  7721. // use custom parser to solve problem with July (červenec)
  7722. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  7723. }
  7724. return _monthsParse;
  7725. }(months, monthsShort)),
  7726. weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
  7727. weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),
  7728. weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
  7729. longDateFormat : {
  7730. LT: 'H:mm',
  7731. LTS : 'LT:ss',
  7732. L : 'DD.MM.YYYY',
  7733. LL : 'D. MMMM YYYY',
  7734. LLL : 'D. MMMM YYYY LT',
  7735. LLLL : 'dddd D. MMMM YYYY LT'
  7736. },
  7737. calendar : {
  7738. sameDay: '[dnes o] LT',
  7739. nextDay: '[zajtra o] LT',
  7740. nextWeek: function () {
  7741. switch (this.day()) {
  7742. case 0:
  7743. return '[v nedeľu o] LT';
  7744. case 1:
  7745. case 2:
  7746. return '[v] dddd [o] LT';
  7747. case 3:
  7748. return '[v stredu o] LT';
  7749. case 4:
  7750. return '[vo štvrtok o] LT';
  7751. case 5:
  7752. return '[v piatok o] LT';
  7753. case 6:
  7754. return '[v sobotu o] LT';
  7755. }
  7756. },
  7757. lastDay: '[včera o] LT',
  7758. lastWeek: function () {
  7759. switch (this.day()) {
  7760. case 0:
  7761. return '[minulú nedeľu o] LT';
  7762. case 1:
  7763. case 2:
  7764. return '[minulý] dddd [o] LT';
  7765. case 3:
  7766. return '[minulú stredu o] LT';
  7767. case 4:
  7768. case 5:
  7769. return '[minulý] dddd [o] LT';
  7770. case 6:
  7771. return '[minulú sobotu o] LT';
  7772. }
  7773. },
  7774. sameElse: 'L'
  7775. },
  7776. relativeTime : {
  7777. future : 'za %s',
  7778. past : 'pred %s',
  7779. s : translate,
  7780. m : translate,
  7781. mm : translate,
  7782. h : translate,
  7783. hh : translate,
  7784. d : translate,
  7785. dd : translate,
  7786. M : translate,
  7787. MM : translate,
  7788. y : translate,
  7789. yy : translate
  7790. },
  7791. ordinalParse: /\d{1,2}\./,
  7792. ordinal : '%d.',
  7793. week : {
  7794. dow : 1, // Monday is the first day of the week.
  7795. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7796. }
  7797. });
  7798. }));
  7799. // moment.js locale configuration
  7800. // locale : slovenian (sl)
  7801. // author : Robert Sedovšek : https://github.com/sedovsek
  7802. (function (factory) {
  7803. factory(moment);
  7804. }(function (moment) {
  7805. function translate(number, withoutSuffix, key) {
  7806. var result = number + ' ';
  7807. switch (key) {
  7808. case 'm':
  7809. return withoutSuffix ? 'ena minuta' : 'eno minuto';
  7810. case 'mm':
  7811. if (number === 1) {
  7812. result += 'minuta';
  7813. } else if (number === 2) {
  7814. result += 'minuti';
  7815. } else if (number === 3 || number === 4) {
  7816. result += 'minute';
  7817. } else {
  7818. result += 'minut';
  7819. }
  7820. return result;
  7821. case 'h':
  7822. return withoutSuffix ? 'ena ura' : 'eno uro';
  7823. case 'hh':
  7824. if (number === 1) {
  7825. result += 'ura';
  7826. } else if (number === 2) {
  7827. result += 'uri';
  7828. } else if (number === 3 || number === 4) {
  7829. result += 'ure';
  7830. } else {
  7831. result += 'ur';
  7832. }
  7833. return result;
  7834. case 'dd':
  7835. if (number === 1) {
  7836. result += 'dan';
  7837. } else {
  7838. result += 'dni';
  7839. }
  7840. return result;
  7841. case 'MM':
  7842. if (number === 1) {
  7843. result += 'mesec';
  7844. } else if (number === 2) {
  7845. result += 'meseca';
  7846. } else if (number === 3 || number === 4) {
  7847. result += 'mesece';
  7848. } else {
  7849. result += 'mesecev';
  7850. }
  7851. return result;
  7852. case 'yy':
  7853. if (number === 1) {
  7854. result += 'leto';
  7855. } else if (number === 2) {
  7856. result += 'leti';
  7857. } else if (number === 3 || number === 4) {
  7858. result += 'leta';
  7859. } else {
  7860. result += 'let';
  7861. }
  7862. return result;
  7863. }
  7864. }
  7865. return moment.defineLocale('sl', {
  7866. months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),
  7867. monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
  7868. weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
  7869. weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
  7870. weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
  7871. longDateFormat : {
  7872. LT : 'H:mm',
  7873. LTS : 'LT:ss',
  7874. L : 'DD. MM. YYYY',
  7875. LL : 'D. MMMM YYYY',
  7876. LLL : 'D. MMMM YYYY LT',
  7877. LLLL : 'dddd, D. MMMM YYYY LT'
  7878. },
  7879. calendar : {
  7880. sameDay : '[danes ob] LT',
  7881. nextDay : '[jutri ob] LT',
  7882. nextWeek : function () {
  7883. switch (this.day()) {
  7884. case 0:
  7885. return '[v] [nedeljo] [ob] LT';
  7886. case 3:
  7887. return '[v] [sredo] [ob] LT';
  7888. case 6:
  7889. return '[v] [soboto] [ob] LT';
  7890. case 1:
  7891. case 2:
  7892. case 4:
  7893. case 5:
  7894. return '[v] dddd [ob] LT';
  7895. }
  7896. },
  7897. lastDay : '[včeraj ob] LT',
  7898. lastWeek : function () {
  7899. switch (this.day()) {
  7900. case 0:
  7901. case 3:
  7902. case 6:
  7903. return '[prejšnja] dddd [ob] LT';
  7904. case 1:
  7905. case 2:
  7906. case 4:
  7907. case 5:
  7908. return '[prejšnji] dddd [ob] LT';
  7909. }
  7910. },
  7911. sameElse : 'L'
  7912. },
  7913. relativeTime : {
  7914. future : 'čez %s',
  7915. past : '%s nazaj',
  7916. s : 'nekaj sekund',
  7917. m : translate,
  7918. mm : translate,
  7919. h : translate,
  7920. hh : translate,
  7921. d : 'en dan',
  7922. dd : translate,
  7923. M : 'en mesec',
  7924. MM : translate,
  7925. y : 'eno leto',
  7926. yy : translate
  7927. },
  7928. ordinalParse: /\d{1,2}\./,
  7929. ordinal : '%d.',
  7930. week : {
  7931. dow : 1, // Monday is the first day of the week.
  7932. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7933. }
  7934. });
  7935. }));
  7936. // moment.js locale configuration
  7937. // locale : Albanian (sq)
  7938. // author : Flakërim Ismani : https://github.com/flakerimi
  7939. // author: Menelion Elensúle: https://github.com/Oire (tests)
  7940. // author : Oerd Cukalla : https://github.com/oerd (fixes)
  7941. (function (factory) {
  7942. factory(moment);
  7943. }(function (moment) {
  7944. return moment.defineLocale('sq', {
  7945. months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),
  7946. monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
  7947. weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),
  7948. weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
  7949. weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),
  7950. meridiemParse: /PD|MD/,
  7951. isPM: function (input) {
  7952. return input.charAt(0) === 'M';
  7953. },
  7954. meridiem : function (hours, minutes, isLower) {
  7955. return hours < 12 ? 'PD' : 'MD';
  7956. },
  7957. longDateFormat : {
  7958. LT : 'HH:mm',
  7959. LTS : 'LT:ss',
  7960. L : 'DD/MM/YYYY',
  7961. LL : 'D MMMM YYYY',
  7962. LLL : 'D MMMM YYYY LT',
  7963. LLLL : 'dddd, D MMMM YYYY LT'
  7964. },
  7965. calendar : {
  7966. sameDay : '[Sot në] LT',
  7967. nextDay : '[Nesër në] LT',
  7968. nextWeek : 'dddd [në] LT',
  7969. lastDay : '[Dje në] LT',
  7970. lastWeek : 'dddd [e kaluar në] LT',
  7971. sameElse : 'L'
  7972. },
  7973. relativeTime : {
  7974. future : 'në %s',
  7975. past : '%s më parë',
  7976. s : 'disa sekonda',
  7977. m : 'një minutë',
  7978. mm : '%d minuta',
  7979. h : 'një orë',
  7980. hh : '%d orë',
  7981. d : 'një ditë',
  7982. dd : '%d ditë',
  7983. M : 'një muaj',
  7984. MM : '%d muaj',
  7985. y : 'një vit',
  7986. yy : '%d vite'
  7987. },
  7988. ordinalParse: /\d{1,2}\./,
  7989. ordinal : '%d.',
  7990. week : {
  7991. dow : 1, // Monday is the first day of the week.
  7992. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7993. }
  7994. });
  7995. }));
  7996. // moment.js locale configuration
  7997. // locale : Serbian-cyrillic (sr-cyrl)
  7998. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  7999. (function (factory) {
  8000. factory(moment);
  8001. }(function (moment) {
  8002. var translator = {
  8003. words: { //Different grammatical cases
  8004. m: ['један минут', 'једне минуте'],
  8005. mm: ['минут', 'минуте', 'минута'],
  8006. h: ['један сат', 'једног сата'],
  8007. hh: ['сат', 'сата', 'сати'],
  8008. dd: ['дан', 'дана', 'дана'],
  8009. MM: ['месец', 'месеца', 'месеци'],
  8010. yy: ['година', 'године', 'година']
  8011. },
  8012. correctGrammaticalCase: function (number, wordKey) {
  8013. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  8014. },
  8015. translate: function (number, withoutSuffix, key) {
  8016. var wordKey = translator.words[key];
  8017. if (key.length === 1) {
  8018. return withoutSuffix ? wordKey[0] : wordKey[1];
  8019. } else {
  8020. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  8021. }
  8022. }
  8023. };
  8024. return moment.defineLocale('sr-cyrl', {
  8025. months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
  8026. monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
  8027. weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
  8028. weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
  8029. weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
  8030. longDateFormat: {
  8031. LT: 'H:mm',
  8032. LTS : 'LT:ss',
  8033. L: 'DD. MM. YYYY',
  8034. LL: 'D. MMMM YYYY',
  8035. LLL: 'D. MMMM YYYY LT',
  8036. LLLL: 'dddd, D. MMMM YYYY LT'
  8037. },
  8038. calendar: {
  8039. sameDay: '[данас у] LT',
  8040. nextDay: '[сутра у] LT',
  8041. nextWeek: function () {
  8042. switch (this.day()) {
  8043. case 0:
  8044. return '[у] [недељу] [у] LT';
  8045. case 3:
  8046. return '[у] [среду] [у] LT';
  8047. case 6:
  8048. return '[у] [суботу] [у] LT';
  8049. case 1:
  8050. case 2:
  8051. case 4:
  8052. case 5:
  8053. return '[у] dddd [у] LT';
  8054. }
  8055. },
  8056. lastDay : '[јуче у] LT',
  8057. lastWeek : function () {
  8058. var lastWeekDays = [
  8059. '[прошле] [недеље] [у] LT',
  8060. '[прошлог] [понедељка] [у] LT',
  8061. '[прошлог] [уторка] [у] LT',
  8062. '[прошле] [среде] [у] LT',
  8063. '[прошлог] [четвртка] [у] LT',
  8064. '[прошлог] [петка] [у] LT',
  8065. '[прошле] [суботе] [у] LT'
  8066. ];
  8067. return lastWeekDays[this.day()];
  8068. },
  8069. sameElse : 'L'
  8070. },
  8071. relativeTime : {
  8072. future : 'за %s',
  8073. past : 'пре %s',
  8074. s : 'неколико секунди',
  8075. m : translator.translate,
  8076. mm : translator.translate,
  8077. h : translator.translate,
  8078. hh : translator.translate,
  8079. d : 'дан',
  8080. dd : translator.translate,
  8081. M : 'месец',
  8082. MM : translator.translate,
  8083. y : 'годину',
  8084. yy : translator.translate
  8085. },
  8086. ordinalParse: /\d{1,2}\./,
  8087. ordinal : '%d.',
  8088. week : {
  8089. dow : 1, // Monday is the first day of the week.
  8090. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8091. }
  8092. });
  8093. }));
  8094. // moment.js locale configuration
  8095. // locale : Serbian-latin (sr)
  8096. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  8097. (function (factory) {
  8098. factory(moment);
  8099. }(function (moment) {
  8100. var translator = {
  8101. words: { //Different grammatical cases
  8102. m: ['jedan minut', 'jedne minute'],
  8103. mm: ['minut', 'minute', 'minuta'],
  8104. h: ['jedan sat', 'jednog sata'],
  8105. hh: ['sat', 'sata', 'sati'],
  8106. dd: ['dan', 'dana', 'dana'],
  8107. MM: ['mesec', 'meseca', 'meseci'],
  8108. yy: ['godina', 'godine', 'godina']
  8109. },
  8110. correctGrammaticalCase: function (number, wordKey) {
  8111. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  8112. },
  8113. translate: function (number, withoutSuffix, key) {
  8114. var wordKey = translator.words[key];
  8115. if (key.length === 1) {
  8116. return withoutSuffix ? wordKey[0] : wordKey[1];
  8117. } else {
  8118. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  8119. }
  8120. }
  8121. };
  8122. return moment.defineLocale('sr', {
  8123. months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
  8124. monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
  8125. weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
  8126. weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
  8127. weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
  8128. longDateFormat: {
  8129. LT: 'H:mm',
  8130. LTS : 'LT:ss',
  8131. L: 'DD. MM. YYYY',
  8132. LL: 'D. MMMM YYYY',
  8133. LLL: 'D. MMMM YYYY LT',
  8134. LLLL: 'dddd, D. MMMM YYYY LT'
  8135. },
  8136. calendar: {
  8137. sameDay: '[danas u] LT',
  8138. nextDay: '[sutra u] LT',
  8139. nextWeek: function () {
  8140. switch (this.day()) {
  8141. case 0:
  8142. return '[u] [nedelju] [u] LT';
  8143. case 3:
  8144. return '[u] [sredu] [u] LT';
  8145. case 6:
  8146. return '[u] [subotu] [u] LT';
  8147. case 1:
  8148. case 2:
  8149. case 4:
  8150. case 5:
  8151. return '[u] dddd [u] LT';
  8152. }
  8153. },
  8154. lastDay : '[juče u] LT',
  8155. lastWeek : function () {
  8156. var lastWeekDays = [
  8157. '[prošle] [nedelje] [u] LT',
  8158. '[prošlog] [ponedeljka] [u] LT',
  8159. '[prošlog] [utorka] [u] LT',
  8160. '[prošle] [srede] [u] LT',
  8161. '[prošlog] [četvrtka] [u] LT',
  8162. '[prošlog] [petka] [u] LT',
  8163. '[prošle] [subote] [u] LT'
  8164. ];
  8165. return lastWeekDays[this.day()];
  8166. },
  8167. sameElse : 'L'
  8168. },
  8169. relativeTime : {
  8170. future : 'za %s',
  8171. past : 'pre %s',
  8172. s : 'nekoliko sekundi',
  8173. m : translator.translate,
  8174. mm : translator.translate,
  8175. h : translator.translate,
  8176. hh : translator.translate,
  8177. d : 'dan',
  8178. dd : translator.translate,
  8179. M : 'mesec',
  8180. MM : translator.translate,
  8181. y : 'godinu',
  8182. yy : translator.translate
  8183. },
  8184. ordinalParse: /\d{1,2}\./,
  8185. ordinal : '%d.',
  8186. week : {
  8187. dow : 1, // Monday is the first day of the week.
  8188. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8189. }
  8190. });
  8191. }));
  8192. // moment.js locale configuration
  8193. // locale : swedish (sv)
  8194. // author : Jens Alm : https://github.com/ulmus
  8195. (function (factory) {
  8196. factory(moment);
  8197. }(function (moment) {
  8198. return moment.defineLocale('sv', {
  8199. months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),
  8200. monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
  8201. weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
  8202. weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
  8203. weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
  8204. longDateFormat : {
  8205. LT : 'HH:mm',
  8206. LTS : 'LT:ss',
  8207. L : 'YYYY-MM-DD',
  8208. LL : 'D MMMM YYYY',
  8209. LLL : 'D MMMM YYYY LT',
  8210. LLLL : 'dddd D MMMM YYYY LT'
  8211. },
  8212. calendar : {
  8213. sameDay: '[Idag] LT',
  8214. nextDay: '[Imorgon] LT',
  8215. lastDay: '[Igår] LT',
  8216. nextWeek: 'dddd LT',
  8217. lastWeek: '[Förra] dddd[en] LT',
  8218. sameElse: 'L'
  8219. },
  8220. relativeTime : {
  8221. future : 'om %s',
  8222. past : 'för %s sedan',
  8223. s : 'några sekunder',
  8224. m : 'en minut',
  8225. mm : '%d minuter',
  8226. h : 'en timme',
  8227. hh : '%d timmar',
  8228. d : 'en dag',
  8229. dd : '%d dagar',
  8230. M : 'en månad',
  8231. MM : '%d månader',
  8232. y : 'ett år',
  8233. yy : '%d år'
  8234. },
  8235. ordinalParse: /\d{1,2}(e|a)/,
  8236. ordinal : function (number) {
  8237. var b = number % 10,
  8238. output = (~~(number % 100 / 10) === 1) ? 'e' :
  8239. (b === 1) ? 'a' :
  8240. (b === 2) ? 'a' :
  8241. (b === 3) ? 'e' : 'e';
  8242. return number + output;
  8243. },
  8244. week : {
  8245. dow : 1, // Monday is the first day of the week.
  8246. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8247. }
  8248. });
  8249. }));
  8250. // moment.js locale configuration
  8251. // locale : tamil (ta)
  8252. // author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
  8253. (function (factory) {
  8254. factory(moment);
  8255. }(function (moment) {
  8256. /*var symbolMap = {
  8257. '1': '௧',
  8258. '2': '௨',
  8259. '3': '௩',
  8260. '4': '௪',
  8261. '5': '௫',
  8262. '6': '௬',
  8263. '7': '௭',
  8264. '8': '௮',
  8265. '9': '௯',
  8266. '0': '௦'
  8267. },
  8268. numberMap = {
  8269. '௧': '1',
  8270. '௨': '2',
  8271. '௩': '3',
  8272. '௪': '4',
  8273. '௫': '5',
  8274. '௬': '6',
  8275. '௭': '7',
  8276. '௮': '8',
  8277. '௯': '9',
  8278. '௦': '0'
  8279. }; */
  8280. return moment.defineLocale('ta', {
  8281. months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  8282. monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),
  8283. weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),
  8284. weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),
  8285. weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
  8286. longDateFormat : {
  8287. LT : 'HH:mm',
  8288. LTS : 'LT:ss',
  8289. L : 'DD/MM/YYYY',
  8290. LL : 'D MMMM YYYY',
  8291. LLL : 'D MMMM YYYY, LT',
  8292. LLLL : 'dddd, D MMMM YYYY, LT'
  8293. },
  8294. calendar : {
  8295. sameDay : '[இன்று] LT',
  8296. nextDay : '[நாளை] LT',
  8297. nextWeek : 'dddd, LT',
  8298. lastDay : '[நேற்று] LT',
  8299. lastWeek : '[கடந்த வாரம்] dddd, LT',
  8300. sameElse : 'L'
  8301. },
  8302. relativeTime : {
  8303. future : '%s இல்',
  8304. past : '%s முன்',
  8305. s : 'ஒரு சில விநாடிகள்',
  8306. m : 'ஒரு நிமிடம்',
  8307. mm : '%d நிமிடங்கள்',
  8308. h : 'ஒரு மணி நேரம்',
  8309. hh : '%d மணி நேரம்',
  8310. d : 'ஒரு நாள்',
  8311. dd : '%d நாட்கள்',
  8312. M : 'ஒரு மாதம்',
  8313. MM : '%d மாதங்கள்',
  8314. y : 'ஒரு வருடம்',
  8315. yy : '%d ஆண்டுகள்'
  8316. },
  8317. /* preparse: function (string) {
  8318. return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
  8319. return numberMap[match];
  8320. });
  8321. },
  8322. postformat: function (string) {
  8323. return string.replace(/\d/g, function (match) {
  8324. return symbolMap[match];
  8325. });
  8326. },*/
  8327. ordinalParse: /\d{1,2}வது/,
  8328. ordinal : function (number) {
  8329. return number + 'வது';
  8330. },
  8331. // refer http://ta.wikipedia.org/s/1er1
  8332. meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
  8333. meridiem : function (hour, minute, isLower) {
  8334. if (hour < 2) {
  8335. return ' யாமம்';
  8336. } else if (hour < 6) {
  8337. return ' வைகறை'; // வைகறை
  8338. } else if (hour < 10) {
  8339. return ' காலை'; // காலை
  8340. } else if (hour < 14) {
  8341. return ' நண்பகல்'; // நண்பகல்
  8342. } else if (hour < 18) {
  8343. return ' எற்பாடு'; // எற்பாடு
  8344. } else if (hour < 22) {
  8345. return ' மாலை'; // மாலை
  8346. } else {
  8347. return ' யாமம்';
  8348. }
  8349. },
  8350. meridiemHour : function (hour, meridiem) {
  8351. if (hour === 12) {
  8352. hour = 0;
  8353. }
  8354. if (meridiem === 'யாமம்') {
  8355. return hour < 2 ? hour : hour + 12;
  8356. } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
  8357. return hour;
  8358. } else if (meridiem === 'நண்பகல்') {
  8359. return hour >= 10 ? hour : hour + 12;
  8360. } else {
  8361. return hour + 12;
  8362. }
  8363. },
  8364. week : {
  8365. dow : 0, // Sunday is the first day of the week.
  8366. doy : 6 // The week that contains Jan 1st is the first week of the year.
  8367. }
  8368. });
  8369. }));
  8370. // moment.js locale configuration
  8371. // locale : thai (th)
  8372. // author : Kridsada Thanabulpong : https://github.com/sirn
  8373. (function (factory) {
  8374. factory(moment);
  8375. }(function (moment) {
  8376. return moment.defineLocale('th', {
  8377. months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),
  8378. monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'),
  8379. weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),
  8380. weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
  8381. weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
  8382. longDateFormat : {
  8383. LT : 'H นาฬิกา m นาที',
  8384. LTS : 'LT s วินาที',
  8385. L : 'YYYY/MM/DD',
  8386. LL : 'D MMMM YYYY',
  8387. LLL : 'D MMMM YYYY เวลา LT',
  8388. LLLL : 'วันddddที่ D MMMM YYYY เวลา LT'
  8389. },
  8390. meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
  8391. isPM: function (input) {
  8392. return input === 'หลังเที่ยง';
  8393. },
  8394. meridiem : function (hour, minute, isLower) {
  8395. if (hour < 12) {
  8396. return 'ก่อนเที่ยง';
  8397. } else {
  8398. return 'หลังเที่ยง';
  8399. }
  8400. },
  8401. calendar : {
  8402. sameDay : '[วันนี้ เวลา] LT',
  8403. nextDay : '[พรุ่งนี้ เวลา] LT',
  8404. nextWeek : 'dddd[หน้า เวลา] LT',
  8405. lastDay : '[เมื่อวานนี้ เวลา] LT',
  8406. lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
  8407. sameElse : 'L'
  8408. },
  8409. relativeTime : {
  8410. future : 'อีก %s',
  8411. past : '%sที่แล้ว',
  8412. s : 'ไม่กี่วินาที',
  8413. m : '1 นาที',
  8414. mm : '%d นาที',
  8415. h : '1 ชั่วโมง',
  8416. hh : '%d ชั่วโมง',
  8417. d : '1 วัน',
  8418. dd : '%d วัน',
  8419. M : '1 เดือน',
  8420. MM : '%d เดือน',
  8421. y : '1 ปี',
  8422. yy : '%d ปี'
  8423. }
  8424. });
  8425. }));
  8426. // moment.js locale configuration
  8427. // locale : Tagalog/Filipino (tl-ph)
  8428. // author : Dan Hagman
  8429. (function (factory) {
  8430. factory(moment);
  8431. }(function (moment) {
  8432. return moment.defineLocale('tl-ph', {
  8433. months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),
  8434. monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
  8435. weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),
  8436. weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
  8437. weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
  8438. longDateFormat : {
  8439. LT : 'HH:mm',
  8440. LTS : 'LT:ss',
  8441. L : 'MM/D/YYYY',
  8442. LL : 'MMMM D, YYYY',
  8443. LLL : 'MMMM D, YYYY LT',
  8444. LLLL : 'dddd, MMMM DD, YYYY LT'
  8445. },
  8446. calendar : {
  8447. sameDay: '[Ngayon sa] LT',
  8448. nextDay: '[Bukas sa] LT',
  8449. nextWeek: 'dddd [sa] LT',
  8450. lastDay: '[Kahapon sa] LT',
  8451. lastWeek: 'dddd [huling linggo] LT',
  8452. sameElse: 'L'
  8453. },
  8454. relativeTime : {
  8455. future : 'sa loob ng %s',
  8456. past : '%s ang nakalipas',
  8457. s : 'ilang segundo',
  8458. m : 'isang minuto',
  8459. mm : '%d minuto',
  8460. h : 'isang oras',
  8461. hh : '%d oras',
  8462. d : 'isang araw',
  8463. dd : '%d araw',
  8464. M : 'isang buwan',
  8465. MM : '%d buwan',
  8466. y : 'isang taon',
  8467. yy : '%d taon'
  8468. },
  8469. ordinalParse: /\d{1,2}/,
  8470. ordinal : function (number) {
  8471. return number;
  8472. },
  8473. week : {
  8474. dow : 1, // Monday is the first day of the week.
  8475. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8476. }
  8477. });
  8478. }));
  8479. // moment.js locale configuration
  8480. // locale : turkish (tr)
  8481. // authors : Erhan Gundogan : https://github.com/erhangundogan,
  8482. // Burak Yiğit Kaya: https://github.com/BYK
  8483. (function (factory) {
  8484. factory(moment);
  8485. }(function (moment) {
  8486. var suffixes = {
  8487. 1: '\'inci',
  8488. 5: '\'inci',
  8489. 8: '\'inci',
  8490. 70: '\'inci',
  8491. 80: '\'inci',
  8492. 2: '\'nci',
  8493. 7: '\'nci',
  8494. 20: '\'nci',
  8495. 50: '\'nci',
  8496. 3: '\'üncü',
  8497. 4: '\'üncü',
  8498. 100: '\'üncü',
  8499. 6: '\'ncı',
  8500. 9: '\'uncu',
  8501. 10: '\'uncu',
  8502. 30: '\'uncu',
  8503. 60: '\'ıncı',
  8504. 90: '\'ıncı'
  8505. };
  8506. return moment.defineLocale('tr', {
  8507. months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),
  8508. monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
  8509. weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),
  8510. weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),
  8511. weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
  8512. longDateFormat : {
  8513. LT : 'HH:mm',
  8514. LTS : 'LT:ss',
  8515. L : 'DD.MM.YYYY',
  8516. LL : 'D MMMM YYYY',
  8517. LLL : 'D MMMM YYYY LT',
  8518. LLLL : 'dddd, D MMMM YYYY LT'
  8519. },
  8520. calendar : {
  8521. sameDay : '[bugün saat] LT',
  8522. nextDay : '[yarın saat] LT',
  8523. nextWeek : '[haftaya] dddd [saat] LT',
  8524. lastDay : '[dün] LT',
  8525. lastWeek : '[geçen hafta] dddd [saat] LT',
  8526. sameElse : 'L'
  8527. },
  8528. relativeTime : {
  8529. future : '%s sonra',
  8530. past : '%s önce',
  8531. s : 'birkaç saniye',
  8532. m : 'bir dakika',
  8533. mm : '%d dakika',
  8534. h : 'bir saat',
  8535. hh : '%d saat',
  8536. d : 'bir gün',
  8537. dd : '%d gün',
  8538. M : 'bir ay',
  8539. MM : '%d ay',
  8540. y : 'bir yıl',
  8541. yy : '%d yıl'
  8542. },
  8543. ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
  8544. ordinal : function (number) {
  8545. if (number === 0) { // special case for zero
  8546. return number + '\'ıncı';
  8547. }
  8548. var a = number % 10,
  8549. b = number % 100 - a,
  8550. c = number >= 100 ? 100 : null;
  8551. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  8552. },
  8553. week : {
  8554. dow : 1, // Monday is the first day of the week.
  8555. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8556. }
  8557. });
  8558. }));
  8559. // moment.js locale configuration
  8560. // locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
  8561. // author : Abdel Said : https://github.com/abdelsaid
  8562. (function (factory) {
  8563. factory(moment);
  8564. }(function (moment) {
  8565. return moment.defineLocale('tzm-latn', {
  8566. months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  8567. monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),
  8568. weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8569. weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8570. weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
  8571. longDateFormat : {
  8572. LT : 'HH:mm',
  8573. LTS : 'LT:ss',
  8574. L : 'DD/MM/YYYY',
  8575. LL : 'D MMMM YYYY',
  8576. LLL : 'D MMMM YYYY LT',
  8577. LLLL : 'dddd D MMMM YYYY LT'
  8578. },
  8579. calendar : {
  8580. sameDay: '[asdkh g] LT',
  8581. nextDay: '[aska g] LT',
  8582. nextWeek: 'dddd [g] LT',
  8583. lastDay: '[assant g] LT',
  8584. lastWeek: 'dddd [g] LT',
  8585. sameElse: 'L'
  8586. },
  8587. relativeTime : {
  8588. future : 'dadkh s yan %s',
  8589. past : 'yan %s',
  8590. s : 'imik',
  8591. m : 'minuḍ',
  8592. mm : '%d minuḍ',
  8593. h : 'saɛa',
  8594. hh : '%d tassaɛin',
  8595. d : 'ass',
  8596. dd : '%d ossan',
  8597. M : 'ayowr',
  8598. MM : '%d iyyirn',
  8599. y : 'asgas',
  8600. yy : '%d isgasn'
  8601. },
  8602. week : {
  8603. dow : 6, // Saturday is the first day of the week.
  8604. doy : 12 // The week that contains Jan 1st is the first week of the year.
  8605. }
  8606. });
  8607. }));
  8608. // moment.js locale configuration
  8609. // locale : Morocco Central Atlas Tamaziɣt (tzm)
  8610. // author : Abdel Said : https://github.com/abdelsaid
  8611. (function (factory) {
  8612. factory(moment);
  8613. }(function (moment) {
  8614. return moment.defineLocale('tzm', {
  8615. months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  8616. monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),
  8617. weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8618. weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8619. weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
  8620. longDateFormat : {
  8621. LT : 'HH:mm',
  8622. LTS: 'LT:ss',
  8623. L : 'DD/MM/YYYY',
  8624. LL : 'D MMMM YYYY',
  8625. LLL : 'D MMMM YYYY LT',
  8626. LLLL : 'dddd D MMMM YYYY LT'
  8627. },
  8628. calendar : {
  8629. sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
  8630. nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
  8631. nextWeek: 'dddd [ⴴ] LT',
  8632. lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
  8633. lastWeek: 'dddd [ⴴ] LT',
  8634. sameElse: 'L'
  8635. },
  8636. relativeTime : {
  8637. future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
  8638. past : 'ⵢⴰⵏ %s',
  8639. s : 'ⵉⵎⵉⴽ',
  8640. m : 'ⵎⵉⵏⵓⴺ',
  8641. mm : '%d ⵎⵉⵏⵓⴺ',
  8642. h : 'ⵙⴰⵄⴰ',
  8643. hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
  8644. d : 'ⴰⵙⵙ',
  8645. dd : '%d oⵙⵙⴰⵏ',
  8646. M : 'ⴰⵢoⵓⵔ',
  8647. MM : '%d ⵉⵢⵢⵉⵔⵏ',
  8648. y : 'ⴰⵙⴳⴰⵙ',
  8649. yy : '%d ⵉⵙⴳⴰⵙⵏ'
  8650. },
  8651. week : {
  8652. dow : 6, // Saturday is the first day of the week.
  8653. doy : 12 // The week that contains Jan 1st is the first week of the year.
  8654. }
  8655. });
  8656. }));
  8657. // moment.js locale configuration
  8658. // locale : ukrainian (uk)
  8659. // author : zemlanin : https://github.com/zemlanin
  8660. // Author : Menelion Elensúle : https://github.com/Oire
  8661. (function (factory) {
  8662. factory(moment);
  8663. }(function (moment) {
  8664. function plural(word, num) {
  8665. var forms = word.split('_');
  8666. 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]);
  8667. }
  8668. function relativeTimeWithPlural(number, withoutSuffix, key) {
  8669. var format = {
  8670. 'mm': 'хвилина_хвилини_хвилин',
  8671. 'hh': 'година_години_годин',
  8672. 'dd': 'день_дні_днів',
  8673. 'MM': 'місяць_місяці_місяців',
  8674. 'yy': 'рік_роки_років'
  8675. };
  8676. if (key === 'm') {
  8677. return withoutSuffix ? 'хвилина' : 'хвилину';
  8678. }
  8679. else if (key === 'h') {
  8680. return withoutSuffix ? 'година' : 'годину';
  8681. }
  8682. else {
  8683. return number + ' ' + plural(format[key], +number);
  8684. }
  8685. }
  8686. function monthsCaseReplace(m, format) {
  8687. var months = {
  8688. 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
  8689. 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
  8690. },
  8691. nounCase = (/D[oD]? *MMMM?/).test(format) ?
  8692. 'accusative' :
  8693. 'nominative';
  8694. return months[nounCase][m.month()];
  8695. }
  8696. function weekdaysCaseReplace(m, format) {
  8697. var weekdays = {
  8698. 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
  8699. 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
  8700. 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
  8701. },
  8702. nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
  8703. 'accusative' :
  8704. ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
  8705. 'genitive' :
  8706. 'nominative');
  8707. return weekdays[nounCase][m.day()];
  8708. }
  8709. function processHoursFunction(str) {
  8710. return function () {
  8711. return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
  8712. };
  8713. }
  8714. return moment.defineLocale('uk', {
  8715. months : monthsCaseReplace,
  8716. monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),
  8717. weekdays : weekdaysCaseReplace,
  8718. weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  8719. weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
  8720. longDateFormat : {
  8721. LT : 'HH:mm',
  8722. LTS : 'LT:ss',
  8723. L : 'DD.MM.YYYY',
  8724. LL : 'D MMMM YYYY р.',
  8725. LLL : 'D MMMM YYYY р., LT',
  8726. LLLL : 'dddd, D MMMM YYYY р., LT'
  8727. },
  8728. calendar : {
  8729. sameDay: processHoursFunction('[Сьогодні '),
  8730. nextDay: processHoursFunction('[Завтра '),
  8731. lastDay: processHoursFunction('[Вчора '),
  8732. nextWeek: processHoursFunction('[У] dddd ['),
  8733. lastWeek: function () {
  8734. switch (this.day()) {
  8735. case 0:
  8736. case 3:
  8737. case 5:
  8738. case 6:
  8739. return processHoursFunction('[Минулої] dddd [').call(this);
  8740. case 1:
  8741. case 2:
  8742. case 4:
  8743. return processHoursFunction('[Минулого] dddd [').call(this);
  8744. }
  8745. },
  8746. sameElse: 'L'
  8747. },
  8748. relativeTime : {
  8749. future : 'за %s',
  8750. past : '%s тому',
  8751. s : 'декілька секунд',
  8752. m : relativeTimeWithPlural,
  8753. mm : relativeTimeWithPlural,
  8754. h : 'годину',
  8755. hh : relativeTimeWithPlural,
  8756. d : 'день',
  8757. dd : relativeTimeWithPlural,
  8758. M : 'місяць',
  8759. MM : relativeTimeWithPlural,
  8760. y : 'рік',
  8761. yy : relativeTimeWithPlural
  8762. },
  8763. // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
  8764. meridiemParse: /ночі|ранку|дня|вечора/,
  8765. isPM: function (input) {
  8766. return /^(дня|вечора)$/.test(input);
  8767. },
  8768. meridiem : function (hour, minute, isLower) {
  8769. if (hour < 4) {
  8770. return 'ночі';
  8771. } else if (hour < 12) {
  8772. return 'ранку';
  8773. } else if (hour < 17) {
  8774. return 'дня';
  8775. } else {
  8776. return 'вечора';
  8777. }
  8778. },
  8779. ordinalParse: /\d{1,2}-(й|го)/,
  8780. ordinal: function (number, period) {
  8781. switch (period) {
  8782. case 'M':
  8783. case 'd':
  8784. case 'DDD':
  8785. case 'w':
  8786. case 'W':
  8787. return number + '-й';
  8788. case 'D':
  8789. return number + '-го';
  8790. default:
  8791. return number;
  8792. }
  8793. },
  8794. week : {
  8795. dow : 1, // Monday is the first day of the week.
  8796. doy : 7 // The week that contains Jan 1st is the first week of the year.
  8797. }
  8798. });
  8799. }));
  8800. // moment.js locale configuration
  8801. // locale : uzbek (uz)
  8802. // author : Sardor Muminov : https://github.com/muminoff
  8803. (function (factory) {
  8804. factory(moment);
  8805. }(function (moment) {
  8806. return moment.defineLocale('uz', {
  8807. months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  8808. monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
  8809. weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
  8810. weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
  8811. weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
  8812. longDateFormat : {
  8813. LT : 'HH:mm',
  8814. LTS : 'LT:ss',
  8815. L : 'DD/MM/YYYY',
  8816. LL : 'D MMMM YYYY',
  8817. LLL : 'D MMMM YYYY LT',
  8818. LLLL : 'D MMMM YYYY, dddd LT'
  8819. },
  8820. calendar : {
  8821. sameDay : '[Бугун соат] LT [да]',
  8822. nextDay : '[Эртага] LT [да]',
  8823. nextWeek : 'dddd [куни соат] LT [да]',
  8824. lastDay : '[Кеча соат] LT [да]',
  8825. lastWeek : '[Утган] dddd [куни соат] LT [да]',
  8826. sameElse : 'L'
  8827. },
  8828. relativeTime : {
  8829. future : 'Якин %s ичида',
  8830. past : 'Бир неча %s олдин',
  8831. s : 'фурсат',
  8832. m : 'бир дакика',
  8833. mm : '%d дакика',
  8834. h : 'бир соат',
  8835. hh : '%d соат',
  8836. d : 'бир кун',
  8837. dd : '%d кун',
  8838. M : 'бир ой',
  8839. MM : '%d ой',
  8840. y : 'бир йил',
  8841. yy : '%d йил'
  8842. },
  8843. week : {
  8844. dow : 1, // Monday is the first day of the week.
  8845. doy : 7 // The week that contains Jan 4th is the first week of the year.
  8846. }
  8847. });
  8848. }));
  8849. // moment.js locale configuration
  8850. // locale : vietnamese (vi)
  8851. // author : Bang Nguyen : https://github.com/bangnk
  8852. (function (factory) {
  8853. factory(moment);
  8854. }(function (moment) {
  8855. return moment.defineLocale('vi', {
  8856. 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('_'),
  8857. monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),
  8858. weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),
  8859. weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  8860. weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
  8861. longDateFormat : {
  8862. LT : 'HH:mm',
  8863. LTS : 'LT:ss',
  8864. L : 'DD/MM/YYYY',
  8865. LL : 'D MMMM [năm] YYYY',
  8866. LLL : 'D MMMM [năm] YYYY LT',
  8867. LLLL : 'dddd, D MMMM [năm] YYYY LT',
  8868. l : 'DD/M/YYYY',
  8869. ll : 'D MMM YYYY',
  8870. lll : 'D MMM YYYY LT',
  8871. llll : 'ddd, D MMM YYYY LT'
  8872. },
  8873. calendar : {
  8874. sameDay: '[Hôm nay lúc] LT',
  8875. nextDay: '[Ngày mai lúc] LT',
  8876. nextWeek: 'dddd [tuần tới lúc] LT',
  8877. lastDay: '[Hôm qua lúc] LT',
  8878. lastWeek: 'dddd [tuần rồi lúc] LT',
  8879. sameElse: 'L'
  8880. },
  8881. relativeTime : {
  8882. future : '%s tới',
  8883. past : '%s trước',
  8884. s : 'vài giây',
  8885. m : 'một phút',
  8886. mm : '%d phút',
  8887. h : 'một giờ',
  8888. hh : '%d giờ',
  8889. d : 'một ngày',
  8890. dd : '%d ngày',
  8891. M : 'một tháng',
  8892. MM : '%d tháng',
  8893. y : 'một năm',
  8894. yy : '%d năm'
  8895. },
  8896. ordinalParse: /\d{1,2}/,
  8897. ordinal : function (number) {
  8898. return number;
  8899. },
  8900. week : {
  8901. dow : 1, // Monday is the first day of the week.
  8902. doy : 4 // The week that contains Jan 4th is the first week of the year.
  8903. }
  8904. });
  8905. }));
  8906. // moment.js locale configuration
  8907. // locale : chinese (zh-cn)
  8908. // author : suupic : https://github.com/suupic
  8909. // author : Zeno Zeng : https://github.com/zenozeng
  8910. (function (factory) {
  8911. factory(moment);
  8912. }(function (moment) {
  8913. return moment.defineLocale('zh-cn', {
  8914. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  8915. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  8916. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  8917. weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),
  8918. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  8919. longDateFormat : {
  8920. LT : 'Ah点mm',
  8921. LTS : 'Ah点m分s秒',
  8922. L : 'YYYY-MM-DD',
  8923. LL : 'YYYY年MMMD日',
  8924. LLL : 'YYYY年MMMD日LT',
  8925. LLLL : 'YYYY年MMMD日ddddLT',
  8926. l : 'YYYY-MM-DD',
  8927. ll : 'YYYY年MMMD日',
  8928. lll : 'YYYY年MMMD日LT',
  8929. llll : 'YYYY年MMMD日ddddLT'
  8930. },
  8931. meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  8932. meridiemHour: function (hour, meridiem) {
  8933. if (hour === 12) {
  8934. hour = 0;
  8935. }
  8936. if (meridiem === '凌晨' || meridiem === '早上' ||
  8937. meridiem === '上午') {
  8938. return hour;
  8939. } else if (meridiem === '下午' || meridiem === '晚上') {
  8940. return hour + 12;
  8941. } else {
  8942. // '中午'
  8943. return hour >= 11 ? hour : hour + 12;
  8944. }
  8945. },
  8946. meridiem : function (hour, minute, isLower) {
  8947. var hm = hour * 100 + minute;
  8948. if (hm < 600) {
  8949. return '凌晨';
  8950. } else if (hm < 900) {
  8951. return '早上';
  8952. } else if (hm < 1130) {
  8953. return '上午';
  8954. } else if (hm < 1230) {
  8955. return '中午';
  8956. } else if (hm < 1800) {
  8957. return '下午';
  8958. } else {
  8959. return '晚上';
  8960. }
  8961. },
  8962. calendar : {
  8963. sameDay : function () {
  8964. return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT';
  8965. },
  8966. nextDay : function () {
  8967. return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT';
  8968. },
  8969. lastDay : function () {
  8970. return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT';
  8971. },
  8972. nextWeek : function () {
  8973. var startOfWeek, prefix;
  8974. startOfWeek = moment().startOf('week');
  8975. prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
  8976. return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
  8977. },
  8978. lastWeek : function () {
  8979. var startOfWeek, prefix;
  8980. startOfWeek = moment().startOf('week');
  8981. prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
  8982. return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm';
  8983. },
  8984. sameElse : 'LL'
  8985. },
  8986. ordinalParse: /\d{1,2}(日|月|周)/,
  8987. ordinal : function (number, period) {
  8988. switch (period) {
  8989. case 'd':
  8990. case 'D':
  8991. case 'DDD':
  8992. return number + '日';
  8993. case 'M':
  8994. return number + '月';
  8995. case 'w':
  8996. case 'W':
  8997. return number + '周';
  8998. default:
  8999. return number;
  9000. }
  9001. },
  9002. relativeTime : {
  9003. future : '%s内',
  9004. past : '%s前',
  9005. s : '几秒',
  9006. m : '1分钟',
  9007. mm : '%d分钟',
  9008. h : '1小时',
  9009. hh : '%d小时',
  9010. d : '1天',
  9011. dd : '%d天',
  9012. M : '1个月',
  9013. MM : '%d个月',
  9014. y : '1年',
  9015. yy : '%d年'
  9016. },
  9017. week : {
  9018. // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
  9019. dow : 1, // Monday is the first day of the week.
  9020. doy : 4 // The week that contains Jan 4th is the first week of the year.
  9021. }
  9022. });
  9023. }));
  9024. // moment.js locale configuration
  9025. // locale : traditional chinese (zh-tw)
  9026. // author : Ben : https://github.com/ben-lin
  9027. (function (factory) {
  9028. factory(moment);
  9029. }(function (moment) {
  9030. return moment.defineLocale('zh-tw', {
  9031. months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),
  9032. monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
  9033. weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
  9034. weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),
  9035. weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
  9036. longDateFormat : {
  9037. LT : 'Ah點mm',
  9038. LTS : 'Ah點m分s秒',
  9039. L : 'YYYY年MMMD日',
  9040. LL : 'YYYY年MMMD日',
  9041. LLL : 'YYYY年MMMD日LT',
  9042. LLLL : 'YYYY年MMMD日ddddLT',
  9043. l : 'YYYY年MMMD日',
  9044. ll : 'YYYY年MMMD日',
  9045. lll : 'YYYY年MMMD日LT',
  9046. llll : 'YYYY年MMMD日ddddLT'
  9047. },
  9048. meridiemParse: /早上|上午|中午|下午|晚上/,
  9049. meridiemHour : function (hour, meridiem) {
  9050. if (hour === 12) {
  9051. hour = 0;
  9052. }
  9053. if (meridiem === '早上' || meridiem === '上午') {
  9054. return hour;
  9055. } else if (meridiem === '中午') {
  9056. return hour >= 11 ? hour : hour + 12;
  9057. } else if (meridiem === '下午' || meridiem === '晚上') {
  9058. return hour + 12;
  9059. }
  9060. },
  9061. meridiem : function (hour, minute, isLower) {
  9062. var hm = hour * 100 + minute;
  9063. if (hm < 900) {
  9064. return '早上';
  9065. } else if (hm < 1130) {
  9066. return '上午';
  9067. } else if (hm < 1230) {
  9068. return '中午';
  9069. } else if (hm < 1800) {
  9070. return '下午';
  9071. } else {
  9072. return '晚上';
  9073. }
  9074. },
  9075. calendar : {
  9076. sameDay : '[今天]LT',
  9077. nextDay : '[明天]LT',
  9078. nextWeek : '[下]ddddLT',
  9079. lastDay : '[昨天]LT',
  9080. lastWeek : '[上]ddddLT',
  9081. sameElse : 'L'
  9082. },
  9083. ordinalParse: /\d{1,2}(日|月|週)/,
  9084. ordinal : function (number, period) {
  9085. switch (period) {
  9086. case 'd' :
  9087. case 'D' :
  9088. case 'DDD' :
  9089. return number + '日';
  9090. case 'M' :
  9091. return number + '月';
  9092. case 'w' :
  9093. case 'W' :
  9094. return number + '週';
  9095. default :
  9096. return number;
  9097. }
  9098. },
  9099. relativeTime : {
  9100. future : '%s內',
  9101. past : '%s前',
  9102. s : '幾秒',
  9103. m : '一分鐘',
  9104. mm : '%d分鐘',
  9105. h : '一小時',
  9106. hh : '%d小時',
  9107. d : '一天',
  9108. dd : '%d天',
  9109. M : '一個月',
  9110. MM : '%d個月',
  9111. y : '一年',
  9112. yy : '%d年'
  9113. }
  9114. });
  9115. }));
  9116. moment.locale('en');
  9117. /************************************
  9118. Exposing Moment
  9119. ************************************/
  9120. function makeGlobal(shouldDeprecate) {
  9121. /*global ender:false */
  9122. if (typeof ender !== 'undefined') {
  9123. return;
  9124. }
  9125. oldGlobalMoment = globalScope.moment;
  9126. if (shouldDeprecate) {
  9127. globalScope.moment = deprecate(
  9128. 'Accessing Moment through the global scope is ' +
  9129. 'deprecated, and will be removed in an upcoming ' +
  9130. 'release.',
  9131. moment);
  9132. } else {
  9133. globalScope.moment = moment;
  9134. }
  9135. }
  9136. // CommonJS module is defined
  9137. if (hasModule) {
  9138. module.exports = moment;
  9139. } else if (typeof define === 'function' && define.amd) {
  9140. define(function (require, exports, module) {
  9141. if (module.config && module.config() && module.config().noGlobal === true) {
  9142. // release the global variable
  9143. globalScope.moment = oldGlobalMoment;
  9144. }
  9145. return moment;
  9146. });
  9147. makeGlobal(true);
  9148. } else {
  9149. makeGlobal();
  9150. }
  9151. }).call(this);