javascript-time-ago 2.3.7 → 2.3.11
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/README.md +22 -12
- package/bin/generate-locale-messages.js +5 -1
- 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 +2 -2
- package/commonjs/TimeAgo.js.map +1 -1
- package/commonjs/TimeAgo.test.js +6 -6
- package/commonjs/TimeAgo.test.js.map +1 -1
- package/index.d.ts +130 -0
- package/load-all-locales.js +34 -0
- package/locale/af/index.js +3 -1
- package/locale/af.json +18 -18
- package/locale/am/index.js +3 -1
- package/locale/ar/index.js +3 -1
- package/locale/ar-AE/index.js +3 -1
- package/locale/as/index.js +3 -1
- package/locale/as.json +2 -2
- package/locale/ast/index.js +3 -1
- package/locale/az/index.js +3 -1
- package/locale/be/index.js +3 -1
- package/locale/be.json +16 -16
- package/locale/bg/index.js +3 -1
- package/locale/bg.json +1 -1
- package/locale/bn/index.js +3 -1
- package/locale/br/index.js +3 -1
- package/locale/br.json +16 -28
- package/locale/bs/index.js +3 -1
- package/locale/bs-Cyrl/index.js +3 -1
- package/locale/bs-Cyrl.json +105 -140
- package/locale/ca/index.js +3 -1
- package/locale/ca.json +4 -4
- package/locale/ccp/index.js +3 -1
- package/locale/ce/index.js +3 -1
- package/locale/ceb/index.js +3 -0
- package/locale/ceb.json +159 -0
- package/locale/chr/index.js +3 -1
- package/locale/chr.json +18 -18
- package/locale/cs/index.js +3 -1
- package/locale/cy/index.js +3 -1
- package/locale/cy.json +85 -30
- package/locale/da/index.js +3 -1
- package/locale/da.json +30 -30
- package/locale/de/index.js +3 -1
- package/locale/dsb/index.js +3 -1
- package/locale/dz/index.js +3 -1
- package/locale/ee/index.js +3 -1
- package/locale/el/index.js +3 -1
- package/locale/el.json +19 -9
- package/locale/en/index.js +3 -1
- package/locale/en-001/index.js +3 -1
- package/locale/en-001.json +18 -18
- package/locale/en-150/index.js +3 -1
- package/locale/en-150.json +18 -18
- package/locale/en-AG/index.js +3 -1
- package/locale/en-AG.json +18 -18
- package/locale/en-AI/index.js +3 -1
- package/locale/en-AI.json +18 -18
- package/locale/en-AT/index.js +3 -1
- package/locale/en-AT.json +18 -18
- package/locale/en-AU/index.js +3 -1
- package/locale/en-AU.json +18 -18
- package/locale/en-BB/index.js +3 -1
- package/locale/en-BB.json +18 -18
- package/locale/en-BE/index.js +3 -1
- package/locale/en-BE.json +18 -18
- package/locale/en-BM/index.js +3 -1
- package/locale/en-BM.json +18 -18
- package/locale/en-BS/index.js +3 -1
- package/locale/en-BS.json +18 -18
- package/locale/en-BW/index.js +3 -1
- package/locale/en-BW.json +18 -18
- package/locale/en-BZ/index.js +3 -1
- package/locale/en-BZ.json +18 -18
- package/locale/en-CA/index.js +3 -1
- package/locale/en-CA.json +18 -18
- package/locale/en-CC/index.js +3 -1
- package/locale/en-CC.json +18 -18
- package/locale/en-CH/index.js +3 -1
- package/locale/en-CH.json +18 -18
- package/locale/en-CK/index.js +3 -1
- package/locale/en-CK.json +18 -18
- package/locale/en-CM/index.js +3 -1
- package/locale/en-CM.json +18 -18
- package/locale/en-CX/index.js +3 -1
- package/locale/en-CX.json +18 -18
- package/locale/en-CY/index.js +3 -1
- package/locale/en-CY.json +18 -18
- package/locale/en-DE/index.js +3 -1
- package/locale/en-DE.json +18 -18
- package/locale/en-DG/index.js +3 -1
- package/locale/en-DG.json +18 -18
- package/locale/en-DK/index.js +3 -1
- package/locale/en-DK.json +18 -18
- package/locale/en-DM/index.js +3 -1
- package/locale/en-DM.json +18 -18
- package/locale/en-ER/index.js +3 -1
- package/locale/en-ER.json +18 -18
- package/locale/en-FI/index.js +3 -1
- package/locale/en-FI.json +18 -18
- package/locale/en-FJ/index.js +3 -1
- package/locale/en-FJ.json +18 -18
- package/locale/en-FK/index.js +3 -1
- package/locale/en-FK.json +18 -18
- package/locale/en-FM/index.js +3 -1
- package/locale/en-FM.json +18 -18
- package/locale/en-GB/index.js +3 -1
- package/locale/en-GB.json +18 -18
- package/locale/en-GD/index.js +3 -1
- package/locale/en-GD.json +18 -18
- package/locale/en-GG/index.js +3 -1
- package/locale/en-GG.json +18 -18
- package/locale/en-GH/index.js +3 -1
- package/locale/en-GH.json +18 -18
- package/locale/en-GI/index.js +3 -1
- package/locale/en-GI.json +18 -18
- package/locale/en-GM/index.js +3 -1
- package/locale/en-GM.json +18 -18
- package/locale/en-GY/index.js +3 -1
- package/locale/en-GY.json +18 -18
- package/locale/en-HK/index.js +3 -1
- package/locale/en-HK.json +18 -18
- package/locale/en-IE/index.js +3 -1
- package/locale/en-IE.json +18 -18
- package/locale/en-IL/index.js +3 -1
- package/locale/en-IL.json +18 -18
- package/locale/en-IM/index.js +3 -1
- package/locale/en-IM.json +18 -18
- package/locale/en-IN/index.js +3 -1
- package/locale/en-IN.json +18 -18
- package/locale/en-IO/index.js +3 -1
- package/locale/en-IO.json +18 -18
- package/locale/en-JE/index.js +3 -1
- package/locale/en-JE.json +18 -18
- package/locale/en-JM/index.js +3 -1
- package/locale/en-JM.json +18 -18
- package/locale/en-KE/index.js +3 -1
- package/locale/en-KE.json +18 -18
- package/locale/en-KI/index.js +3 -1
- package/locale/en-KI.json +18 -18
- package/locale/en-KN/index.js +3 -1
- package/locale/en-KN.json +18 -18
- package/locale/en-KY/index.js +3 -1
- package/locale/en-KY.json +18 -18
- package/locale/en-LC/index.js +3 -1
- package/locale/en-LC.json +18 -18
- package/locale/en-LR/index.js +3 -1
- package/locale/en-LR.json +18 -18
- package/locale/en-LS/index.js +3 -1
- package/locale/en-LS.json +18 -18
- package/locale/en-MG/index.js +3 -1
- package/locale/en-MG.json +18 -18
- package/locale/en-MO/index.js +3 -1
- package/locale/en-MO.json +18 -18
- package/locale/en-MS/index.js +3 -1
- package/locale/en-MS.json +18 -18
- package/locale/en-MT/index.js +3 -1
- package/locale/en-MT.json +18 -18
- package/locale/en-MU/index.js +3 -1
- package/locale/en-MU.json +18 -18
- package/locale/en-MW/index.js +3 -1
- package/locale/en-MW.json +18 -18
- package/locale/en-MY/index.js +3 -1
- package/locale/en-MY.json +18 -18
- package/locale/en-NA/index.js +3 -1
- package/locale/en-NA.json +18 -18
- package/locale/en-NF/index.js +3 -1
- package/locale/en-NF.json +18 -18
- package/locale/en-NG/index.js +3 -1
- package/locale/en-NG.json +18 -18
- package/locale/en-NL/index.js +3 -1
- package/locale/en-NL.json +18 -18
- package/locale/en-NR/index.js +3 -1
- package/locale/en-NR.json +18 -18
- package/locale/en-NU/index.js +3 -1
- package/locale/en-NU.json +18 -18
- package/locale/en-NZ/index.js +3 -1
- package/locale/en-NZ.json +18 -18
- package/locale/en-PG/index.js +3 -1
- package/locale/en-PG.json +18 -18
- package/locale/en-PH/index.js +3 -1
- package/locale/en-PH.json +18 -18
- package/locale/en-PK/index.js +3 -1
- package/locale/en-PK.json +18 -18
- package/locale/en-PN/index.js +3 -1
- package/locale/en-PN.json +18 -18
- package/locale/en-PW/index.js +3 -1
- package/locale/en-PW.json +18 -18
- package/locale/en-RW/index.js +3 -1
- package/locale/en-RW.json +18 -18
- package/locale/en-SB/index.js +3 -1
- package/locale/en-SB.json +18 -18
- package/locale/en-SC/index.js +3 -1
- package/locale/en-SC.json +18 -18
- package/locale/en-SD/index.js +3 -1
- package/locale/en-SD.json +18 -18
- package/locale/en-SE/index.js +3 -1
- package/locale/en-SE.json +18 -18
- package/locale/en-SG/index.js +3 -1
- package/locale/en-SG.json +3 -3
- package/locale/en-SH/index.js +3 -1
- package/locale/en-SH.json +18 -18
- package/locale/en-SI/index.js +3 -1
- package/locale/en-SI.json +18 -18
- package/locale/en-SL/index.js +3 -1
- package/locale/en-SL.json +18 -18
- package/locale/en-SS/index.js +3 -1
- package/locale/en-SS.json +18 -18
- package/locale/en-SX/index.js +3 -1
- package/locale/en-SX.json +18 -18
- package/locale/en-SZ/index.js +3 -1
- package/locale/en-SZ.json +18 -18
- package/locale/en-TC/index.js +3 -1
- package/locale/en-TC.json +18 -18
- package/locale/en-TK/index.js +3 -1
- package/locale/en-TK.json +18 -18
- package/locale/en-TO/index.js +3 -1
- package/locale/en-TO.json +18 -18
- package/locale/en-TT/index.js +3 -1
- package/locale/en-TT.json +18 -18
- package/locale/en-TV/index.js +3 -1
- package/locale/en-TV.json +18 -18
- package/locale/en-TZ/index.js +3 -1
- package/locale/en-TZ.json +18 -18
- package/locale/en-UG/index.js +3 -1
- package/locale/en-UG.json +18 -18
- package/locale/en-VC/index.js +3 -1
- package/locale/en-VC.json +18 -18
- package/locale/en-VG/index.js +3 -1
- package/locale/en-VG.json +18 -18
- package/locale/en-VU/index.js +3 -1
- package/locale/en-VU.json +18 -18
- package/locale/en-WS/index.js +3 -1
- package/locale/en-WS.json +18 -18
- package/locale/en-ZA/index.js +3 -1
- package/locale/en-ZA.json +18 -18
- package/locale/en-ZM/index.js +3 -1
- package/locale/en-ZM.json +18 -18
- package/locale/en-ZW/index.js +3 -1
- package/locale/en-ZW.json +18 -18
- package/locale/en.json +27 -17
- package/locale/es/index.js +3 -1
- package/locale/es-419/index.js +3 -0
- package/locale/es-419.json +225 -0
- package/locale/es-AR/index.js +3 -1
- 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/index.js +3 -1
- 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/index.js +3 -1
- package/locale/es-PY.json +6 -6
- package/locale/es-SV/index.js +3 -1
- package/locale/es-SV.json +6 -6
- package/locale/es-US/index.js +3 -1
- package/locale/es-US.json +6 -6
- 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 +16 -6
- package/locale/et/index.js +3 -1
- package/locale/et.json +18 -18
- package/locale/eu/index.js +3 -1
- package/locale/fa/index.js +3 -1
- package/locale/fa.json +2 -2
- package/locale/ff-Adlm/index.js +3 -0
- package/locale/ff-Adlm.json +279 -0
- package/locale/fi/index.js +3 -1
- package/locale/fil/index.js +3 -1
- package/locale/fo/index.js +3 -1
- package/locale/fo.json +12 -12
- package/locale/fr/index.js +3 -1
- package/locale/fr-CA/index.js +3 -1
- package/locale/fr-CA.json +4 -4
- package/locale/fur/index.js +3 -1
- package/locale/fy/index.js +3 -1
- package/locale/ga/index.js +3 -1
- package/locale/ga.json +3 -5
- package/locale/gd/index.js +3 -1
- package/locale/gd.json +4 -4
- package/locale/gl/index.js +3 -1
- package/locale/gl.json +14 -14
- package/locale/gu/index.js +3 -1
- package/locale/ha/index.js +3 -0
- package/locale/ha.json +222 -0
- package/locale/he/index.js +3 -1
- package/locale/hi/index.js +3 -1
- package/locale/hi.json +9 -15
- package/locale/hr/index.js +3 -1
- package/locale/hsb/index.js +3 -1
- package/locale/hu/index.js +3 -1
- package/locale/hy/index.js +3 -1
- package/locale/hy.json +3 -3
- package/locale/ia/index.js +3 -1
- package/locale/ia.json +132 -48
- package/locale/id/index.js +3 -1
- package/locale/id.json +18 -18
- package/locale/ig/index.js +3 -0
- package/locale/ig.json +159 -0
- package/locale/is/index.js +3 -1
- package/locale/it/index.js +3 -1
- package/locale/it.json +8 -14
- package/locale/ja/index.js +3 -1
- package/locale/ja.json +9 -9
- package/locale/jgo/index.js +3 -1
- package/locale/jv/index.js +3 -1
- package/locale/jv.json +69 -69
- package/locale/ka/index.js +3 -1
- package/locale/kea/index.js +3 -1
- package/locale/kea.json +21 -21
- package/locale/kk/index.js +3 -1
- package/locale/kl/index.js +3 -1
- package/locale/km/index.js +3 -1
- package/locale/kn/index.js +3 -1
- package/locale/ko/index.js +3 -1
- package/locale/ko.json +11 -0
- package/locale/kok/index.js +3 -1
- package/locale/kok.json +1 -1
- package/locale/ksh/index.js +3 -1
- package/locale/ku/index.js +3 -1
- package/locale/ku.json +44 -26
- package/locale/ky/index.js +3 -1
- package/locale/lb/index.js +3 -1
- package/locale/lkt/index.js +3 -1
- package/locale/lo/index.js +3 -1
- package/locale/lo.json +1 -1
- package/locale/lt/index.js +3 -1
- package/locale/lv/index.js +3 -1
- package/locale/lv.json +18 -18
- package/locale/mk/index.js +3 -1
- package/locale/mk.json +6 -6
- package/locale/ml/index.js +3 -1
- package/locale/mn/index.js +3 -1
- package/locale/mn.json +6 -6
- package/locale/mr/index.js +3 -1
- package/locale/ms/index.js +3 -1
- package/locale/ms.json +7 -7
- package/locale/mt/index.js +3 -1
- package/locale/my/index.js +3 -1
- package/locale/mzn/index.js +3 -1
- package/locale/nb/index.js +3 -1
- package/locale/ne/index.js +3 -1
- package/locale/ne.json +4 -4
- package/locale/nl/index.js +3 -1
- package/locale/nn/index.js +3 -1
- package/locale/nn.json +26 -26
- package/locale/no/index.js +3 -0
- package/locale/no.json +201 -0
- package/locale/or/index.js +3 -1
- package/locale/or.json +5 -5
- package/locale/pa/index.js +3 -1
- package/locale/pcm/index.js +3 -0
- package/locale/pcm.json +159 -0
- package/locale/pl/index.js +3 -1
- package/locale/pl.json +14 -14
- package/locale/ps/index.js +3 -1
- package/locale/ps-PK/index.js +3 -0
- package/locale/ps-PK.json +240 -0
- package/locale/ps.json +157 -94
- package/locale/pt/index.js +3 -1
- package/locale/pt-AO/index.js +3 -1
- package/locale/pt-AO.json +4 -1
- package/locale/pt-CH/index.js +3 -1
- package/locale/pt-CH.json +4 -1
- package/locale/pt-CV/index.js +3 -1
- package/locale/pt-CV.json +4 -1
- package/locale/pt-GQ/index.js +3 -1
- package/locale/pt-GQ.json +4 -1
- package/locale/pt-GW/index.js +3 -1
- package/locale/pt-GW.json +4 -1
- package/locale/pt-LU/index.js +3 -1
- package/locale/pt-LU.json +4 -1
- package/locale/pt-MO/index.js +3 -1
- package/locale/pt-MO.json +4 -1
- package/locale/pt-MZ/index.js +3 -1
- package/locale/pt-MZ.json +4 -1
- package/locale/pt-PT/index.js +3 -1
- package/locale/pt-PT.json +4 -1
- package/locale/pt-ST/index.js +3 -1
- package/locale/pt-ST.json +4 -1
- package/locale/pt-TL/index.js +3 -1
- package/locale/pt-TL.json +4 -1
- package/locale/pt.json +2 -5
- package/locale/qu/index.js +3 -1
- package/locale/rm/index.js +3 -0
- package/locale/rm.json +165 -0
- package/locale/ro/index.js +3 -1
- package/locale/ro.json +1 -1
- package/locale/ru/index.js +3 -1
- package/locale/ru.json +36 -39
- package/locale/sah/index.js +3 -1
- package/locale/sd/index.js +3 -1
- package/locale/sd.json +6 -6
- package/locale/se/index.js +3 -1
- package/locale/se-FI/index.js +3 -1
- package/locale/si/index.js +3 -1
- package/locale/sk/index.js +3 -1
- package/locale/sl/index.js +3 -1
- package/locale/so/index.js +3 -1
- package/locale/so.json +137 -83
- package/locale/sq/index.js +3 -1
- package/locale/sr/index.js +3 -1
- package/locale/sr-Cyrl-BA/index.js +3 -0
- package/locale/sr-Cyrl-BA.json +214 -0
- package/locale/sr-Latn/index.js +3 -1
- package/locale/sr-Latn-BA/index.js +3 -0
- package/locale/sr-Latn-BA.json +214 -0
- package/locale/su/index.js +3 -0
- package/locale/su.json +159 -0
- package/locale/sv/index.js +3 -1
- package/locale/sw/index.js +3 -1
- package/locale/ta/index.js +3 -1
- package/locale/te/index.js +3 -1
- package/locale/te.json +6 -6
- package/locale/tg/index.js +3 -0
- package/locale/tg.json +159 -0
- package/locale/th/index.js +3 -1
- package/locale/ti/index.js +3 -1
- package/locale/ti.json +2 -2
- package/locale/tk/index.js +3 -1
- package/locale/to/index.js +3 -1
- package/locale/to.json +6 -6
- package/locale/tr/index.js +3 -1
- package/locale/tr.json +12 -12
- package/locale/tt/index.js +3 -0
- package/locale/tt.json +159 -0
- package/locale/ug/index.js +3 -1
- package/locale/uk/index.js +3 -1
- package/locale/uk.json +9 -9
- package/locale/ur/index.js +3 -1
- package/locale/ur-IN/index.js +3 -1
- package/locale/ur-IN.json +4 -7
- package/locale/ur.json +8 -11
- package/locale/uz/index.js +3 -1
- package/locale/uz-Cyrl/index.js +3 -1
- package/locale/uz.json +6 -6
- package/locale/vi/index.js +3 -1
- package/locale/vi.json +6 -6
- package/locale/wae/index.js +3 -1
- package/locale/wo/index.js +3 -0
- package/locale/wo.json +159 -0
- package/locale/yi/index.js +3 -1
- 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/yue/index.js +3 -1
- package/locale/yue-Hans/index.js +3 -1
- package/locale/zh/index.js +3 -1
- package/locale/zh-Hans-HK/index.js +3 -1
- package/locale/zh-Hans-MO/index.js +3 -1
- package/locale/zh-Hans-SG/index.js +3 -1
- package/locale/zh-Hant/index.js +3 -1
- package/locale/zh-Hant-HK/index.js +3 -1
- package/locale/zh-Hant-MO/index.js +3 -1
- package/locale/zu/index.js +3 -1
- package/locale-more-styles/hi/mini.json +2 -8
- package/locale-more-styles/ru/mini.json +2 -8
- package/modules/TimeAgo.js +2 -2
- package/modules/TimeAgo.js.map +1 -1
- package/modules/TimeAgo.test.js +6 -6
- package/modules/TimeAgo.test.js.map +1 -1
- package/package.json +5 -5
- package/index.d.ts.test +0 -47
|
@@ -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;AACAoC,IAAAA,MAAM,CAAC,YAAM;AACZhD,MAAAA,OAAO,CAACmD,gBAAR,CAAyB;AACxBhB,QAAAA,MAAM,EAAE;AADgB,OAAzB;AAGA,KAJK,CAAN,CAIGc,EAJH,CAIMnB,KAJN,CAIY,sDAJZ;AAKA9B,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\texpect(() => {\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","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":"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","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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "javascript-time-ago",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.11",
|
|
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.6"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@babel/cli": "^7.2.3",
|
|
@@ -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/index.d.ts.test
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export type StyleName =
|
|
2
|
-
'round' |
|
|
3
|
-
'round-minute' |
|
|
4
|
-
'mini' |
|
|
5
|
-
'mini-now' |
|
|
6
|
-
'mini-minute' |
|
|
7
|
-
'mini-minute-now' |
|
|
8
|
-
'twitter' |
|
|
9
|
-
'twitter-now' |
|
|
10
|
-
'twitter-minute' |
|
|
11
|
-
'twitter-minute-now' |
|
|
12
|
-
'twitter-first-minute'
|
|
13
|
-
|
|
14
|
-
export interface Step {
|
|
15
|
-
formatAs?: string,
|
|
16
|
-
minTime?: number,
|
|
17
|
-
format?(date: typeof Date | number, locale: string, {
|
|
18
|
-
formatAs(unit: string, value: number): string,
|
|
19
|
-
now: number,
|
|
20
|
-
future: boolean
|
|
21
|
-
}): string?,
|
|
22
|
-
getTimeToNextUpdate?(date: typeof Date | number, {
|
|
23
|
-
getTimeToNextUpdateForUnit(unit: string): number,
|
|
24
|
-
now: number,
|
|
25
|
-
future: boolean
|
|
26
|
-
}): number
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface Style {
|
|
30
|
-
steps: Step[],
|
|
31
|
-
labels: string | string[]
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export type Rounding = 'round' | 'floor'
|
|
35
|
-
|
|
36
|
-
interface FormatOptions {
|
|
37
|
-
now?: number,
|
|
38
|
-
future?: boolean,
|
|
39
|
-
getTimeToNextUpdate?: boolean,
|
|
40
|
-
round?: Rounding
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export default class TimeAgo {
|
|
44
|
-
constructor(locale: string | string[]);
|
|
45
|
-
format(date: typeof Date | number, style?: StyleName | Style, options?: FormatOptions): string | [string, number?];
|
|
46
|
-
format(date: typeof Date | number, options: FormatOptions): string | [string, number?];
|
|
47
|
-
}
|