javascript-time-ago 2.3.9 → 2.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +4 -0
- package/bundle/javascript-time-ago.js +1 -1
- package/bundle/javascript-time-ago.js.map +1 -1
- package/bundle/javascript-time-ago.min.js +1 -1
- package/bundle/javascript-time-ago.min.js.map +1 -1
- package/commonjs/TimeAgo.js +4 -17
- package/commonjs/TimeAgo.js.map +1 -1
- package/commonjs/TimeAgo.test.js +1 -35
- package/commonjs/TimeAgo.test.js.map +1 -1
- package/commonjs/isStyleObject.js +23 -0
- package/commonjs/isStyleObject.js.map +1 -0
- package/commonjs/isStyleObject.test.js +39 -0
- package/commonjs/isStyleObject.test.js.map +1 -0
- package/index.d.ts +2 -1
- package/load-all-locales.js +38 -1
- package/locale/af.json +18 -18
- package/locale/as.json +2 -2
- package/locale/be.json +16 -16
- package/locale/bg.json +1 -1
- package/locale/br.json +16 -28
- package/locale/bs-Cyrl.json +105 -140
- package/locale/bs.json +1 -4
- package/locale/ca.json +4 -4
- package/locale/ceb/index.js +3 -0
- package/locale/ceb.json +159 -0
- package/locale/chr.json +18 -18
- package/locale/cy.json +85 -30
- package/locale/da.json +30 -30
- package/locale/dsb.json +42 -42
- package/locale/el.json +21 -11
- package/locale/en-001.json +18 -18
- package/locale/en-150.json +18 -18
- package/locale/en-AG.json +18 -18
- package/locale/en-AI.json +18 -18
- package/locale/en-AT.json +18 -18
- package/locale/en-AU.json +18 -18
- package/locale/en-BB.json +18 -18
- package/locale/en-BE.json +18 -18
- package/locale/en-BM.json +18 -18
- package/locale/en-BS.json +18 -18
- package/locale/en-BW.json +18 -18
- package/locale/en-BZ.json +18 -18
- package/locale/en-CA.json +74 -74
- package/locale/en-CC.json +18 -18
- package/locale/en-CH.json +18 -18
- package/locale/en-CK.json +18 -18
- package/locale/en-CM.json +18 -18
- package/locale/en-CX.json +18 -18
- package/locale/en-CY.json +18 -18
- package/locale/en-DE.json +18 -18
- package/locale/en-DG.json +18 -18
- package/locale/en-DK.json +18 -18
- package/locale/en-DM.json +18 -18
- package/locale/en-ER.json +18 -18
- package/locale/en-FI.json +18 -18
- package/locale/en-FJ.json +18 -18
- package/locale/en-FK.json +18 -18
- package/locale/en-FM.json +18 -18
- package/locale/en-GB.json +18 -18
- package/locale/en-GD.json +18 -18
- package/locale/en-GG.json +18 -18
- package/locale/en-GH.json +18 -18
- package/locale/en-GI.json +18 -18
- package/locale/en-GM.json +18 -18
- package/locale/en-GY.json +18 -18
- package/locale/en-HK.json +18 -18
- package/locale/en-IE.json +18 -18
- package/locale/en-IL.json +18 -18
- package/locale/en-IM.json +18 -18
- package/locale/en-IN.json +18 -18
- package/locale/en-IO.json +18 -18
- package/locale/en-JE.json +18 -18
- package/locale/en-JM.json +18 -18
- package/locale/en-KE.json +18 -18
- package/locale/en-KI.json +18 -18
- package/locale/en-KN.json +18 -18
- package/locale/en-KY.json +18 -18
- package/locale/en-LC.json +18 -18
- package/locale/en-LR.json +18 -18
- package/locale/en-LS.json +18 -18
- package/locale/en-MG.json +18 -18
- package/locale/en-MO.json +18 -18
- package/locale/en-MS.json +18 -18
- package/locale/en-MT.json +18 -18
- package/locale/en-MU.json +18 -18
- package/locale/en-MW.json +18 -18
- package/locale/en-MY.json +18 -18
- package/locale/en-NA.json +18 -18
- package/locale/en-NF.json +18 -18
- package/locale/en-NG.json +18 -18
- package/locale/en-NL.json +18 -18
- package/locale/en-NR.json +18 -18
- package/locale/en-NU.json +18 -18
- package/locale/en-NZ.json +18 -18
- package/locale/en-PG.json +18 -18
- package/locale/en-PK.json +18 -18
- package/locale/en-PN.json +18 -18
- package/locale/en-PW.json +18 -18
- package/locale/en-RW.json +18 -18
- package/locale/en-SB.json +18 -18
- package/locale/en-SC.json +18 -18
- package/locale/en-SD.json +18 -18
- package/locale/en-SE.json +18 -18
- package/locale/en-SG.json +3 -3
- package/locale/en-SH.json +18 -18
- package/locale/en-SI.json +18 -18
- package/locale/en-SL.json +18 -18
- package/locale/en-SS.json +18 -18
- package/locale/en-SX.json +18 -18
- package/locale/en-SZ.json +18 -18
- package/locale/en-TC.json +18 -18
- package/locale/en-TK.json +18 -18
- package/locale/en-TO.json +18 -18
- package/locale/en-TT.json +18 -18
- package/locale/en-TV.json +18 -18
- package/locale/en-TZ.json +18 -18
- package/locale/en-UG.json +18 -18
- package/locale/en-VC.json +18 -18
- package/locale/en-VG.json +18 -18
- package/locale/en-VU.json +18 -18
- package/locale/en-WS.json +18 -18
- package/locale/en-ZA.json +18 -18
- package/locale/en-ZM.json +18 -18
- package/locale/en-ZW.json +18 -18
- package/locale/en.json +27 -17
- package/locale/es-419/index.js +3 -0
- package/locale/es-419.json +225 -0
- package/locale/es-AR.json +6 -6
- package/locale/es-BO/index.js +3 -0
- package/locale/es-BO.json +225 -0
- package/locale/es-BR/index.js +3 -0
- package/locale/es-BR.json +225 -0
- package/locale/es-BZ/index.js +3 -0
- package/locale/es-BZ.json +225 -0
- package/locale/es-CL/index.js +3 -0
- package/locale/es-CL.json +225 -0
- package/locale/es-CO/index.js +3 -0
- package/locale/es-CO.json +225 -0
- package/locale/es-CR/index.js +3 -0
- package/locale/es-CR.json +225 -0
- package/locale/es-CU/index.js +3 -0
- package/locale/es-CU.json +225 -0
- package/locale/es-DO/index.js +3 -0
- package/locale/es-DO.json +225 -0
- package/locale/es-EC/index.js +3 -0
- package/locale/es-EC.json +225 -0
- package/locale/es-GT/index.js +3 -0
- package/locale/es-GT.json +225 -0
- package/locale/es-HN/index.js +3 -0
- package/locale/es-HN.json +225 -0
- package/locale/es-MX.json +18 -18
- package/locale/es-NI/index.js +3 -0
- package/locale/es-NI.json +225 -0
- package/locale/es-PA/index.js +3 -0
- package/locale/es-PA.json +225 -0
- package/locale/es-PE/index.js +3 -0
- package/locale/es-PE.json +225 -0
- package/locale/es-PR/index.js +3 -0
- package/locale/es-PR.json +225 -0
- package/locale/es-PY.json +6 -6
- package/locale/es-SV.json +6 -6
- package/locale/es-US.json +9 -9
- package/locale/es-UY/index.js +3 -0
- package/locale/es-UY.json +225 -0
- package/locale/es-VE/index.js +3 -0
- package/locale/es-VE.json +225 -0
- package/locale/es.json +20 -22
- package/locale/et.json +18 -18
- package/locale/eu.json +6 -6
- package/locale/fa.json +2 -2
- package/locale/ff-Adlm/index.js +3 -0
- package/locale/ff-Adlm.json +279 -0
- package/locale/fil.json +2 -2
- package/locale/fo.json +12 -12
- package/locale/fr-CA.json +4 -4
- package/locale/ga.json +3 -5
- package/locale/gd.json +4 -4
- package/locale/gl.json +14 -14
- package/locale/ha/index.js +3 -0
- package/locale/ha.json +222 -0
- package/locale/he.json +2 -2
- package/locale/hi.json +7 -7
- package/locale/hsb.json +42 -42
- package/locale/hy.json +3 -3
- package/locale/ia.json +126 -66
- package/locale/id.json +29 -29
- package/locale/ig/index.js +3 -0
- package/locale/ig.json +159 -0
- package/locale/is.json +8 -8
- package/locale/it.json +8 -14
- package/locale/ja.json +9 -9
- package/locale/jv.json +75 -75
- package/locale/kea.json +21 -21
- package/locale/kgp/index.js +3 -0
- package/locale/kgp.json +165 -0
- package/locale/ko.json +11 -0
- package/locale/kok.json +1 -1
- package/locale/ku.json +44 -26
- package/locale/lo.json +1 -1
- package/locale/lv.json +18 -18
- package/locale/mk.json +6 -6
- package/locale/mn.json +6 -6
- package/locale/mni/index.js +3 -0
- package/locale/mni.json +159 -0
- package/locale/ms.json +7 -7
- package/locale/nb.json +2 -2
- package/locale/ne.json +4 -4
- package/locale/nn.json +18 -18
- package/locale/no/index.js +3 -0
- package/locale/no.json +201 -0
- package/locale/or.json +5 -5
- package/locale/pcm/index.js +3 -0
- package/locale/pcm.json +159 -0
- package/locale/pl.json +14 -14
- package/locale/ps-PK/index.js +3 -0
- package/locale/ps-PK.json +240 -0
- package/locale/ps.json +157 -94
- package/locale/pt-AO.json +4 -1
- package/locale/pt-CH.json +4 -1
- package/locale/pt-CV.json +4 -1
- package/locale/pt-GQ.json +4 -1
- package/locale/pt-GW.json +4 -1
- package/locale/pt-LU.json +4 -1
- package/locale/pt-MO.json +4 -1
- package/locale/pt-MZ.json +4 -1
- package/locale/pt-PT.json +4 -1
- package/locale/pt-ST.json +4 -1
- package/locale/pt-TL.json +4 -1
- package/locale/pt.json +2 -5
- package/locale/rm/index.js +3 -0
- package/locale/rm.json +165 -0
- package/locale/ro.json +1 -1
- package/locale/ru.json +36 -33
- package/locale/sc/index.js +3 -0
- package/locale/sc.json +249 -0
- package/locale/sd.json +6 -6
- package/locale/so.json +137 -83
- package/locale/sr-Cyrl-BA/index.js +3 -0
- package/locale/sr-Cyrl-BA.json +214 -0
- package/locale/sr-Latn-BA/index.js +3 -0
- package/locale/sr-Latn-BA.json +214 -0
- package/locale/sr-Latn.json +3 -3
- package/locale/sr.json +3 -3
- package/locale/su/index.js +3 -0
- package/locale/su.json +159 -0
- package/locale/te.json +6 -6
- package/locale/tg/index.js +3 -0
- package/locale/tg.json +159 -0
- package/locale/ti.json +3 -3
- package/locale/to.json +6 -6
- package/locale/tr.json +12 -12
- package/locale/tt/index.js +3 -0
- package/locale/tt.json +159 -0
- package/locale/uk.json +9 -9
- package/locale/ur-IN.json +4 -7
- package/locale/ur.json +8 -11
- package/locale/uz.json +6 -6
- package/locale/vi.json +6 -6
- package/locale/wo/index.js +3 -0
- package/locale/wo.json +159 -0
- package/locale/yo/index.js +3 -0
- package/locale/yo-BJ/index.js +3 -0
- package/locale/yo-BJ.json +165 -0
- package/locale/yo.json +165 -0
- package/locale/yrl/index.js +3 -0
- package/locale/yrl.json +309 -0
- package/locale-more-styles/ckb/long-time.json +9 -0
- package/locale-more-styles/ckb/mini.json +9 -0
- package/locale-more-styles/ckb/now.json +7 -0
- package/locale-more-styles/ckb/short-time.json +12 -0
- package/modules/TimeAgo.js +2 -15
- package/modules/TimeAgo.js.map +1 -1
- package/modules/TimeAgo.test.js +1 -33
- package/modules/TimeAgo.test.js.map +1 -1
- package/modules/isStyleObject.js +15 -0
- package/modules/isStyleObject.js.map +1 -0
- package/modules/isStyleObject.test.js +34 -0
- package/modules/isStyleObject.test.js.map +1 -0
- package/package.json +7 -7
- package/rollup.config.js +1 -1
- package/locale/en-PH/index.js +0 -3
- package/locale/en-PH.json +0 -219
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../source/TimeAgo.test.js"],"names":["TimeAgo","isStyleObject","getLocaleData","english","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","throw","units","custom","time","date","locale","style2","style","unit","factor","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"mappings":"AAAA,OAAOA,OAAP,IAAkBC,aAAlB,QAAuC,mBAAvC;AACA,SAASC,aAAT,QAA8B,2BAA9B,C,CAEA;;AACA,OAAOC,OAAP,MAAoB,cAApB,C,CAEA;;AACAH,OAAO,CAACI,gBAAR,CAAyB,IAAzB;AAEAC,QAAQ,wBAAwB,YAAM;AACrCC,EAAAA,EAAE,CAAC,wCAAD,EAA2C,YAAM;AAClD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2BC,MAA3B,CAAkCC,KAAlC,CAAwC,UAAxC;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuCC,MAAvC,CAA8CC,KAA9C,CAAoD,aAApD;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,EAAJ,GAAS,IAArC,EAA2CC,MAA3C,CAAkDC,KAAlD,CAAwD,aAAxD;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,EAAJ,GAAS,IAArC,EAA2CC,MAA3C,CAAkDC,KAAlD,CAAwD,cAAxD;AACA,GANC,CAAF;AAQAN,EAAAA,EAAE,CAAC,sDAAD,EAAyD,YAAM;AAChE,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B,UAA3B,EAAuCC,MAAvC,CAA8CC,KAA9C,CAAoD,KAApD;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAEK,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAAlB,EAA4CC,MAA5C,CAAmDC,KAAnD,CAAyD,aAAzD;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAEM,MAAAA,MAAM,EAAE,MAAV;AAAkBC,MAAAA,KAAK,EAAE,CAAC;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAD,EAAsB;AAAEA,QAAAA,QAAQ,EAAE;AAAZ,OAAtB;AAAzB,KAAlB,EAA4F;AAAEH,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAA5F,EAAsHC,MAAtH,CAA6HC,KAA7H,CAAmI,KAAnI;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAEM,MAAAA,MAAM,EAAE,CAAC,MAAD,CAAV;AAAoBC,MAAAA,KAAK,EAAE,CAAC;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAD,EAAsB;AAAEA,QAAAA,QAAQ,EAAE;AAAZ,OAAtB;AAA3B,KAAlB,EAA8F;AAAEH,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAA9F,EAAwHC,MAAxH,CAA+HC,KAA/H,CAAqI,KAArI,EALgE,CAMhE;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAES,MAAAA,OAAO,EAAE;AAAX,KAAlB,EAAuC;AAAEJ,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAAvC,EAAiEC,MAAjE,CAAwEC,KAAxE,CAA8E,KAA9E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAES,MAAAA,OAAO,EAAE,CAAC,MAAD;AAAX,KAAlB,EAAyC;AAAEJ,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAAzC,EAAmEC,MAAnE,CAA0EC,KAA1E,CAAgF,KAAhF;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAEO,MAAAA,KAAK,EAAE,CAAC;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OAAD;AAAT,KAAlB,EAAuD;AAAEH,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAAvD,EAAiFC,MAAjF,CAAwFC,KAAxF,CAA8F,cAA9F,EATgE,CAUhE;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB;AAAEU,MAAAA,SAAS,EAAE,CAAC;AAAEF,QAAAA,QAAQ,EAAE;AAAZ,OAAD;AAAb,KAAlB,EAA2D;AAAEH,MAAAA,MAAM,EAAE,IAAV;AAAgBH,MAAAA,GAAG,EAAE;AAArB,KAA3D,EAAqFC,MAArF,CAA4FC,KAA5F,CAAkG,cAAlG;AACA,GAZC,CAAF;AAcAN,EAAAA,EAAE,CAAC,kEAAD,EAAqE,YAAM;AAC5E,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,OAAX;AAAV,KAA3B,EAA4DH,MAA5D,CAAmEC,KAAnE,CAAyE,UAAzE;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,sDAAD,EAAyD,YAAM;AAChE,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE,CAAC,QAAD,EAAW,OAAX;AAAV,KAA3B,EAA4DH,MAA5D,CAAmEC,KAAnE,CAAyE,UAAzE;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,yEAAD,EAA4E,YAAM;AACnF,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACA,QAAMmB,UAAU,GAAGhB,OAAO,CAACO,GAA3B;AACA,WAAOP,OAAO,CAACO,GAAf;AACAV,IAAAA,OAAO,CAACoB,SAAR,CAAkBjB,OAAlB;AACAA,IAAAA,OAAO,CAACO,GAAR,GAAcW,SAAd;AACAd,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAA3B,EAA+CH,MAA/C,CAAsDC,KAAtD,CAA4D,KAA5D;AACAT,IAAAA,OAAO,CAACO,GAAR,GAAcS,UAAd;AACAZ,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAA3B,EAA+CH,MAA/C,CAAsDC,KAAtD,CAA4D,UAA5D;AACA,GATC,CAAF;AAWAN,EAAAA,EAAE,CAAC,yDAAD,EAA4D,YAAM;AACnE,QAAMgB,YAAY,GAAGC,IAAI,CAACD,YAA1B;AACA,WAAOC,IAAI,CAACD,YAAZ;AACA,QAAMf,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAAvC,EAAgEH,MAAhE,CAAuEC,KAAvE,CAA6E,UAA7E;AACAW,IAAAA,IAAI,CAACD,YAAL,GAAoBA,YAApB;AACA,GANC,CAAF;AAQAhB,EAAAA,EAAE,CAAC,wEAAD,EAA2E,YAAM;AAClF,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,MAAM,EAAN,GAAW,EAAX,GAAgB,EAAhB,GAAqB,IAAjD,EAAuD;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAAvD,EAA4EH,MAA5E,CAAmFC,KAAnF,CAAyF,UAAzF;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,yFAAD,EAA4F,YAAM;AACnG,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACA,QAAMmB,UAAU,GAAGhB,OAAO,CAACO,GAA3B;AACAP,IAAAA,OAAO,CAACO,GAAR,GAAc;AAAEA,MAAAA,GAAG,EAAE;AAAP,KAAd;AACAV,IAAAA,OAAO,CAACoB,SAAR,CAAkBjB,OAAlB;AACAI,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAA3B,EAA+CH,MAA/C,CAAsDC,KAAtD,CAA4D,KAA5D;AACAT,IAAAA,OAAO,CAACO,GAAR,GAAcS,UAAd;AACAZ,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAA3B,EAA+CH,MAA/C,CAAsDC,KAAtD,CAA4D,UAA5D;AACA,GARC,CAAF;AAUAN,EAAAA,EAAE,CAAC,uIAAD,EAA0I,YAAM;AACjJ,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACA,QAAMwB,qBAAqB,GAAGrB,OAAO,CAAC,WAAD,CAAP,CAAqBsB,MAAnD;AACAtB,IAAAA,OAAO,CAAC,WAAD,CAAP,CAAqBsB,MAArB,GAA8B;AAC7BC,MAAAA,IAAI,EAAE,mBADuB;AAE7Bb,MAAAA,MAAM,EAAE;AAFqB,KAA9B;AAIAb,IAAAA,OAAO,CAACoB,SAAR,CAAkBjB,OAAlB,EAPiJ,CAQjJ;;AACAI,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAAvC,EAAgEH,MAAhE,CAAuEC,KAAvE,CAA6E,iBAA7E,EATiJ,CAUjJ;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAAvC,EAAgEH,MAAhE,CAAuEC,KAAvE,CAA6E,gBAA7E,EAXiJ,CAYjJ;;AACAT,IAAAA,OAAO,CAAC,WAAD,CAAP,CAAqBsB,MAArB,GAA8BD,qBAA9B;AACAjB,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC;AAAEI,MAAAA,MAAM,EAAE;AAAV,KAAvC,EAAgEH,MAAhE,CAAuEC,KAAvE,CAA6E,UAA7E;AACA,GAfC,CAAF;AAiBAN,EAAAA,EAAE,4CAAwC,YAC1C;AACC,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,EAA5B,EAAgC;AAAEI,MAAAA,MAAM,EAAE,CAAC,MAAD;AAAV,KAAhC,EAAsDH,MAAtD,CAA6DC,KAA7D,CAAmE,aAAnE;AACA,GAJC,CAAF;AAMAN,EAAAA,EAAE,CAAC,4CAAD,EAA+C,YAAM;AACtD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CADsD,CAEtD;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,MAAtC,EAA8CC,MAA9C,CAAqDC,KAArD,CAA2D,IAA3D;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,MAAtC,EAA8CC,MAA9C,CAAqDC,KAArD,CAA2D,IAA3D,EAJsD,CAKtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,UAAtC,EAAkDC,MAAlD,CAAyDC,KAAzD,CAA+D,KAA/D;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,UAAtC,EAAkDC,MAAlD,CAAyDC,KAAzD,CAA+D,IAA/D,EAPsD,CAQtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,iBAAvC,EAA0DC,MAA1D,CAAiEC,KAAjE,CAAuE,KAAvE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,iBAAvC,EAA0DC,MAA1D,CAAiEC,KAAjE,CAAuE,IAAvE,EAVsD,CAWtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,aAAvC,EAAsDC,MAAtD,CAA6DC,KAA7D,CAAmE,IAAnE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,aAAvC,EAAsDC,MAAtD,CAA6DC,KAA7D,CAAmE,IAAnE,EAbsD,CActD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,SAAtC,EAAiDC,MAAjD,CAAwDC,KAAxD,CAA8D,IAA9D;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,SAAtC,EAAiDC,MAAjD,CAAwDC,KAAxD,CAA8D,IAA9D,EAhBsD,CAiBtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,aAAtC,EAAqDC,MAArD,CAA4DC,KAA5D,CAAkE,KAAlE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,IAAhC,EAAsC,aAAtC,EAAqDC,MAArD,CAA4DC,KAA5D,CAAkE,IAAlE,EAnBsD,CAoBtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,oBAAvC,EAA6DC,MAA7D,CAAoEC,KAApE,CAA0E,KAA1E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,oBAAvC,EAA6DC,MAA7D,CAAoEC,KAApE,CAA0E,IAA1E,EAtBsD,CAuBtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,gBAAvC,EAAyDC,MAAzD,CAAgEC,KAAhE,CAAsE,IAAtE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,gBAAvC,EAAyDC,MAAzD,CAAgEC,KAAhE,CAAsE,IAAtE,EAzBsD,CA0BtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,sBAAvC,EAA+DC,MAA/D,CAAsEC,KAAtE,CAA4E,EAA5E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,sBAAvC,EAA+DC,MAA/D,CAAsEC,KAAtE,CAA4E,IAA5E,EA5BsD,CA6BtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,aAAvC,EAAsDC,MAAtD,CAA6DC,KAA7D,CAAmE,UAAnE,EA9BsD,CA+BtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,YAAvC,EAAqDC,MAArD,CAA4DC,KAA5D,CAAkE,UAAlE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,OAAvC,EAAgDC,MAAhD,CAAuDC,KAAvD,CAA6D,gBAA7D,EAjCsD,CAkCtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,SAAvC,EAAkDC,MAAlD,CAAyDC,KAAzD,CAA+D,gBAA/D;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,KAAK,IAAjC,EAAuC,cAAvC,EAAuDC,MAAvD,CAA8DC,KAA9D,CAAoE,UAApE,EApCsD,CAqCtD;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,EAAJ,GAAS,IAArC,EAA2C,MAA3C,EAAmDC,MAAnD,CAA0DC,KAA1D,CAAgE,WAAhE;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAAI,EAAJ,GAAS,IAArC,EAA2C,kBAA3C,EAA+DC,MAA/D,CAAsEC,KAAtE,CAA4E,WAA5E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B,QAA3B,EAAqCC,MAArC,CAA4CC,KAA5C,CAAkD,UAAlD;AACA,GAzCC,CAAF;AA2CAN,EAAAA,EAAE,CAAC,4CAAD,EAA+C,YAAM;AACtD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,EAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAIC,IAAJ,EAAf,EAA2BE,MAA3B,CAAkCC,KAAlC,CAAwC,UAAxC;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,2CAAD,EAA8C,YAAM;AACrD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACA,QAAM2B,UAAU,GAAG;AAAEC,MAAAA,OAAO,EAAE;AAAA,eAAMnB,IAAI,CAACC,GAAL,EAAN;AAAA;AAAX,KAAnB;AACAH,IAAAA,OAAO,CAACC,MAAR,CAAemB,UAAf,EAA2BhB,MAA3B,CAAkCC,KAAlC,CAAwC,UAAxC;AACA,GAJC,CAAF;AAMAN,EAAAA,EAAE,CAAC,qDAAD,EAAwD,YAAM;AAC/D,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;;AACA,QAAM6B,OAAO,GAAG,SAAVA,OAAU;AAAA,aAAMtB,OAAO,CAACC,MAAR,CAAe,cAAf,CAAN;AAAA,KAAhB;;AACAqB,IAAAA,OAAO,CAAClB,MAAR,CAAemB,KAAf,CAAqB,iEAArB;AACA,GAJC,CAAF;AAMAxB,EAAAA,EAAE,CAAC,uFAAD,EAA0F,YAAM;AACjG,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAAEqB,MAAAA,KAAK,EAAE,CAAC,aAAD;AAAT,KAA3B,EAAuDpB,MAAvD,CAA8DC,KAA9D,CAAoE,EAApE;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,kDAAD,EAAqD,YAAM;AAC5D,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD4D,CAG5D;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAC1BsB,MAAAA,MAD0B,wBACU;AAAA,YAA3BtB,GAA2B,QAA3BA,GAA2B;AAAA,YAAtBuB,IAAsB,QAAtBA,IAAsB;AAAA,YAAhBC,IAAgB,QAAhBA,IAAgB;AAAA,YAAVC,MAAU,QAAVA,MAAU;AACnC,eAAOA,MAAP;AACA;AAHyB,KAA3B,EAKCxB,MALD,CAKQC,KALR,CAKc,IALd,EAJ4D,CAW5D;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAC1BsB,MAAAA,MAD0B,yBACU;AAAA,YAA3BtB,GAA2B,SAA3BA,GAA2B;AAAA,YAAtBuB,IAAsB,SAAtBA,IAAsB;AAAA,YAAhBC,IAAgB,SAAhBA,IAAgB;AAAA,YAAVC,MAAU,SAAVA,MAAU;AACnC;AACA;AAHyB,KAA3B,EAKCxB,MALD,CAKQC,KALR,CAKc,UALd;AAMA,GAlBC,CAAF;AAoBAN,EAAAA,EAAE,CAAC,4BAAD,EAA+B,YAAM;AACtC,QAAIN,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,KAAK,EAAL,GAAU,IAAhD,EAAsDC,MAAtD,CAA6DC,KAA7D,CAAmE,WAAnE;AACA,QAAIZ,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,KAAK,IAA3C,EAAiDC,MAAjD,CAAwDC,KAAxD,CAA8D,gBAA9D;AACA,GAHC,CAAF;AAKAN,EAAAA,EAAE,CAAC,+BAAD,EAAkC,YAAM;AACzC;AACA,QAAIN,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,EAAzB,EAAqCC,MAArC,CAA4CC,KAA5C,CAAkD,UAAlD;AACA,QAAIZ,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,EAAzB,EAAqC,aAArC,EAAoD;AAAEG,MAAAA,MAAM,EAAE;AAAV,KAApD,EAAsEF,MAAtE,CAA6EC,KAA7E,CAAmF,aAAnF,EAHyC,CAKzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACA,QAAMwB,MAAM,GAAG;AACdC,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,IAAI,EAAE;AADC,OAAD,CADO;AAIdxB,MAAAA,MAAM,EAAE;AAJM,KAAf;AAMA,QAAId,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,IAAI,GAAJ,GAAU,EAAV,GAAe,EAAf,GAAoB,EAApB,GAAyB,IAA/D,EAAqE0B,MAArE,EAA6EzB,MAA7E,CAAoFC,KAApF,CAA0F,KAA1F;AACA,QAAIZ,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,IAAI,GAAJ,GAAU,EAAV,GAAe,EAAf,GAAoB,EAApB,GAAyB,IAA/D,EAAqE0B,MAArE,EAA6E;AAAEvB,MAAAA,MAAM,EAAE;AAAV,KAA7E,EAA+FF,MAA/F,CAAsGC,KAAtG,CAA4G,KAA5G;AACA,GAzBC,CAAF;AA2BAN,EAAAA,EAAE,CAAC,yGAAD,EAA4G,YAAM;AACnH;AACA,QAAM+B,KAAK,GAAG;AACbnB,MAAAA,SAAS,EAAE,CAAC;AACXqB,QAAAA,MAAM,EAAE,CADG;AAEXD,QAAAA,IAAI,EAAE;AAFK,OAAD,CADE;AAKbrB,MAAAA,OAAO,EAAE;AALI,KAAd;AAOA,QAAIjB,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,KAAK,IAA3C,EAAiD2B,KAAjD,EAAwD1B,MAAxD,CAA+DC,KAA/D,CAAqE,KAArE;AACA,QAAIZ,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,KAAa,KAAK,IAA3C,EAAiD2B,KAAjD,EAAwD;AAAExB,MAAAA,MAAM,EAAE;AAAV,KAAxD,EAA0EF,MAA1E,CAAiFC,KAAjF,CAAuF,KAAvF;AACA,GAXC,CAAF;AAaAN,EAAAA,EAAE,CAAC,iGAAD,EAAoG,YAAM;AAC3G,QAAIN,OAAJ,CAAY,KAAZ,EAAmBQ,MAAnB,CAA0BC,IAAI,CAACC,GAAL,KAAa,KAAK,IAA5C,EAAkDC,MAAlD,CAAyDC,KAAzD,CAA+D,gBAA/D;AACA,GAFC,CAAF;AAIAN,EAAAA,EAAE,CAAC,uCAAD,EAA0C,YAAM;AACjD,KAAC;AAAA,aAAMN,OAAO,CAACoB,SAAR,EAAN;AAAA,KAAD,EAA4BT,MAA5B,CAAmCmB,KAAnC,CAAyC,uBAAzC;AACA,GAFC,CAAF;AAIAxB,EAAAA,EAAE,CAAC,sFAAD,EAAyF,YAAM;AAChGN,IAAAA,OAAO,CAACoB,SAAR,CAAkBjB,OAAlB;AACA,QAAMqC,YAAY,GAAGrC,OAAO,CAAC,MAAD,CAAP,CAAgBsC,MAArC;AACAtC,IAAAA,OAAO,CAAC,MAAD,CAAP,CAAgBsC,MAAhB,GAAyB;AACxBf,MAAAA,IAAI,EAAE,iBADkB;AAExBb,MAAAA,MAAM,EAAE;AAFgB,KAAzB;AAKA,QAAIb,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,EAAzB,EAAqC;AACpCK,MAAAA,KAAK,EAAE,CAAC;AACPuB,QAAAA,IAAI,EAAE;AADC,OAAD,CAD6B;AAIpC;AACAxB,MAAAA,MAAM,EAAE;AAL4B,KAArC,EAMGH,MANH,CAMUC,KANV,CAMgB,eANhB;AAQA,QAAIZ,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyBC,IAAI,CAACC,GAAL,EAAzB,EAAqC;AACpCK,MAAAA,KAAK,EAAE,CAAC;AACPuB,QAAAA,IAAI,EAAE;AADC,OAAD,CAD6B;AAIpC;AACAxB,MAAAA,MAAM,EAAE;AAL4B,KAArC,EAMG;AACFD,MAAAA,MAAM,EAAE;AADN,KANH,EAQGF,MARH,CAQUC,KARV,CAQgB,cARhB;AAUAT,IAAAA,OAAO,CAAC,MAAD,CAAP,CAAgBsC,MAAhB,GAAyBD,YAAzB;AACA,GA3BC,CAAF;AA6BAlC,EAAAA,EAAE,CAAC,iDAAD,EAAoD,YAAM;AAC3D,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD2D,CAE3D;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAf,EAAqB,SAArB,EAAgC;AAC/BkC,MAAAA,mBAAmB,EAAE,IADU;AAE/BhC,MAAAA,GAAG,EAAE,CAF0B;AAG/BiC,MAAAA,KAAK,EAAE;AAHwB,KAAhC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,CAFoB,CAJrB;AAQA,GAXC,CAAF;AAaAN,EAAAA,EAAE,CAAC,iDAAD,EAAoD,YAAM;AAC3D,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD2D,CAE3D;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAf,EAAqB,SAArB,EAAgC;AAC/BkC,MAAAA,mBAAmB,EAAE,IADU;AAE/BhC,MAAAA,GAAG,EAAE;AAF0B,KAAhC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,IADoB,EAEpB,GAFoB,CAHrB;AAOA,GAVC,CAAF;AAYAN,EAAAA,EAAE,CAAC,oEAAD,EAAuE,YAAM;AAC9E,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD8E,CAE9E;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,CAFgC;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,CAFoB,CAJrB,EAH8E,CAW9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,CAFgC;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,IAFoB,CAJrB,EAZ8E,CAoB9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,CAFoB,CAJrB,EArB8E,CA6B9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,CAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB;AACA,QAHoB,CAJrB,EA9B8E,CAuC9E;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCG,MAAAA,MAAM,EAAE,IAH6B;AAIrC8B,MAAAA,KAAK,EAAE;AAJ8B,KAAtC,EAKGhC,MALH,CAKUiC,IALV,CAKehC,KALf,CAKqB,CACpB,KADoB,EAEpB,CAFoB,CALrB,EAzC8E,CAkD9E;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,IAFoB,CAJrB,EApD8E,CA4D9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,CAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,OAAO,CAFa,CAJrB,EA7D8E,CAqE9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,IAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,IAFoB,CAJrB;AAQA,GA9EC,CAAF;AAgFAN,EAAAA,EAAE,CAAC,oEAAD,EAAuE,YAAM;AAC9E,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD8E,CAE9E;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE;AAFgC,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,IADoB,EAEpB,MAAM,CAFc,CAHrB,EAH8E,CAU9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,MAAM;AAF0B,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,KADoB,EAEpB,IAFoB,CAHrB,EAX8E,CAkB9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,OAAO;AAFyB,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,IADoB,EAEpB,CAFoB,CAHrB,EAnB8E,CA0B9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,OAAO,IAAP,GAAc;AAFkB,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,KADoB,EAEpB;AACA,OAHoB,CAHrB,EA3B8E,CAmC9E;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCG,MAAAA,MAAM,EAAE;AAH6B,KAAtC,EAIGF,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,CAFoB,CAJrB,EArC8E,CA6C9E;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK;AAF2B,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,KADoB,EAEpB,GAFoB,CAHrB,EA/C8E,CAsD9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY;AAFoB,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,KADoB,EAEpB,MAAM,CAFc,CAHrB,EAvD8E,CA8D9E;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY;AAFoB,KAAtC,EAGGC,MAHH,CAGUiC,IAHV,CAGehC,KAHf,CAGqB,CACpB,IADoB,EAEpB,IAFoB,CAHrB;AAOA,GAtEC,CAAF;AAwEAN,EAAAA,EAAE,CAAC,qFAAD,EAAwF,YAAM;AAC/F,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB,CAD+F,CAG/F;AACA;AACA;;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B;AACzBO,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE,QADH;AAEP6B,QAAAA,OAAO,EAAE;AAFF,OAAD,CADkB;AAKzB/B,MAAAA,MAAM,EAAE,MALiB;AAMzB6B,MAAAA,KAAK,EAAE;AANkB,KAA1B,EAOG;AACFD,MAAAA,mBAAmB,EAAE,IADnB;AAEFhC,MAAAA,GAAG,EAAE,CAAC,GAAD,GAAO;AAFV,KAPH,EAUGC,MAVH,CAUUiC,IAVV,CAUehC,KAVf,CAUqB,CACpB,IADoB,EAEpB,MAAM,IAAN,GAAa,CAFO,CAVrB,EAN+F,CAqB/F;AACA;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B;AACzBO,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE,QADH;AAEP6B,QAAAA,OAAO,EAAE,KAAK;AAFP,OAAD,CADkB;AAKzB/B,MAAAA,MAAM,EAAE,MALiB;AAMzB6B,MAAAA,KAAK,EAAE;AANkB,KAA1B,EAOG;AACFD,MAAAA,mBAAmB,EAAE,IADnB;AAEFhC,MAAAA,GAAG,EAAE,IAAI;AAFP,KAPH,EAUGC,MAVH,CAUUiC,IAVV,CAUehC,KAVf,CAUqB,CACpB,EADoB,EAEpB,KAAK,IAAL,GAAY,CAFQ,CAVrB,EAxB+F,CAuC/F;AACA;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B;AACzBO,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE,QADH;AAEP6B,QAAAA,OAAO,EAAE;AAFF,OAAD,CADkB;AAKzB/B,MAAAA,MAAM,EAAE,MALiB;AAMzB6B,MAAAA,KAAK,EAAE;AANkB,KAA1B,EAOG;AACFD,MAAAA,mBAAmB,EAAE,IADnB;AAEFhC,MAAAA,GAAG,EAAE,KAAK;AAFR,KAPH,EAUGC,MAVH,CAUUiC,IAVV,CAUehC,KAVf,CAUqB,CACpB,EADoB,EAEpB,KAAK,IAFe,CAVrB,EA1C+F,CAyD/F;AACA;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B;AACzBO,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE,QADH;AAEP6B,QAAAA,OAAO,EAAE;AAFF,OAAD,CADkB;AAKzB/B,MAAAA,MAAM,EAAE,MALiB;AAMzB6B,MAAAA,KAAK,EAAE;AANkB,KAA1B,EAOG;AACFD,MAAAA,mBAAmB,EAAE,IADnB;AAEFhC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,KAAK;AAFpB,KAPH,EAUGC,MAVH,CAUUiC,IAVV,CAUehC,KAVf,CAUqB,CACpB,IADoB,EAEpB,KAAK,IAFe,CAVrB,EA5D+F,CA2E/F;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,CAFgC;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,IAFoB,CAJrB,EA5E+F,CAoF/F;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,CAFoB,CAJrB,EArF+F,CA6F/F;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,CAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,IAFoB,CAJrB,EA/F+F,CAuG/F;AACA;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCG,MAAAA,MAAM,EAAE,IAH6B;AAIrC8B,MAAAA,KAAK,EAAE;AAJ8B,KAAtC,EAKGhC,MALH,CAKUiC,IALV,CAKehC,KALf,CAKqB,CACpB,KADoB,EAEpB,CAFoB,CALrB,EA1G+F,CAmH/F;AACA;AACA;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAF2B;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,IAFoB,CAJrB,EAtH+F,CA8H/F;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,CAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,KADoB,EAEpB,OAAO,CAFa,CAJrB,EA/H+F,CAuI/F;;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,KAAK,IAApB,EAA0B,UAA1B,EAAsC;AACrCkC,MAAAA,mBAAmB,EAAE,IADgB;AAErChC,MAAAA,GAAG,EAAE,KAAK,IAAL,GAAY,IAFoB;AAGrCiC,MAAAA,KAAK,EAAE;AAH8B,KAAtC,EAIGhC,MAJH,CAIUiC,IAJV,CAIehC,KAJf,CAIqB,CACpB,IADoB,EAEpB,IAFoB,CAJrB;AAQA,GAhJC,CAAF;AAkJAN,EAAAA,EAAE,CAAC,6CAAD,EAAgD,YAAM;AACvD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,EAAf,EAA2B;AAC1BI,MAAAA,MAAM,EAAE,MADkB;AAE1BC,MAAAA,KAAK,EAAE,CAAC;AACPP,QAAAA,MADO,kBACA0B,IADA,EACMC,MADN,SAC4B;AAAA,cAAZnB,QAAY,SAAZA,QAAY;AAClC,iBAAOA,QAAQ,CAAC,QAAD,EAAW,CAAX,CAAf;AACA;AAHM,OAAD;AAFmB,KAA3B,EAOGL,MAPH,CAOUC,KAPV,CAOgB,aAPhB;AAQA,GAVC,CAAF;AAYAN,EAAAA,EAAE,CAAC,yCAAD,EAA4C,YAAM;AACnD,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,EAAkB;AAAE8C,MAAAA,QAAQ,EAAE;AAAZ,KAAlB,CAAhB,CADmD,CAEnD;;AACAvC,IAAAA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkB,OAAlB,EAA2B;AAAEE,MAAAA,GAAG,EAAE;AAAP,KAA3B,EAAuCC,MAAvC,CAA8CC,KAA9C,CAAoD,UAApD;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAf,EAAqB,OAArB,EAA8B;AAAEE,MAAAA,GAAG,EAAE;AAAP,KAA9B,EAA0CC,MAA1C,CAAiDC,KAAjD,CAAuD,aAAvD;AACA,GALC,CAAF;AAOAN,EAAAA,EAAE,CAAC,yDAAD,EAA4D,YAAM;AACnE,QAAMiB,IAAI,GAAGwB,MAAM,CAACxB,IAApB;AACAwB,IAAAA,MAAM,CAACxB,IAAP,GAAcF,SAAd;AACA,QAAMd,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAf,EAAqB,OAArB,EAA8B;AAAEE,MAAAA,GAAG,EAAE;AAAP,KAA9B,EAA0CC,MAA1C,CAAiDC,KAAjD,CAAuD,aAAvD;AACAmC,IAAAA,MAAM,CAACxB,IAAP,GAAcA,IAAd;AACA,GANC,CAAF;AAQAjB,EAAAA,EAAE,CAAC,2CAAD,EAA8C,YAAM;AACrD,QAAIN,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyB,CAAzB,EAA4B;AAC3BM,MAAAA,MAAM,EAAE,MADmB;AAE3BC,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE;AADH,OAAD;AAFoB,KAA5B,EAKG;AAAEN,MAAAA,GAAG,EAAE;AAAP,KALH,EAKeC,MALf,CAKsBC,KALtB,CAK4B,eAL5B;AAMA,GAPC,CAAF;AASAN,EAAAA,EAAE,CAAC,wEAAD,EAA2E,YAAM;AAClF,QAAIN,OAAJ,CAAY,IAAZ,EAAkBQ,MAAlB,CAAyB,CAAzB,EAA4B;AAC3BM,MAAAA,MAAM,EAAE,MADmB;AAE3BC,MAAAA,KAAK,EAAE,CAAC;AACPC,QAAAA,QAAQ,EAAE;AADH,OAAD;AAFoB,KAA5B,EAKG;AAAEN,MAAAA,GAAG,EAAE,CAAP;AAAUG,MAAAA,MAAM,EAAE;AAAlB,KALH,EAK6BF,MAL7B,CAKoCC,KALpC,CAK0C,cAL1C;AAMA,GAPC,CAAF;AASAN,EAAAA,EAAE,CAAC,iEAAD,EAAoE,YAAM;AAC3E,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAgD,IAAAA,MAAM,CAAC;AAAA,aAAMzC,OAAO,CAACC,MAAR,CAAeC,IAAI,CAACC,GAAL,KAAa,IAA5B,EAAkC;AAC9CI,QAAAA,MAAM,EAAE,MADsC;AAE9CC,QAAAA,KAAK,EAAE,CAAC,EAAD;AAFuC,OAAlC,CAAN;AAAA,KAAD,CAAN,CAGIkC,EAHJ,CAGOnB,KAHP,CAGa,wDAHb;AAIA,GANC,CAAF;AAQAxB,EAAAA,EAAE,CAAC,2BAAD,EAA8B,YAAM;AACrCN,IAAAA,OAAO,CAACkD,gBAAR,GAA2BvC,MAA3B,CAAkCC,KAAlC,CAAwC,IAAxC;AACAZ,IAAAA,OAAO,CAACmD,gBAAR,CAAyB;AACxBhB,MAAAA,MAAM,EAAE;AADgB,KAAzB;AAGAnC,IAAAA,OAAO,CAACkD,gBAAR,GAA2BvC,MAA3B,CAAkCC,KAAlC,CAAwC,IAAxC,EALqC,CAMrC;;AACCZ,IAAAA,OAAO,CAACmD,gBAAR,CAAyB;AACxBhB,MAAAA,MAAM,EAAE;AADgB,KAAzB,EAPoC,CAUrC;;AACAnC,IAAAA,OAAO,CAACI,gBAAR,CAAyB,IAAzB;AACA,GAZC,CAAF;AAcAE,EAAAA,EAAE,CAAC,iCAAD,EAAoC,YAAM;AAC3C,QAAMC,OAAO,GAAG,IAAIP,OAAJ,CAAY,IAAZ,CAAhB;AACAO,IAAAA,OAAO,CAACC,MAAR,CAAe,MAAM,IAArB,EAA2B,SAA3B,EAAsC;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAAtC,EAAkEhC,MAAlE,CAAyEC,KAAzE,CAA+E,IAA/E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAI,IAAnB,EAAyB,SAAzB,EAAoC;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAApC,EAAgEhC,MAAhE,CAAuEC,KAAvE,CAA6E,IAA7E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,MAAM,IAArB,EAA2B,SAA3B,EAAsC;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAAtC,EAAkEhC,MAAlE,CAAyEC,KAAzE,CAA+E,IAA/E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAI,IAAnB,EAAyB,SAAzB,EAAoC;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAApC,EAAgEhC,MAAhE,CAAuEC,KAAvE,CAA6E,IAA7E;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,MAAM,EAAN,GAAW,IAA1B,EAAgC,SAAhC,EAA2C;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAA3C,EAAuEhC,MAAvE,CAA8EC,KAA9E,CAAoF,IAApF;AACAL,IAAAA,OAAO,CAACC,MAAR,CAAe,IAAI,EAAJ,GAAS,IAAxB,EAA8B,SAA9B,EAAyC;AAAEE,MAAAA,GAAG,EAAE,CAAP;AAAUiC,MAAAA,KAAK,EAAE;AAAjB,KAAzC,EAAqEhC,MAArE,CAA4EC,KAA5E,CAAkF,IAAlF;AACA,GARC,CAAF;AASA,CAhpBO,CAAR;AAkpBAP,QAAQ,CAAC,eAAD,EAAkB,YAAM;AAC/BC,EAAAA,EAAE,CAAC,8BAAD,EAAiC,YAAM;AACxCL,IAAAA,aAAa,CAAC;AACbiB,MAAAA,SAAS,EAAE;AADE,KAAD,CAAb,CAEGP,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACbc,MAAAA,KAAK,EAAE;AADM,KAAD,CAAb,CAEGJ,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACbgB,MAAAA,OAAO,EAAE;AADI,KAAD,CAAb,CAEGN,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACbgB,MAAAA,OAAO,EAAE,CAAC,MAAD;AADI,KAAD,CAAb,CAEGN,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACba,MAAAA,MAAM,EAAE;AADK,KAAD,CAAb,CAEGH,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACba,MAAAA,MAAM,EAAE,CAAC,MAAD;AADK,KAAD,CAAb,CAEGH,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACb8B,MAAAA,KAAK,EAAE,CAAC,KAAD;AADM,KAAD,CAAb,CAEGpB,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAX,IAAAA,aAAa,CAAC;AACbY,MAAAA,MAAM,EAAE,IADK;AAEb8B,MAAAA,KAAK,EAAE,OAFM;AAGbjC,MAAAA,GAAG,EAAE,CAHQ;AAIbgC,MAAAA,mBAAmB,EAAE;AAJR,KAAD,CAAb,CAKG/B,MALH,CAKUC,KALV,CAKgB,KALhB;AAMAX,IAAAA,aAAa,CAAC,OAAD,CAAb,CAAuBU,MAAvB,CAA8BC,KAA9B,CAAoC,KAApC;AACA,GA7BC,CAAF;AA8BA,CA/BO,CAAR","sourcesContent":["import TimeAgo, { isStyleObject } from '../source/TimeAgo'\r\nimport { getLocaleData } from '../source/LocaleDataStore'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en'\r\n\r\n// Just so this function code is covered.\r\nTimeAgo.setDefaultLocale('en')\r\n\r\ndescribe(`javascript-time-ago`, () => {\r\n\tit('should default to \"round-minute\" style', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.equal('1 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})\r\n\r\ndescribe('isStyleObject', () => {\r\n\tit('should detect a style object', () => {\r\n\t\tisStyleObject({\r\n\t\t\tgradation: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tsteps: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tunits: ['now']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor',\r\n\t\t\tnow: 0,\r\n\t\t\tgetTimeToNextUpdate: true\r\n\t\t}).should.equal(false)\r\n\t\tisStyleObject('round').should.equal(false)\r\n\t})\r\n})"],"file":"TimeAgo.test.js"}
|
|
1
|
+
{"version":3,"sources":["../source/TimeAgo.test.js"],"names":["TimeAgo","getLocaleData","english","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","throw","units","custom","time","date","locale","style2","style","unit","factor","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"mappings":"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","sourcesContent":["import TimeAgo from './TimeAgo'\r\nimport { getLocaleData } from '../source/LocaleDataStore'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en'\r\n\r\n// Just so this function code is covered.\r\nTimeAgo.setDefaultLocale('en')\r\n\r\ndescribe(`javascript-time-ago`, () => {\r\n\tit('should default to \"round-minute\" style', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.equal('1 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})"],"file":"TimeAgo.test.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
|
+
|
|
3
|
+
export default function isStyleObject(object) {
|
|
4
|
+
return isObject(object) && (Array.isArray(object.steps) || // `gradation` property is deprecated: it has been renamed to `steps`.
|
|
5
|
+
Array.isArray(object.gradation) || // `flavour` property is deprecated: it has been renamed to `labels`.
|
|
6
|
+
Array.isArray(object.flavour) || typeof object.flavour === 'string' || Array.isArray(object.labels) || typeof object.labels === 'string' || // `units` property is deprecated.
|
|
7
|
+
Array.isArray(object.units) || // `custom` property is deprecated.
|
|
8
|
+
typeof object.custom === 'function');
|
|
9
|
+
}
|
|
10
|
+
var OBJECT_CONSTRUCTOR = {}.constructor;
|
|
11
|
+
|
|
12
|
+
function isObject(object) {
|
|
13
|
+
return _typeof(object) !== undefined && object !== null && object.constructor === OBJECT_CONSTRUCTOR;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=isStyleObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../source/isStyleObject.js"],"names":["isStyleObject","object","isObject","Array","isArray","steps","gradation","flavour","labels","units","custom","OBJECT_CONSTRUCTOR","constructor","undefined"],"mappings":";;AAAA,eAAe,SAASA,aAAT,CAAuBC,MAAvB,EAA+B;AAC7C,SAAOC,QAAQ,CAACD,MAAD,CAAR,KACNE,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACI,KAArB,KACA;AACAF,EAAAA,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACK,SAArB,CAFA,IAGA;AACAH,EAAAA,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACM,OAArB,CAJA,IAKA,OAAON,MAAM,CAACM,OAAd,KAA0B,QAL1B,IAMAJ,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACO,MAArB,CANA,IAOA,OAAOP,MAAM,CAACO,MAAd,KAAyB,QAPzB,IAQA;AACAL,EAAAA,KAAK,CAACC,OAAN,CAAcH,MAAM,CAACQ,KAArB,CATA,IAUA;AACA,SAAOR,MAAM,CAACS,MAAd,KAAyB,UAZnB,CAAP;AAcA;AAED,IAAMC,kBAAkB,GAAG,GAAGC,WAA9B;;AACA,SAASV,QAAT,CAAkBD,MAAlB,EAA0B;AACzB,SAAO,QAAOA,MAAP,MAAkBY,SAAlB,IAA+BZ,MAAM,KAAK,IAA1C,IAAkDA,MAAM,CAACW,WAAP,KAAuBD,kBAAhF;AACA","sourcesContent":["export default function isStyleObject(object) {\r\n\treturn isObject(object) && (\r\n\t\tArray.isArray(object.steps) ||\r\n\t\t// `gradation` property is deprecated: it has been renamed to `steps`.\r\n\t\tArray.isArray(object.gradation) ||\r\n\t\t// `flavour` property is deprecated: it has been renamed to `labels`.\r\n\t\tArray.isArray(object.flavour) ||\r\n\t\ttypeof object.flavour === 'string' ||\r\n\t\tArray.isArray(object.labels) ||\r\n\t\ttypeof object.labels === 'string' ||\r\n\t\t// `units` property is deprecated.\r\n\t\tArray.isArray(object.units) ||\r\n\t\t// `custom` property is deprecated.\r\n\t\ttypeof object.custom === 'function'\r\n\t)\r\n}\r\n\r\nconst OBJECT_CONSTRUCTOR = {}.constructor\r\nfunction isObject(object) {\r\n\treturn typeof object !== undefined && object !== null && object.constructor === OBJECT_CONSTRUCTOR\r\n}"],"file":"isStyleObject.js"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import isStyleObject from './isStyleObject';
|
|
2
|
+
describe('isStyleObject', function () {
|
|
3
|
+
it('should detect a style object', function () {
|
|
4
|
+
isStyleObject({
|
|
5
|
+
gradation: []
|
|
6
|
+
}).should.equal(true);
|
|
7
|
+
isStyleObject({
|
|
8
|
+
steps: []
|
|
9
|
+
}).should.equal(true);
|
|
10
|
+
isStyleObject({
|
|
11
|
+
flavour: 'long'
|
|
12
|
+
}).should.equal(true);
|
|
13
|
+
isStyleObject({
|
|
14
|
+
flavour: ['long']
|
|
15
|
+
}).should.equal(true);
|
|
16
|
+
isStyleObject({
|
|
17
|
+
labels: 'long'
|
|
18
|
+
}).should.equal(true);
|
|
19
|
+
isStyleObject({
|
|
20
|
+
labels: ['long']
|
|
21
|
+
}).should.equal(true);
|
|
22
|
+
isStyleObject({
|
|
23
|
+
units: ['now']
|
|
24
|
+
}).should.equal(true);
|
|
25
|
+
isStyleObject({
|
|
26
|
+
future: true,
|
|
27
|
+
round: 'floor',
|
|
28
|
+
now: 0,
|
|
29
|
+
getTimeToNextUpdate: true
|
|
30
|
+
}).should.equal(false);
|
|
31
|
+
isStyleObject('round').should.equal(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=isStyleObject.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../source/isStyleObject.test.js"],"names":["isStyleObject","describe","it","gradation","should","equal","steps","flavour","labels","units","future","round","now","getTimeToNextUpdate"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,iBAA1B;AAEAC,QAAQ,CAAC,eAAD,EAAkB,YAAM;AAC/BC,EAAAA,EAAE,CAAC,8BAAD,EAAiC,YAAM;AACxCF,IAAAA,aAAa,CAAC;AACbG,MAAAA,SAAS,EAAE;AADE,KAAD,CAAb,CAEGC,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbM,MAAAA,KAAK,EAAE;AADM,KAAD,CAAb,CAEGF,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbO,MAAAA,OAAO,EAAE;AADI,KAAD,CAAb,CAEGH,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbO,MAAAA,OAAO,EAAE,CAAC,MAAD;AADI,KAAD,CAAb,CAEGH,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbQ,MAAAA,MAAM,EAAE;AADK,KAAD,CAAb,CAEGJ,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbQ,MAAAA,MAAM,EAAE,CAAC,MAAD;AADK,KAAD,CAAb,CAEGJ,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbS,MAAAA,KAAK,EAAE,CAAC,KAAD;AADM,KAAD,CAAb,CAEGL,MAFH,CAEUC,KAFV,CAEgB,IAFhB;AAGAL,IAAAA,aAAa,CAAC;AACbU,MAAAA,MAAM,EAAE,IADK;AAEbC,MAAAA,KAAK,EAAE,OAFM;AAGbC,MAAAA,GAAG,EAAE,CAHQ;AAIbC,MAAAA,mBAAmB,EAAE;AAJR,KAAD,CAAb,CAKGT,MALH,CAKUC,KALV,CAKgB,KALhB;AAMAL,IAAAA,aAAa,CAAC,OAAD,CAAb,CAAuBI,MAAvB,CAA8BC,KAA9B,CAAoC,KAApC;AACA,GA7BC,CAAF;AA8BA,CA/BO,CAAR","sourcesContent":["import isStyleObject from './isStyleObject'\r\n\r\ndescribe('isStyleObject', () => {\r\n\tit('should detect a style object', () => {\r\n\t\tisStyleObject({\r\n\t\t\tgradation: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tsteps: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tunits: ['now']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor',\r\n\t\t\tnow: 0,\r\n\t\t\tgetTimeToNextUpdate: true\r\n\t\t}).should.equal(false)\r\n\t\tisStyleObject('round').should.equal(false)\r\n\t})\r\n})"],"file":"isStyleObject.test.js"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "javascript-time-ago",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.13",
|
|
4
4
|
"description": "Localized relative date/time formatting",
|
|
5
5
|
"main": "index.commonjs.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"relative-time-format": "^1.0.
|
|
9
|
+
"relative-time-format": "^1.0.7"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@babel/cli": "^7.2.3",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"intl": "^1.2.4",
|
|
30
30
|
"intl-locales-supported": "^1.0.0",
|
|
31
31
|
"mkdirp": "^0.5.1",
|
|
32
|
-
"mocha": "^8.
|
|
32
|
+
"mocha": "^8.4.0",
|
|
33
33
|
"npm-run-all": "^1.4.0",
|
|
34
|
-
"nyc": "^
|
|
34
|
+
"nyc": "^15.1.0",
|
|
35
35
|
"prop-types": "^15.6.0",
|
|
36
36
|
"rimraf": "^2.5.0",
|
|
37
37
|
"rollup": "^2.29.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"repository": {
|
|
60
60
|
"type": "git",
|
|
61
|
-
"url": "git+https://
|
|
61
|
+
"url": "git+https://gitlab.com/catamphetamine/javascript-time-ago.git"
|
|
62
62
|
},
|
|
63
63
|
"keywords": [
|
|
64
64
|
"time",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"author": "catamphetamine <purecatamphetamine@gmail.com>",
|
|
70
70
|
"license": "MIT",
|
|
71
71
|
"bugs": {
|
|
72
|
-
"url": "https://
|
|
72
|
+
"url": "https://gitlab.com/catamphetamine/javascript-time-ago/issues"
|
|
73
73
|
},
|
|
74
|
-
"homepage": "https://
|
|
74
|
+
"homepage": "https://gitlab.com/catamphetamine/javascript-time-ago#readme"
|
|
75
75
|
}
|
package/rollup.config.js
CHANGED
package/locale/en-PH/index.js
DELETED
package/locale/en-PH.json
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"locale": "en-PH",
|
|
3
|
-
"long": {
|
|
4
|
-
"year": {
|
|
5
|
-
"previous": "last year",
|
|
6
|
-
"current": "this year",
|
|
7
|
-
"next": "next year",
|
|
8
|
-
"past": {
|
|
9
|
-
"one": "{0} year ago",
|
|
10
|
-
"other": "{0} years ago"
|
|
11
|
-
},
|
|
12
|
-
"future": {
|
|
13
|
-
"one": "in {0} year",
|
|
14
|
-
"other": "in {0} years"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
"quarter": {
|
|
18
|
-
"previous": "last quarter",
|
|
19
|
-
"current": "this quarter",
|
|
20
|
-
"next": "next quarter",
|
|
21
|
-
"past": {
|
|
22
|
-
"one": "{0} quarter ago",
|
|
23
|
-
"other": "{0} quarters ago"
|
|
24
|
-
},
|
|
25
|
-
"future": {
|
|
26
|
-
"one": "in {0} quarter",
|
|
27
|
-
"other": "in {0} quarters"
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
"month": {
|
|
31
|
-
"previous": "last month",
|
|
32
|
-
"current": "this month",
|
|
33
|
-
"next": "next month",
|
|
34
|
-
"past": {
|
|
35
|
-
"one": "{0} month ago",
|
|
36
|
-
"other": "{0} months ago"
|
|
37
|
-
},
|
|
38
|
-
"future": {
|
|
39
|
-
"one": "in {0} month",
|
|
40
|
-
"other": "in {0} months"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"week": {
|
|
44
|
-
"previous": "last week",
|
|
45
|
-
"current": "this week",
|
|
46
|
-
"next": "next week",
|
|
47
|
-
"past": {
|
|
48
|
-
"one": "{0} week ago",
|
|
49
|
-
"other": "{0} weeks ago"
|
|
50
|
-
},
|
|
51
|
-
"future": {
|
|
52
|
-
"one": "in {0} week",
|
|
53
|
-
"other": "in {0} weeks"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"day": {
|
|
57
|
-
"previous": "yesterday",
|
|
58
|
-
"current": "today",
|
|
59
|
-
"next": "tomorrow",
|
|
60
|
-
"past": {
|
|
61
|
-
"one": "{0} day ago",
|
|
62
|
-
"other": "{0} days ago"
|
|
63
|
-
},
|
|
64
|
-
"future": {
|
|
65
|
-
"one": "in {0} day",
|
|
66
|
-
"other": "in {0} days"
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
"hour": {
|
|
70
|
-
"current": "this hour",
|
|
71
|
-
"past": {
|
|
72
|
-
"one": "{0} hour ago",
|
|
73
|
-
"other": "{0} hours ago"
|
|
74
|
-
},
|
|
75
|
-
"future": {
|
|
76
|
-
"one": "in {0} hour",
|
|
77
|
-
"other": "in {0} hours"
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
"minute": {
|
|
81
|
-
"current": "this minute",
|
|
82
|
-
"past": {
|
|
83
|
-
"one": "{0} minute ago",
|
|
84
|
-
"other": "{0} minutes ago"
|
|
85
|
-
},
|
|
86
|
-
"future": {
|
|
87
|
-
"one": "in {0} minute",
|
|
88
|
-
"other": "in {0} minutes"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"second": {
|
|
92
|
-
"current": "now",
|
|
93
|
-
"past": {
|
|
94
|
-
"one": "{0} second ago",
|
|
95
|
-
"other": "{0} seconds ago"
|
|
96
|
-
},
|
|
97
|
-
"future": {
|
|
98
|
-
"one": "in {0} second",
|
|
99
|
-
"other": "in {0} seconds"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
"short": {
|
|
104
|
-
"year": {
|
|
105
|
-
"previous": "last yr.",
|
|
106
|
-
"current": "this yr.",
|
|
107
|
-
"next": "next yr.",
|
|
108
|
-
"past": "{0} yr ago",
|
|
109
|
-
"future": "in {0} yr"
|
|
110
|
-
},
|
|
111
|
-
"quarter": {
|
|
112
|
-
"previous": "last qtr.",
|
|
113
|
-
"current": "this qtr.",
|
|
114
|
-
"next": "next qtr.",
|
|
115
|
-
"past": "{0} qtr ago",
|
|
116
|
-
"future": "in {0} qtr"
|
|
117
|
-
},
|
|
118
|
-
"month": {
|
|
119
|
-
"previous": "last mo.",
|
|
120
|
-
"current": "this mo.",
|
|
121
|
-
"next": "next mo.",
|
|
122
|
-
"past": "{0} mo ago",
|
|
123
|
-
"future": "in {0} mo"
|
|
124
|
-
},
|
|
125
|
-
"week": {
|
|
126
|
-
"previous": "last wk.",
|
|
127
|
-
"current": "this wk.",
|
|
128
|
-
"next": "next wk.",
|
|
129
|
-
"past": "{0} wk ago",
|
|
130
|
-
"future": "in {0} wk"
|
|
131
|
-
},
|
|
132
|
-
"day": {
|
|
133
|
-
"previous": "yesterday",
|
|
134
|
-
"current": "today",
|
|
135
|
-
"next": "tomorrow",
|
|
136
|
-
"past": {
|
|
137
|
-
"one": "{0} day ago",
|
|
138
|
-
"other": "{0} days ago"
|
|
139
|
-
},
|
|
140
|
-
"future": {
|
|
141
|
-
"one": "in {0} day",
|
|
142
|
-
"other": "in {0} days"
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"hour": {
|
|
146
|
-
"current": "this hour",
|
|
147
|
-
"past": "{0} hr ago",
|
|
148
|
-
"future": "in {0} hr"
|
|
149
|
-
},
|
|
150
|
-
"minute": {
|
|
151
|
-
"current": "this minute",
|
|
152
|
-
"past": "{0} min ago",
|
|
153
|
-
"future": "in {0} min"
|
|
154
|
-
},
|
|
155
|
-
"second": {
|
|
156
|
-
"current": "now",
|
|
157
|
-
"past": "{0} sec ago",
|
|
158
|
-
"future": "in {0} sec"
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
"narrow": {
|
|
162
|
-
"year": {
|
|
163
|
-
"previous": "last yr.",
|
|
164
|
-
"current": "this yr.",
|
|
165
|
-
"next": "next yr.",
|
|
166
|
-
"past": "{0} yr ago",
|
|
167
|
-
"future": "in {0} yr"
|
|
168
|
-
},
|
|
169
|
-
"quarter": {
|
|
170
|
-
"previous": "last qtr.",
|
|
171
|
-
"current": "this qtr.",
|
|
172
|
-
"next": "next qtr.",
|
|
173
|
-
"past": "{0} qtr ago",
|
|
174
|
-
"future": "in {0} qtr"
|
|
175
|
-
},
|
|
176
|
-
"month": {
|
|
177
|
-
"previous": "last mo.",
|
|
178
|
-
"current": "this mo.",
|
|
179
|
-
"next": "next mo.",
|
|
180
|
-
"past": "{0} mo ago",
|
|
181
|
-
"future": "in {0} mo"
|
|
182
|
-
},
|
|
183
|
-
"week": {
|
|
184
|
-
"previous": "last wk.",
|
|
185
|
-
"current": "this wk.",
|
|
186
|
-
"next": "next wk.",
|
|
187
|
-
"past": "{0} wk ago",
|
|
188
|
-
"future": "in {0} wk"
|
|
189
|
-
},
|
|
190
|
-
"day": {
|
|
191
|
-
"previous": "yesterday",
|
|
192
|
-
"current": "today",
|
|
193
|
-
"next": "tomorrow",
|
|
194
|
-
"past": {
|
|
195
|
-
"one": "{0} day ago",
|
|
196
|
-
"other": "{0} days ago"
|
|
197
|
-
},
|
|
198
|
-
"future": {
|
|
199
|
-
"one": "in {0} day",
|
|
200
|
-
"other": "in {0} days"
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
"hour": {
|
|
204
|
-
"current": "this hour",
|
|
205
|
-
"past": "{0} hr ago",
|
|
206
|
-
"future": "in {0} hr"
|
|
207
|
-
},
|
|
208
|
-
"minute": {
|
|
209
|
-
"current": "this minute",
|
|
210
|
-
"past": "{0} min ago",
|
|
211
|
-
"future": "in {0} min"
|
|
212
|
-
},
|
|
213
|
-
"second": {
|
|
214
|
-
"current": "now",
|
|
215
|
-
"past": "{0} sec ago",
|
|
216
|
-
"future": "in {0} sec"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|