From 1556f86b692a30931e92e93d2f392cb663b48ffc Mon Sep 17 00:00:00 2001 From: zhanglin Date: Thu, 30 May 2024 17:41:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.js | 40 +- node_modules/.package-lock.json | 8 + node_modules/moment/CHANGELOG.md | 996 + node_modules/moment/LICENSE | 22 + node_modules/moment/README.md | 55 + node_modules/moment/dist/locale/af.js | 71 + node_modules/moment/dist/locale/ar-dz.js | 156 + node_modules/moment/dist/locale/ar-kw.js | 55 + node_modules/moment/dist/locale/ar-ly.js | 171 + node_modules/moment/dist/locale/ar-ma.js | 56 + node_modules/moment/dist/locale/ar-ps.js | 112 + node_modules/moment/dist/locale/ar-sa.js | 105 + node_modules/moment/dist/locale/ar-tn.js | 55 + node_modules/moment/dist/locale/ar.js | 189 + node_modules/moment/dist/locale/az.js | 102 + node_modules/moment/dist/locale/be.js | 142 + node_modules/moment/dist/locale/bg.js | 87 + node_modules/moment/dist/locale/bm.js | 52 + node_modules/moment/dist/locale/bn-bd.js | 129 + node_modules/moment/dist/locale/bn.js | 119 + node_modules/moment/dist/locale/bo.js | 124 + node_modules/moment/dist/locale/br.js | 168 + node_modules/moment/dist/locale/bs.js | 160 + node_modules/moment/dist/locale/ca.js | 100 + node_modules/moment/dist/locale/cs.js | 181 + node_modules/moment/dist/locale/cv.js | 63 + node_modules/moment/dist/locale/cy.js | 98 + node_modules/moment/dist/locale/da.js | 53 + node_modules/moment/dist/locale/de-at.js | 79 + node_modules/moment/dist/locale/de-ch.js | 78 + node_modules/moment/dist/locale/de.js | 78 + node_modules/moment/dist/locale/dv.js | 90 + node_modules/moment/dist/locale/el.js | 106 + node_modules/moment/dist/locale/en-au.js | 68 + node_modules/moment/dist/locale/en-ca.js | 64 + node_modules/moment/dist/locale/en-gb.js | 68 + node_modules/moment/dist/locale/en-ie.js | 68 + node_modules/moment/dist/locale/en-il.js | 64 + node_modules/moment/dist/locale/en-in.js | 68 + node_modules/moment/dist/locale/en-nz.js | 68 + node_modules/moment/dist/locale/en-sg.js | 68 + node_modules/moment/dist/locale/eo.js | 68 + node_modules/moment/dist/locale/es-do.js | 108 + node_modules/moment/dist/locale/es-mx.js | 110 + node_modules/moment/dist/locale/es-us.js | 110 + node_modules/moment/dist/locale/es.js | 110 + node_modules/moment/dist/locale/et.js | 78 + node_modules/moment/dist/locale/eu.js | 65 + node_modules/moment/dist/locale/fa.js | 113 + node_modules/moment/dist/locale/fi.js | 124 + node_modules/moment/dist/locale/fil.js | 58 + node_modules/moment/dist/locale/fo.js | 57 + node_modules/moment/dist/locale/fr-ca.js | 70 + node_modules/moment/dist/locale/fr-ch.js | 74 + node_modules/moment/dist/locale/fr.js | 108 + node_modules/moment/dist/locale/fy.js | 75 + node_modules/moment/dist/locale/ga.js | 95 + node_modules/moment/dist/locale/gd.js | 95 + node_modules/moment/dist/locale/gl.js | 75 + node_modules/moment/dist/locale/gom-deva.js | 126 + node_modules/moment/dist/locale/gom-latn.js | 124 + node_modules/moment/dist/locale/gu.js | 122 + node_modules/moment/dist/locale/he.js | 94 + node_modules/moment/dist/locale/hi.js | 168 + node_modules/moment/dist/locale/hr.js | 156 + node_modules/moment/dist/locale/hu.js | 118 + node_modules/moment/dist/locale/hy-am.js | 94 + node_modules/moment/dist/locale/id.js | 76 + node_modules/moment/dist/locale/is.js | 140 + node_modules/moment/dist/locale/it-ch.js | 64 + node_modules/moment/dist/locale/it.js | 106 + node_modules/moment/dist/locale/ja.js | 148 + node_modules/moment/dist/locale/jv.js | 76 + node_modules/moment/dist/locale/ka.js | 92 + node_modules/moment/dist/locale/kk.js | 82 + node_modules/moment/dist/locale/km.js | 103 + node_modules/moment/dist/locale/kn.js | 124 + node_modules/moment/dist/locale/ko.js | 75 + node_modules/moment/dist/locale/ku-kmr.js | 121 + node_modules/moment/dist/locale/ku.js | 118 + node_modules/moment/dist/locale/ky.js | 84 + node_modules/moment/dist/locale/lb.js | 137 + node_modules/moment/dist/locale/lo.js | 66 + node_modules/moment/dist/locale/lt.js | 125 + node_modules/moment/dist/locale/lv.js | 94 + node_modules/moment/dist/locale/me.js | 117 + node_modules/moment/dist/locale/mi.js | 60 + node_modules/moment/dist/locale/mk.js | 85 + node_modules/moment/dist/locale/ml.js | 82 + node_modules/moment/dist/locale/mn.js | 100 + node_modules/moment/dist/locale/mr.js | 203 + node_modules/moment/dist/locale/ms-my.js | 76 + node_modules/moment/dist/locale/ms.js | 75 + node_modules/moment/dist/locale/mt.js | 56 + node_modules/moment/dist/locale/my.js | 91 + node_modules/moment/dist/locale/nb.js | 60 + node_modules/moment/dist/locale/ne.js | 121 + node_modules/moment/dist/locale/nl-be.js | 102 + node_modules/moment/dist/locale/nl.js | 104 + node_modules/moment/dist/locale/nn.js | 59 + node_modules/moment/dist/locale/oc-lnc.js | 85 + node_modules/moment/dist/locale/pa-in.js | 122 + node_modules/moment/dist/locale/pl.js | 140 + node_modules/moment/dist/locale/pt-br.js | 58 + node_modules/moment/dist/locale/pt.js | 63 + node_modules/moment/dist/locale/ro.js | 76 + node_modules/moment/dist/locale/ru.js | 213 + node_modules/moment/dist/locale/sd.js | 81 + node_modules/moment/dist/locale/se.js | 57 + node_modules/moment/dist/locale/si.js | 69 + node_modules/moment/dist/locale/sk.js | 145 + node_modules/moment/dist/locale/sl.js | 171 + node_modules/moment/dist/locale/sq.js | 65 + node_modules/moment/dist/locale/sr-cyrl.js | 127 + node_modules/moment/dist/locale/sr.js | 129 + node_modules/moment/dist/locale/ss.js | 84 + node_modules/moment/dist/locale/sv.js | 68 + node_modules/moment/dist/locale/sw.js | 55 + node_modules/moment/dist/locale/ta.js | 131 + node_modules/moment/dist/locale/te.js | 88 + node_modules/moment/dist/locale/tet.js | 68 + node_modules/moment/dist/locale/tg.js | 117 + node_modules/moment/dist/locale/th.js | 65 + node_modules/moment/dist/locale/tk.js | 91 + node_modules/moment/dist/locale/tl-ph.js | 57 + node_modules/moment/dist/locale/tlh.js | 124 + node_modules/moment/dist/locale/tr.js | 106 + node_modules/moment/dist/locale/tzl.js | 89 + node_modules/moment/dist/locale/tzm-latn.js | 54 + node_modules/moment/dist/locale/tzm.js | 54 + node_modules/moment/dist/locale/ug-cn.js | 111 + node_modules/moment/dist/locale/uk.js | 167 + node_modules/moment/dist/locale/ur.js | 82 + node_modules/moment/dist/locale/uz-latn.js | 54 + node_modules/moment/dist/locale/uz.js | 51 + node_modules/moment/dist/locale/vi.js | 80 + node_modules/moment/dist/locale/x-pseudo.js | 73 + node_modules/moment/dist/locale/yo.js | 53 + node_modules/moment/dist/locale/zh-cn.js | 120 + node_modules/moment/dist/locale/zh-hk.js | 101 + node_modules/moment/dist/locale/zh-mo.js | 100 + node_modules/moment/dist/locale/zh-tw.js | 99 + node_modules/moment/dist/moment.js | 5680 ++++ node_modules/moment/ender.js | 1 + node_modules/moment/locale/af.js | 82 + node_modules/moment/locale/ar-dz.js | 167 + node_modules/moment/locale/ar-kw.js | 66 + node_modules/moment/locale/ar-ly.js | 182 + node_modules/moment/locale/ar-ma.js | 67 + node_modules/moment/locale/ar-ps.js | 123 + node_modules/moment/locale/ar-sa.js | 116 + node_modules/moment/locale/ar-tn.js | 66 + node_modules/moment/locale/ar.js | 200 + node_modules/moment/locale/az.js | 113 + node_modules/moment/locale/be.js | 153 + node_modules/moment/locale/bg.js | 98 + node_modules/moment/locale/bm.js | 62 + node_modules/moment/locale/bn-bd.js | 140 + node_modules/moment/locale/bn.js | 130 + node_modules/moment/locale/bo.js | 135 + node_modules/moment/locale/br.js | 179 + node_modules/moment/locale/bs.js | 171 + node_modules/moment/locale/ca.js | 111 + node_modules/moment/locale/cs.js | 192 + node_modules/moment/locale/cv.js | 74 + node_modules/moment/locale/cy.js | 109 + node_modules/moment/locale/da.js | 64 + node_modules/moment/locale/de-at.js | 90 + node_modules/moment/locale/de-ch.js | 87 + node_modules/moment/locale/de.js | 89 + node_modules/moment/locale/dv.js | 101 + node_modules/moment/locale/el.js | 117 + node_modules/moment/locale/en-au.js | 79 + node_modules/moment/locale/en-ca.js | 75 + node_modules/moment/locale/en-gb.js | 79 + node_modules/moment/locale/en-ie.js | 79 + node_modules/moment/locale/en-il.js | 75 + node_modules/moment/locale/en-in.js | 79 + node_modules/moment/locale/en-nz.js | 79 + node_modules/moment/locale/en-sg.js | 79 + node_modules/moment/locale/eo.js | 79 + node_modules/moment/locale/es-do.js | 119 + node_modules/moment/locale/es-mx.js | 121 + node_modules/moment/locale/es-us.js | 121 + node_modules/moment/locale/es.js | 121 + node_modules/moment/locale/et.js | 89 + node_modules/moment/locale/eu.js | 76 + node_modules/moment/locale/fa.js | 124 + node_modules/moment/locale/fi.js | 135 + node_modules/moment/locale/fil.js | 69 + node_modules/moment/locale/fo.js | 68 + node_modules/moment/locale/fr-ca.js | 81 + node_modules/moment/locale/fr-ch.js | 85 + node_modules/moment/locale/fr.js | 119 + node_modules/moment/locale/fy.js | 86 + node_modules/moment/locale/ga.js | 106 + node_modules/moment/locale/gd.js | 106 + node_modules/moment/locale/gl.js | 86 + node_modules/moment/locale/gom-deva.js | 137 + node_modules/moment/locale/gom-latn.js | 135 + node_modules/moment/locale/gu.js | 133 + node_modules/moment/locale/he.js | 105 + node_modules/moment/locale/hi.js | 179 + node_modules/moment/locale/hr.js | 167 + node_modules/moment/locale/hu.js | 129 + node_modules/moment/locale/hy-am.js | 105 + node_modules/moment/locale/id.js | 87 + node_modules/moment/locale/is.js | 151 + node_modules/moment/locale/it-ch.js | 75 + node_modules/moment/locale/it.js | 117 + node_modules/moment/locale/ja.js | 159 + node_modules/moment/locale/jv.js | 87 + node_modules/moment/locale/ka.js | 103 + node_modules/moment/locale/kk.js | 93 + node_modules/moment/locale/km.js | 114 + node_modules/moment/locale/kn.js | 135 + node_modules/moment/locale/ko.js | 86 + node_modules/moment/locale/ku-kmr.js | 125 + node_modules/moment/locale/ku.js | 129 + node_modules/moment/locale/ky.js | 95 + node_modules/moment/locale/lb.js | 148 + node_modules/moment/locale/lo.js | 77 + node_modules/moment/locale/lt.js | 136 + node_modules/moment/locale/lv.js | 105 + node_modules/moment/locale/me.js | 128 + node_modules/moment/locale/mi.js | 71 + node_modules/moment/locale/mk.js | 97 + node_modules/moment/locale/ml.js | 93 + node_modules/moment/locale/mn.js | 111 + node_modules/moment/locale/mr.js | 214 + node_modules/moment/locale/ms-my.js | 87 + node_modules/moment/locale/ms.js | 86 + node_modules/moment/locale/mt.js | 67 + node_modules/moment/locale/my.js | 102 + node_modules/moment/locale/nb.js | 71 + node_modules/moment/locale/ne.js | 132 + node_modules/moment/locale/nl-be.js | 113 + node_modules/moment/locale/nl.js | 115 + node_modules/moment/locale/nn.js | 70 + node_modules/moment/locale/oc-lnc.js | 96 + node_modules/moment/locale/pa-in.js | 133 + node_modules/moment/locale/pl.js | 151 + node_modules/moment/locale/pt-br.js | 69 + node_modules/moment/locale/pt.js | 74 + node_modules/moment/locale/ro.js | 87 + node_modules/moment/locale/ru.js | 224 + node_modules/moment/locale/sd.js | 92 + node_modules/moment/locale/se.js | 68 + node_modules/moment/locale/si.js | 80 + node_modules/moment/locale/sk.js | 156 + node_modules/moment/locale/sl.js | 182 + node_modules/moment/locale/sq.js | 76 + node_modules/moment/locale/sr-cyrl.js | 138 + node_modules/moment/locale/sr.js | 140 + node_modules/moment/locale/ss.js | 95 + node_modules/moment/locale/sv.js | 79 + node_modules/moment/locale/sw.js | 66 + node_modules/moment/locale/ta.js | 142 + node_modules/moment/locale/te.js | 99 + node_modules/moment/locale/tet.js | 79 + node_modules/moment/locale/tg.js | 128 + node_modules/moment/locale/th.js | 76 + node_modules/moment/locale/tk.js | 102 + node_modules/moment/locale/tl-ph.js | 68 + node_modules/moment/locale/tlh.js | 135 + node_modules/moment/locale/tr.js | 117 + node_modules/moment/locale/tzl.js | 100 + node_modules/moment/locale/tzm-latn.js | 65 + node_modules/moment/locale/tzm.js | 65 + node_modules/moment/locale/ug-cn.js | 122 + node_modules/moment/locale/uk.js | 178 + node_modules/moment/locale/ur.js | 93 + node_modules/moment/locale/uz-latn.js | 65 + node_modules/moment/locale/uz.js | 62 + node_modules/moment/locale/vi.js | 91 + node_modules/moment/locale/x-pseudo.js | 84 + node_modules/moment/locale/yo.js | 64 + node_modules/moment/locale/zh-cn.js | 131 + node_modules/moment/locale/zh-hk.js | 112 + node_modules/moment/locale/zh-mo.js | 111 + node_modules/moment/locale/zh-tw.js | 110 + node_modules/moment/min/locales.js | 12800 +++++++++ node_modules/moment/min/locales.min.js | 2 + node_modules/moment/min/locales.min.js.map | 1 + .../moment/min/moment-with-locales.js | 18472 +++++++++++++ .../moment/min/moment-with-locales.min.js | 2 + .../moment/min/moment-with-locales.min.js.map | 1 + node_modules/moment/min/moment.min.js | 2 + node_modules/moment/min/moment.min.js.map | 1 + node_modules/moment/moment.d.ts | 796 + node_modules/moment/moment.js | 5688 ++++ node_modules/moment/package.js | 11 + node_modules/moment/package.json | 116 + .../moment/src/lib/create/check-overflow.js | 57 + .../moment/src/lib/create/date-from-array.js | 35 + .../moment/src/lib/create/from-anything.js | 117 + .../moment/src/lib/create/from-array.js | 187 + .../moment/src/lib/create/from-object.js | 20 + .../src/lib/create/from-string-and-array.js | 67 + .../src/lib/create/from-string-and-format.js | 135 + .../moment/src/lib/create/from-string.js | 258 + node_modules/moment/src/lib/create/local.js | 5 + .../moment/src/lib/create/parsing-flags.js | 28 + node_modules/moment/src/lib/create/utc.js | 5 + node_modules/moment/src/lib/create/valid.js | 51 + node_modules/moment/src/lib/duration/abs.js | 18 + .../moment/src/lib/duration/add-subtract.js | 21 + node_modules/moment/src/lib/duration/as.js | 76 + .../moment/src/lib/duration/bubble.js | 68 + node_modules/moment/src/lib/duration/clone.js | 5 + .../moment/src/lib/duration/constructor.js | 42 + .../moment/src/lib/duration/create.js | 133 + .../moment/src/lib/duration/duration.js | 16 + node_modules/moment/src/lib/duration/get.js | 27 + .../moment/src/lib/duration/humanize.js | 114 + .../moment/src/lib/duration/iso-string.js | 68 + .../moment/src/lib/duration/prototype.js | 78 + node_modules/moment/src/lib/duration/valid.js | 55 + node_modules/moment/src/lib/format/format.js | 104 + .../moment/src/lib/locale/base-config.js | 41 + .../moment/src/lib/locale/calendar.js | 15 + .../moment/src/lib/locale/constructor.js | 5 + node_modules/moment/src/lib/locale/en.js | 39 + node_modules/moment/src/lib/locale/formats.js | 36 + node_modules/moment/src/lib/locale/invalid.js | 5 + node_modules/moment/src/lib/locale/lists.js | 93 + node_modules/moment/src/lib/locale/locale.js | 45 + node_modules/moment/src/lib/locale/locales.js | 249 + node_modules/moment/src/lib/locale/ordinal.js | 8 + .../moment/src/lib/locale/pre-post-format.js | 3 + .../moment/src/lib/locale/prototype.js | 88 + .../moment/src/lib/locale/relative.js | 32 + node_modules/moment/src/lib/locale/set.js | 56 + .../moment/src/lib/moment/add-subtract.js | 61 + .../moment/src/lib/moment/calendar.js | 53 + node_modules/moment/src/lib/moment/clone.js | 5 + node_modules/moment/src/lib/moment/compare.js | 72 + .../moment/src/lib/moment/constructor.js | 80 + .../moment/src/lib/moment/creation-data.js | 9 + node_modules/moment/src/lib/moment/diff.js | 79 + node_modules/moment/src/lib/moment/format.js | 78 + node_modules/moment/src/lib/moment/from.js | 20 + node_modules/moment/src/lib/moment/get-set.js | 117 + node_modules/moment/src/lib/moment/locale.js | 34 + node_modules/moment/src/lib/moment/min-max.js | 62 + node_modules/moment/src/lib/moment/moment.js | 28 + node_modules/moment/src/lib/moment/now.js | 3 + .../moment/src/lib/moment/prototype.js | 197 + .../moment/src/lib/moment/start-end-of.js | 164 + node_modules/moment/src/lib/moment/to-type.js | 42 + node_modules/moment/src/lib/moment/to.js | 20 + node_modules/moment/src/lib/moment/valid.js | 15 + node_modules/moment/src/lib/parse/regex.js | 84 + node_modules/moment/src/lib/parse/token.js | 36 + node_modules/moment/src/lib/units/aliases.js | 75 + .../moment/src/lib/units/constants.js | 9 + .../moment/src/lib/units/day-of-month.js | 35 + .../moment/src/lib/units/day-of-week.js | 432 + .../moment/src/lib/units/day-of-year.js | 28 + node_modules/moment/src/lib/units/era.js | 293 + node_modules/moment/src/lib/units/hour.js | 152 + .../moment/src/lib/units/millisecond.js | 66 + node_modules/moment/src/lib/units/minute.js | 24 + node_modules/moment/src/lib/units/month.js | 340 + node_modules/moment/src/lib/units/offset.js | 249 + .../moment/src/lib/units/priorities.js | 34 + node_modules/moment/src/lib/units/quarter.js | 24 + node_modules/moment/src/lib/units/second.js | 24 + .../moment/src/lib/units/timestamp.js | 20 + node_modules/moment/src/lib/units/timezone.js | 16 + node_modules/moment/src/lib/units/units.js | 20 + .../src/lib/units/week-calendar-utils.js | 66 + .../moment/src/lib/units/week-year.js | 128 + node_modules/moment/src/lib/units/week.js | 62 + node_modules/moment/src/lib/units/year.js | 75 + node_modules/moment/src/lib/utils/abs-ceil.js | 7 + .../moment/src/lib/utils/abs-floor.js | 8 + .../moment/src/lib/utils/abs-round.js | 7 + .../moment/src/lib/utils/compare-arrays.js | 18 + node_modules/moment/src/lib/utils/defaults.js | 10 + .../moment/src/lib/utils/deprecate.js | 69 + node_modules/moment/src/lib/utils/extend.js | 19 + .../moment/src/lib/utils/has-own-prop.js | 3 + node_modules/moment/src/lib/utils/hooks.js | 13 + node_modules/moment/src/lib/utils/index-of.js | 18 + node_modules/moment/src/lib/utils/is-array.js | 6 + .../moment/src/lib/utils/is-calendar-spec.js | 25 + node_modules/moment/src/lib/utils/is-date.js | 6 + .../moment/src/lib/utils/is-function.js | 6 + .../moment/src/lib/utils/is-leap-year.js | 3 + .../moment/src/lib/utils/is-moment-input.js | 75 + .../moment/src/lib/utils/is-number.js | 6 + .../moment/src/lib/utils/is-object-empty.js | 15 + .../moment/src/lib/utils/is-object.js | 8 + .../moment/src/lib/utils/is-string.js | 3 + .../moment/src/lib/utils/is-undefined.js | 3 + node_modules/moment/src/lib/utils/keys.js | 20 + node_modules/moment/src/lib/utils/map.js | 9 + node_modules/moment/src/lib/utils/mod.js | 3 + node_modules/moment/src/lib/utils/some.js | 20 + node_modules/moment/src/lib/utils/to-int.js | 12 + .../moment/src/lib/utils/zero-fill.js | 10 + node_modules/moment/src/locale/af.js | 71 + node_modules/moment/src/locale/ar-dz.js | 156 + node_modules/moment/src/locale/ar-kw.js | 55 + node_modules/moment/src/locale/ar-ly.js | 171 + node_modules/moment/src/locale/ar-ma.js | 56 + node_modules/moment/src/locale/ar-ps.js | 112 + node_modules/moment/src/locale/ar-sa.js | 105 + node_modules/moment/src/locale/ar-tn.js | 55 + node_modules/moment/src/locale/ar.js | 189 + node_modules/moment/src/locale/az.js | 102 + node_modules/moment/src/locale/be.js | 142 + node_modules/moment/src/locale/bg.js | 87 + node_modules/moment/src/locale/bm.js | 52 + node_modules/moment/src/locale/bn-bd.js | 129 + node_modules/moment/src/locale/bn.js | 119 + node_modules/moment/src/locale/bo.js | 124 + node_modules/moment/src/locale/br.js | 168 + node_modules/moment/src/locale/bs.js | 160 + node_modules/moment/src/locale/ca.js | 100 + node_modules/moment/src/locale/cs.js | 181 + node_modules/moment/src/locale/cv.js | 63 + node_modules/moment/src/locale/cy.js | 98 + node_modules/moment/src/locale/da.js | 53 + node_modules/moment/src/locale/de-at.js | 79 + node_modules/moment/src/locale/de-ch.js | 78 + node_modules/moment/src/locale/de.js | 78 + node_modules/moment/src/locale/dv.js | 90 + node_modules/moment/src/locale/el.js | 106 + node_modules/moment/src/locale/en-au.js | 68 + node_modules/moment/src/locale/en-ca.js | 64 + node_modules/moment/src/locale/en-gb.js | 68 + node_modules/moment/src/locale/en-ie.js | 68 + node_modules/moment/src/locale/en-il.js | 64 + node_modules/moment/src/locale/en-in.js | 68 + node_modules/moment/src/locale/en-nz.js | 68 + node_modules/moment/src/locale/en-sg.js | 68 + node_modules/moment/src/locale/eo.js | 68 + node_modules/moment/src/locale/es-do.js | 108 + node_modules/moment/src/locale/es-mx.js | 110 + node_modules/moment/src/locale/es-us.js | 110 + node_modules/moment/src/locale/es.js | 110 + node_modules/moment/src/locale/et.js | 78 + node_modules/moment/src/locale/eu.js | 65 + node_modules/moment/src/locale/fa.js | 113 + node_modules/moment/src/locale/fi.js | 124 + node_modules/moment/src/locale/fil.js | 58 + node_modules/moment/src/locale/fo.js | 57 + node_modules/moment/src/locale/fr-ca.js | 70 + node_modules/moment/src/locale/fr-ch.js | 74 + node_modules/moment/src/locale/fr.js | 108 + node_modules/moment/src/locale/fy.js | 75 + node_modules/moment/src/locale/ga.js | 95 + node_modules/moment/src/locale/gd.js | 95 + node_modules/moment/src/locale/gl.js | 75 + node_modules/moment/src/locale/gom-deva.js | 126 + node_modules/moment/src/locale/gom-latn.js | 124 + node_modules/moment/src/locale/gu.js | 122 + node_modules/moment/src/locale/he.js | 94 + node_modules/moment/src/locale/hi.js | 168 + node_modules/moment/src/locale/hr.js | 156 + node_modules/moment/src/locale/hu.js | 118 + node_modules/moment/src/locale/hy-am.js | 94 + node_modules/moment/src/locale/id.js | 76 + node_modules/moment/src/locale/is.js | 140 + node_modules/moment/src/locale/it-ch.js | 64 + node_modules/moment/src/locale/it.js | 106 + node_modules/moment/src/locale/ja.js | 148 + node_modules/moment/src/locale/jv.js | 76 + node_modules/moment/src/locale/ka.js | 92 + node_modules/moment/src/locale/kk.js | 82 + node_modules/moment/src/locale/km.js | 103 + node_modules/moment/src/locale/kn.js | 124 + node_modules/moment/src/locale/ko.js | 75 + node_modules/moment/src/locale/ku-kmr.js | 121 + node_modules/moment/src/locale/ku.js | 118 + node_modules/moment/src/locale/ky.js | 84 + node_modules/moment/src/locale/lb.js | 137 + node_modules/moment/src/locale/lo.js | 66 + node_modules/moment/src/locale/lt.js | 125 + node_modules/moment/src/locale/lv.js | 94 + node_modules/moment/src/locale/me.js | 117 + node_modules/moment/src/locale/mi.js | 60 + node_modules/moment/src/locale/mk.js | 85 + node_modules/moment/src/locale/ml.js | 82 + node_modules/moment/src/locale/mn.js | 100 + node_modules/moment/src/locale/mr.js | 203 + node_modules/moment/src/locale/ms-my.js | 76 + node_modules/moment/src/locale/ms.js | 75 + node_modules/moment/src/locale/mt.js | 56 + node_modules/moment/src/locale/my.js | 91 + node_modules/moment/src/locale/nb.js | 60 + node_modules/moment/src/locale/ne.js | 121 + node_modules/moment/src/locale/nl-be.js | 102 + node_modules/moment/src/locale/nl.js | 104 + node_modules/moment/src/locale/nn.js | 59 + node_modules/moment/src/locale/oc-lnc.js | 85 + node_modules/moment/src/locale/pa-in.js | 122 + node_modules/moment/src/locale/pl.js | 140 + node_modules/moment/src/locale/pt-br.js | 58 + node_modules/moment/src/locale/pt.js | 63 + node_modules/moment/src/locale/ro.js | 76 + node_modules/moment/src/locale/ru.js | 213 + node_modules/moment/src/locale/sd.js | 81 + node_modules/moment/src/locale/se.js | 57 + node_modules/moment/src/locale/si.js | 69 + node_modules/moment/src/locale/sk.js | 145 + node_modules/moment/src/locale/sl.js | 171 + node_modules/moment/src/locale/sq.js | 65 + node_modules/moment/src/locale/sr-cyrl.js | 127 + node_modules/moment/src/locale/sr.js | 129 + node_modules/moment/src/locale/ss.js | 84 + node_modules/moment/src/locale/sv.js | 68 + node_modules/moment/src/locale/sw.js | 55 + node_modules/moment/src/locale/ta.js | 131 + node_modules/moment/src/locale/te.js | 88 + node_modules/moment/src/locale/tet.js | 68 + node_modules/moment/src/locale/tg.js | 117 + node_modules/moment/src/locale/th.js | 65 + node_modules/moment/src/locale/tk.js | 91 + node_modules/moment/src/locale/tl-ph.js | 57 + node_modules/moment/src/locale/tlh.js | 124 + node_modules/moment/src/locale/tr.js | 106 + node_modules/moment/src/locale/tzl.js | 89 + node_modules/moment/src/locale/tzm-latn.js | 54 + node_modules/moment/src/locale/tzm.js | 54 + node_modules/moment/src/locale/ug-cn.js | 111 + node_modules/moment/src/locale/uk.js | 167 + node_modules/moment/src/locale/ur.js | 82 + node_modules/moment/src/locale/uz-latn.js | 54 + node_modules/moment/src/locale/uz.js | 51 + node_modules/moment/src/locale/vi.js | 80 + node_modules/moment/src/locale/x-pseudo.js | 73 + node_modules/moment/src/locale/yo.js | 53 + node_modules/moment/src/locale/zh-cn.js | 120 + node_modules/moment/src/locale/zh-hk.js | 101 + node_modules/moment/src/locale/zh-mo.js | 100 + node_modules/moment/src/locale/zh-tw.js | 99 + node_modules/moment/src/moment.js | 93 + node_modules/moment/ts3.1-typings/moment.d.ts | 785 + package-lock.json | 16 +- package.json | 3 +- pages.json | 62 +- pages/gqzq/index.js | 0 pages/homeIndx/index.vue | 550 + pages/index/index.vue | 415 +- pages/rain/rain.vue | 7 +- static/tabs/bigImg.png | Bin 0 -> 650922 bytes static/tabs/chartcolumn@2x.png | Bin 0 -> 1136 bytes static/tabs/fxdp.png | Bin 0 -> 2242 bytes static/tabs/fxzb.png | Bin 0 -> 2742 bytes static/tabs/guanli.png | Bin 0 -> 613 bytes static/tabs/my2_icon@2x.png | Bin 0 -> 6242 bytes static/tabs/my_icon@2x.png | Bin 0 -> 19958 bytes static/tabs/orangewarn.png | Bin 0 -> 776 bytes static/tabs/panelTitle.png | Bin 0 -> 823 bytes static/tabs/phone2_icon@2x.png | Bin 0 -> 20396 bytes static/tabs/phone_icon@2x.png | Bin 0 -> 3745 bytes static/tabs/shouye.png | Bin 0 -> 509 bytes static/tabs/spjk.png | Bin 0 -> 4853 bytes static/tabs/user.png | Bin 0 -> 965 bytes static/tabs/water (1) 拷贝@2x.png | Bin 0 -> 24807 bytes static/tabs/xinxi_icon@2x.png | Bin 0 -> 31144 bytes static/tabs/ysgzq.png | Bin 0 -> 2753 bytes static/tabs/头像_icon@2x.png | Bin 0 -> 36144 bytes static/tabs/工情——icon@2x.png | Bin 0 -> 35220 bytes static/tabs/形状 1@2x.png | Bin 0 -> 21237 bytes static/tabs/首页@2x.png | Bin 0 -> 4289 bytes .../.sourcemap/mp-weixin/common/main.js.map | 2 +- .../mp-weixin/common/runtime.js.map | 2 +- .../.sourcemap/mp-weixin/common/vendor.js.map | 2 +- .../mp-weixin/pages/homeIndx/index.js.map | 1 + .../mp-weixin/pages/index/index.js.map | 2 +- .../mp-weixin/pages/rain/rain.js.map | 2 +- .../uview-ui/components/u-icon/u-icon.js.map | 2 +- .../components/u-table/u-table.js.map | 1 + .../uview-ui/components/u-td/u-td.js.map | 1 + .../uview-ui/components/u-tr/u-tr.js.map | 1 + unpackage/dist/dev/mp-weixin/app.json | 1 + unpackage/dist/dev/mp-weixin/common/main.js | 87 +- .../dist/dev/mp-weixin/common/runtime.js | 4 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 23015 ++++++++++++++-- .../dev/mp-weixin/pages/homeIndx/index.js | 592 + .../rain.vue.json => homeIndx/index.json} | 2 +- .../dev/mp-weixin/pages/homeIndx/index.wxml | 1 + .../dev/mp-weixin/pages/homeIndx/index.wxss | 193 + .../dist/dev/mp-weixin/pages/index/index.js | 396 +- .../dist/dev/mp-weixin/pages/index/index.json | 4 +- .../dist/dev/mp-weixin/pages/index/index.wxml | 2 +- .../dist/dev/mp-weixin/pages/index/index.wxss | 125 +- .../dist/dev/mp-weixin/pages/rain/rain.js | 81 +- .../dist/dev/mp-weixin/static/tabs/bigImg.png | Bin 0 -> 650922 bytes .../mp-weixin/static/tabs/chartcolumn@2x.png | Bin 0 -> 1136 bytes .../dist/dev/mp-weixin/static/tabs/fxdp.png | Bin 0 -> 2242 bytes .../dist/dev/mp-weixin/static/tabs/fxzb.png | Bin 0 -> 2742 bytes .../dist/dev/mp-weixin/static/tabs/guanli.png | Bin 0 -> 613 bytes .../dev/mp-weixin/static/tabs/my2_icon@2x.png | Bin 0 -> 6242 bytes .../dev/mp-weixin/static/tabs/my_icon@2x.png | Bin 0 -> 19958 bytes .../dev/mp-weixin/static/tabs/orangewarn.png | Bin 0 -> 776 bytes .../dev/mp-weixin/static/tabs/panelTitle.png | Bin 0 -> 823 bytes .../mp-weixin/static/tabs/phone2_icon@2x.png | Bin 0 -> 20396 bytes .../mp-weixin/static/tabs/phone_icon@2x.png | Bin 0 -> 3745 bytes .../dist/dev/mp-weixin/static/tabs/shouye.png | Bin 0 -> 509 bytes .../dist/dev/mp-weixin/static/tabs/spjk.png | Bin 0 -> 4853 bytes .../dist/dev/mp-weixin/static/tabs/user.png | Bin 0 -> 965 bytes .../static/tabs/water (1) 拷贝@2x.png | Bin 0 -> 24807 bytes .../mp-weixin/static/tabs/xinxi_icon@2x.png | Bin 0 -> 31144 bytes .../dist/dev/mp-weixin/static/tabs/ysgzq.png | Bin 0 -> 2753 bytes .../mp-weixin/static/tabs/头像_icon@2x.png | Bin 0 -> 36144 bytes .../static/tabs/工情——icon@2x.png | Bin 0 -> 35220 bytes .../dev/mp-weixin/static/tabs/形状 1@2x.png | Bin 0 -> 21237 bytes .../dev/mp-weixin/static/tabs/首页@2x.png | Bin 0 -> 4289 bytes .../uni-link/components/uni-link/uni-link.js | 266 - .../components/uni-link/uni-link.wxml | 1 - .../components/uni-link/uni-link.wxss | 8 - .../uview-ui/components/u-icon/u-icon.js | 98 +- .../uview-ui/components/u-icon/u-icon.json | 4 +- .../uview-ui/components/u-table/u-table.js} | 0 .../components/u-table/u-table.json} | 0 .../uview-ui/components/u-table/u-table.wxml | 1 + .../uview-ui/components/u-table/u-table.wxss | 14 + .../uview-ui/components/u-td/u-td.js | 1 + .../uview-ui/components/u-td/u-td.json | 4 + .../uview-ui/components/u-td/u-td.wxml | 1 + .../uview-ui/components/u-td/u-td.wxss | 14 + .../uview-ui/components/u-tr/u-tr.js | 1 + .../uview-ui/components/u-tr/u-tr.json | 4 + .../uview-ui/components/u-tr/u-tr.wxml | 1 + .../uview-ui/components/u-tr/u-tr.wxss | 14 + 630 files changed, 116852 insertions(+), 2385 deletions(-) create mode 100644 node_modules/moment/CHANGELOG.md create mode 100644 node_modules/moment/LICENSE create mode 100644 node_modules/moment/README.md create mode 100644 node_modules/moment/dist/locale/af.js create mode 100644 node_modules/moment/dist/locale/ar-dz.js create mode 100644 node_modules/moment/dist/locale/ar-kw.js create mode 100644 node_modules/moment/dist/locale/ar-ly.js create mode 100644 node_modules/moment/dist/locale/ar-ma.js create mode 100644 node_modules/moment/dist/locale/ar-ps.js create mode 100644 node_modules/moment/dist/locale/ar-sa.js create mode 100644 node_modules/moment/dist/locale/ar-tn.js create mode 100644 node_modules/moment/dist/locale/ar.js create mode 100644 node_modules/moment/dist/locale/az.js create mode 100644 node_modules/moment/dist/locale/be.js create mode 100644 node_modules/moment/dist/locale/bg.js create mode 100644 node_modules/moment/dist/locale/bm.js create mode 100644 node_modules/moment/dist/locale/bn-bd.js create mode 100644 node_modules/moment/dist/locale/bn.js create mode 100644 node_modules/moment/dist/locale/bo.js create mode 100644 node_modules/moment/dist/locale/br.js create mode 100644 node_modules/moment/dist/locale/bs.js create mode 100644 node_modules/moment/dist/locale/ca.js create mode 100644 node_modules/moment/dist/locale/cs.js create mode 100644 node_modules/moment/dist/locale/cv.js create mode 100644 node_modules/moment/dist/locale/cy.js create mode 100644 node_modules/moment/dist/locale/da.js create mode 100644 node_modules/moment/dist/locale/de-at.js create mode 100644 node_modules/moment/dist/locale/de-ch.js create mode 100644 node_modules/moment/dist/locale/de.js create mode 100644 node_modules/moment/dist/locale/dv.js create mode 100644 node_modules/moment/dist/locale/el.js create mode 100644 node_modules/moment/dist/locale/en-au.js create mode 100644 node_modules/moment/dist/locale/en-ca.js create mode 100644 node_modules/moment/dist/locale/en-gb.js create mode 100644 node_modules/moment/dist/locale/en-ie.js create mode 100644 node_modules/moment/dist/locale/en-il.js create mode 100644 node_modules/moment/dist/locale/en-in.js create mode 100644 node_modules/moment/dist/locale/en-nz.js create mode 100644 node_modules/moment/dist/locale/en-sg.js create mode 100644 node_modules/moment/dist/locale/eo.js create mode 100644 node_modules/moment/dist/locale/es-do.js create mode 100644 node_modules/moment/dist/locale/es-mx.js create mode 100644 node_modules/moment/dist/locale/es-us.js create mode 100644 node_modules/moment/dist/locale/es.js create mode 100644 node_modules/moment/dist/locale/et.js create mode 100644 node_modules/moment/dist/locale/eu.js create mode 100644 node_modules/moment/dist/locale/fa.js create mode 100644 node_modules/moment/dist/locale/fi.js create mode 100644 node_modules/moment/dist/locale/fil.js create mode 100644 node_modules/moment/dist/locale/fo.js create mode 100644 node_modules/moment/dist/locale/fr-ca.js create mode 100644 node_modules/moment/dist/locale/fr-ch.js create mode 100644 node_modules/moment/dist/locale/fr.js create mode 100644 node_modules/moment/dist/locale/fy.js create mode 100644 node_modules/moment/dist/locale/ga.js create mode 100644 node_modules/moment/dist/locale/gd.js create mode 100644 node_modules/moment/dist/locale/gl.js create mode 100644 node_modules/moment/dist/locale/gom-deva.js create mode 100644 node_modules/moment/dist/locale/gom-latn.js create mode 100644 node_modules/moment/dist/locale/gu.js create mode 100644 node_modules/moment/dist/locale/he.js create mode 100644 node_modules/moment/dist/locale/hi.js create mode 100644 node_modules/moment/dist/locale/hr.js create mode 100644 node_modules/moment/dist/locale/hu.js create mode 100644 node_modules/moment/dist/locale/hy-am.js create mode 100644 node_modules/moment/dist/locale/id.js create mode 100644 node_modules/moment/dist/locale/is.js create mode 100644 node_modules/moment/dist/locale/it-ch.js create mode 100644 node_modules/moment/dist/locale/it.js create mode 100644 node_modules/moment/dist/locale/ja.js create mode 100644 node_modules/moment/dist/locale/jv.js create mode 100644 node_modules/moment/dist/locale/ka.js create mode 100644 node_modules/moment/dist/locale/kk.js create mode 100644 node_modules/moment/dist/locale/km.js create mode 100644 node_modules/moment/dist/locale/kn.js create mode 100644 node_modules/moment/dist/locale/ko.js create mode 100644 node_modules/moment/dist/locale/ku-kmr.js create mode 100644 node_modules/moment/dist/locale/ku.js create mode 100644 node_modules/moment/dist/locale/ky.js create mode 100644 node_modules/moment/dist/locale/lb.js create mode 100644 node_modules/moment/dist/locale/lo.js create mode 100644 node_modules/moment/dist/locale/lt.js create mode 100644 node_modules/moment/dist/locale/lv.js create mode 100644 node_modules/moment/dist/locale/me.js create mode 100644 node_modules/moment/dist/locale/mi.js create mode 100644 node_modules/moment/dist/locale/mk.js create mode 100644 node_modules/moment/dist/locale/ml.js create mode 100644 node_modules/moment/dist/locale/mn.js create mode 100644 node_modules/moment/dist/locale/mr.js create mode 100644 node_modules/moment/dist/locale/ms-my.js create mode 100644 node_modules/moment/dist/locale/ms.js create mode 100644 node_modules/moment/dist/locale/mt.js create mode 100644 node_modules/moment/dist/locale/my.js create mode 100644 node_modules/moment/dist/locale/nb.js create mode 100644 node_modules/moment/dist/locale/ne.js create mode 100644 node_modules/moment/dist/locale/nl-be.js create mode 100644 node_modules/moment/dist/locale/nl.js create mode 100644 node_modules/moment/dist/locale/nn.js create mode 100644 node_modules/moment/dist/locale/oc-lnc.js create mode 100644 node_modules/moment/dist/locale/pa-in.js create mode 100644 node_modules/moment/dist/locale/pl.js create mode 100644 node_modules/moment/dist/locale/pt-br.js create mode 100644 node_modules/moment/dist/locale/pt.js create mode 100644 node_modules/moment/dist/locale/ro.js create mode 100644 node_modules/moment/dist/locale/ru.js create mode 100644 node_modules/moment/dist/locale/sd.js create mode 100644 node_modules/moment/dist/locale/se.js create mode 100644 node_modules/moment/dist/locale/si.js create mode 100644 node_modules/moment/dist/locale/sk.js create mode 100644 node_modules/moment/dist/locale/sl.js create mode 100644 node_modules/moment/dist/locale/sq.js create mode 100644 node_modules/moment/dist/locale/sr-cyrl.js create mode 100644 node_modules/moment/dist/locale/sr.js create mode 100644 node_modules/moment/dist/locale/ss.js create mode 100644 node_modules/moment/dist/locale/sv.js create mode 100644 node_modules/moment/dist/locale/sw.js create mode 100644 node_modules/moment/dist/locale/ta.js create mode 100644 node_modules/moment/dist/locale/te.js create mode 100644 node_modules/moment/dist/locale/tet.js create mode 100644 node_modules/moment/dist/locale/tg.js create mode 100644 node_modules/moment/dist/locale/th.js create mode 100644 node_modules/moment/dist/locale/tk.js create mode 100644 node_modules/moment/dist/locale/tl-ph.js create mode 100644 node_modules/moment/dist/locale/tlh.js create mode 100644 node_modules/moment/dist/locale/tr.js create mode 100644 node_modules/moment/dist/locale/tzl.js create mode 100644 node_modules/moment/dist/locale/tzm-latn.js create mode 100644 node_modules/moment/dist/locale/tzm.js create mode 100644 node_modules/moment/dist/locale/ug-cn.js create mode 100644 node_modules/moment/dist/locale/uk.js create mode 100644 node_modules/moment/dist/locale/ur.js create mode 100644 node_modules/moment/dist/locale/uz-latn.js create mode 100644 node_modules/moment/dist/locale/uz.js create mode 100644 node_modules/moment/dist/locale/vi.js create mode 100644 node_modules/moment/dist/locale/x-pseudo.js create mode 100644 node_modules/moment/dist/locale/yo.js create mode 100644 node_modules/moment/dist/locale/zh-cn.js create mode 100644 node_modules/moment/dist/locale/zh-hk.js create mode 100644 node_modules/moment/dist/locale/zh-mo.js create mode 100644 node_modules/moment/dist/locale/zh-tw.js create mode 100644 node_modules/moment/dist/moment.js create mode 100644 node_modules/moment/ender.js create mode 100644 node_modules/moment/locale/af.js create mode 100644 node_modules/moment/locale/ar-dz.js create mode 100644 node_modules/moment/locale/ar-kw.js create mode 100644 node_modules/moment/locale/ar-ly.js create mode 100644 node_modules/moment/locale/ar-ma.js create mode 100644 node_modules/moment/locale/ar-ps.js create mode 100644 node_modules/moment/locale/ar-sa.js create mode 100644 node_modules/moment/locale/ar-tn.js create mode 100644 node_modules/moment/locale/ar.js create mode 100644 node_modules/moment/locale/az.js create mode 100644 node_modules/moment/locale/be.js create mode 100644 node_modules/moment/locale/bg.js create mode 100644 node_modules/moment/locale/bm.js create mode 100644 node_modules/moment/locale/bn-bd.js create mode 100644 node_modules/moment/locale/bn.js create mode 100644 node_modules/moment/locale/bo.js create mode 100644 node_modules/moment/locale/br.js create mode 100644 node_modules/moment/locale/bs.js create mode 100644 node_modules/moment/locale/ca.js create mode 100644 node_modules/moment/locale/cs.js create mode 100644 node_modules/moment/locale/cv.js create mode 100644 node_modules/moment/locale/cy.js create mode 100644 node_modules/moment/locale/da.js create mode 100644 node_modules/moment/locale/de-at.js create mode 100644 node_modules/moment/locale/de-ch.js create mode 100644 node_modules/moment/locale/de.js create mode 100644 node_modules/moment/locale/dv.js create mode 100644 node_modules/moment/locale/el.js create mode 100644 node_modules/moment/locale/en-au.js create mode 100644 node_modules/moment/locale/en-ca.js create mode 100644 node_modules/moment/locale/en-gb.js create mode 100644 node_modules/moment/locale/en-ie.js create mode 100644 node_modules/moment/locale/en-il.js create mode 100644 node_modules/moment/locale/en-in.js create mode 100644 node_modules/moment/locale/en-nz.js create mode 100644 node_modules/moment/locale/en-sg.js create mode 100644 node_modules/moment/locale/eo.js create mode 100644 node_modules/moment/locale/es-do.js create mode 100644 node_modules/moment/locale/es-mx.js create mode 100644 node_modules/moment/locale/es-us.js create mode 100644 node_modules/moment/locale/es.js create mode 100644 node_modules/moment/locale/et.js create mode 100644 node_modules/moment/locale/eu.js create mode 100644 node_modules/moment/locale/fa.js create mode 100644 node_modules/moment/locale/fi.js create mode 100644 node_modules/moment/locale/fil.js create mode 100644 node_modules/moment/locale/fo.js create mode 100644 node_modules/moment/locale/fr-ca.js create mode 100644 node_modules/moment/locale/fr-ch.js create mode 100644 node_modules/moment/locale/fr.js create mode 100644 node_modules/moment/locale/fy.js create mode 100644 node_modules/moment/locale/ga.js create mode 100644 node_modules/moment/locale/gd.js create mode 100644 node_modules/moment/locale/gl.js create mode 100644 node_modules/moment/locale/gom-deva.js create mode 100644 node_modules/moment/locale/gom-latn.js create mode 100644 node_modules/moment/locale/gu.js create mode 100644 node_modules/moment/locale/he.js create mode 100644 node_modules/moment/locale/hi.js create mode 100644 node_modules/moment/locale/hr.js create mode 100644 node_modules/moment/locale/hu.js create mode 100644 node_modules/moment/locale/hy-am.js create mode 100644 node_modules/moment/locale/id.js create mode 100644 node_modules/moment/locale/is.js create mode 100644 node_modules/moment/locale/it-ch.js create mode 100644 node_modules/moment/locale/it.js create mode 100644 node_modules/moment/locale/ja.js create mode 100644 node_modules/moment/locale/jv.js create mode 100644 node_modules/moment/locale/ka.js create mode 100644 node_modules/moment/locale/kk.js create mode 100644 node_modules/moment/locale/km.js create mode 100644 node_modules/moment/locale/kn.js create mode 100644 node_modules/moment/locale/ko.js create mode 100644 node_modules/moment/locale/ku-kmr.js create mode 100644 node_modules/moment/locale/ku.js create mode 100644 node_modules/moment/locale/ky.js create mode 100644 node_modules/moment/locale/lb.js create mode 100644 node_modules/moment/locale/lo.js create mode 100644 node_modules/moment/locale/lt.js create mode 100644 node_modules/moment/locale/lv.js create mode 100644 node_modules/moment/locale/me.js create mode 100644 node_modules/moment/locale/mi.js create mode 100644 node_modules/moment/locale/mk.js create mode 100644 node_modules/moment/locale/ml.js create mode 100644 node_modules/moment/locale/mn.js create mode 100644 node_modules/moment/locale/mr.js create mode 100644 node_modules/moment/locale/ms-my.js create mode 100644 node_modules/moment/locale/ms.js create mode 100644 node_modules/moment/locale/mt.js create mode 100644 node_modules/moment/locale/my.js create mode 100644 node_modules/moment/locale/nb.js create mode 100644 node_modules/moment/locale/ne.js create mode 100644 node_modules/moment/locale/nl-be.js create mode 100644 node_modules/moment/locale/nl.js create mode 100644 node_modules/moment/locale/nn.js create mode 100644 node_modules/moment/locale/oc-lnc.js create mode 100644 node_modules/moment/locale/pa-in.js create mode 100644 node_modules/moment/locale/pl.js create mode 100644 node_modules/moment/locale/pt-br.js create mode 100644 node_modules/moment/locale/pt.js create mode 100644 node_modules/moment/locale/ro.js create mode 100644 node_modules/moment/locale/ru.js create mode 100644 node_modules/moment/locale/sd.js create mode 100644 node_modules/moment/locale/se.js create mode 100644 node_modules/moment/locale/si.js create mode 100644 node_modules/moment/locale/sk.js create mode 100644 node_modules/moment/locale/sl.js create mode 100644 node_modules/moment/locale/sq.js create mode 100644 node_modules/moment/locale/sr-cyrl.js create mode 100644 node_modules/moment/locale/sr.js create mode 100644 node_modules/moment/locale/ss.js create mode 100644 node_modules/moment/locale/sv.js create mode 100644 node_modules/moment/locale/sw.js create mode 100644 node_modules/moment/locale/ta.js create mode 100644 node_modules/moment/locale/te.js create mode 100644 node_modules/moment/locale/tet.js create mode 100644 node_modules/moment/locale/tg.js create mode 100644 node_modules/moment/locale/th.js create mode 100644 node_modules/moment/locale/tk.js create mode 100644 node_modules/moment/locale/tl-ph.js create mode 100644 node_modules/moment/locale/tlh.js create mode 100644 node_modules/moment/locale/tr.js create mode 100644 node_modules/moment/locale/tzl.js create mode 100644 node_modules/moment/locale/tzm-latn.js create mode 100644 node_modules/moment/locale/tzm.js create mode 100644 node_modules/moment/locale/ug-cn.js create mode 100644 node_modules/moment/locale/uk.js create mode 100644 node_modules/moment/locale/ur.js create mode 100644 node_modules/moment/locale/uz-latn.js create mode 100644 node_modules/moment/locale/uz.js create mode 100644 node_modules/moment/locale/vi.js create mode 100644 node_modules/moment/locale/x-pseudo.js create mode 100644 node_modules/moment/locale/yo.js create mode 100644 node_modules/moment/locale/zh-cn.js create mode 100644 node_modules/moment/locale/zh-hk.js create mode 100644 node_modules/moment/locale/zh-mo.js create mode 100644 node_modules/moment/locale/zh-tw.js create mode 100644 node_modules/moment/min/locales.js create mode 100644 node_modules/moment/min/locales.min.js create mode 100644 node_modules/moment/min/locales.min.js.map create mode 100644 node_modules/moment/min/moment-with-locales.js create mode 100644 node_modules/moment/min/moment-with-locales.min.js create mode 100644 node_modules/moment/min/moment-with-locales.min.js.map create mode 100644 node_modules/moment/min/moment.min.js create mode 100644 node_modules/moment/min/moment.min.js.map create mode 100644 node_modules/moment/moment.d.ts create mode 100644 node_modules/moment/moment.js create mode 100644 node_modules/moment/package.js create mode 100644 node_modules/moment/package.json create mode 100644 node_modules/moment/src/lib/create/check-overflow.js create mode 100644 node_modules/moment/src/lib/create/date-from-array.js create mode 100644 node_modules/moment/src/lib/create/from-anything.js create mode 100644 node_modules/moment/src/lib/create/from-array.js create mode 100644 node_modules/moment/src/lib/create/from-object.js create mode 100644 node_modules/moment/src/lib/create/from-string-and-array.js create mode 100644 node_modules/moment/src/lib/create/from-string-and-format.js create mode 100644 node_modules/moment/src/lib/create/from-string.js create mode 100644 node_modules/moment/src/lib/create/local.js create mode 100644 node_modules/moment/src/lib/create/parsing-flags.js create mode 100644 node_modules/moment/src/lib/create/utc.js create mode 100644 node_modules/moment/src/lib/create/valid.js create mode 100644 node_modules/moment/src/lib/duration/abs.js create mode 100644 node_modules/moment/src/lib/duration/add-subtract.js create mode 100644 node_modules/moment/src/lib/duration/as.js create mode 100644 node_modules/moment/src/lib/duration/bubble.js create mode 100644 node_modules/moment/src/lib/duration/clone.js create mode 100644 node_modules/moment/src/lib/duration/constructor.js create mode 100644 node_modules/moment/src/lib/duration/create.js create mode 100644 node_modules/moment/src/lib/duration/duration.js create mode 100644 node_modules/moment/src/lib/duration/get.js create mode 100644 node_modules/moment/src/lib/duration/humanize.js create mode 100644 node_modules/moment/src/lib/duration/iso-string.js create mode 100644 node_modules/moment/src/lib/duration/prototype.js create mode 100644 node_modules/moment/src/lib/duration/valid.js create mode 100644 node_modules/moment/src/lib/format/format.js create mode 100644 node_modules/moment/src/lib/locale/base-config.js create mode 100644 node_modules/moment/src/lib/locale/calendar.js create mode 100644 node_modules/moment/src/lib/locale/constructor.js create mode 100644 node_modules/moment/src/lib/locale/en.js create mode 100644 node_modules/moment/src/lib/locale/formats.js create mode 100644 node_modules/moment/src/lib/locale/invalid.js create mode 100644 node_modules/moment/src/lib/locale/lists.js create mode 100644 node_modules/moment/src/lib/locale/locale.js create mode 100644 node_modules/moment/src/lib/locale/locales.js create mode 100644 node_modules/moment/src/lib/locale/ordinal.js create mode 100644 node_modules/moment/src/lib/locale/pre-post-format.js create mode 100644 node_modules/moment/src/lib/locale/prototype.js create mode 100644 node_modules/moment/src/lib/locale/relative.js create mode 100644 node_modules/moment/src/lib/locale/set.js create mode 100644 node_modules/moment/src/lib/moment/add-subtract.js create mode 100644 node_modules/moment/src/lib/moment/calendar.js create mode 100644 node_modules/moment/src/lib/moment/clone.js create mode 100644 node_modules/moment/src/lib/moment/compare.js create mode 100644 node_modules/moment/src/lib/moment/constructor.js create mode 100644 node_modules/moment/src/lib/moment/creation-data.js create mode 100644 node_modules/moment/src/lib/moment/diff.js create mode 100644 node_modules/moment/src/lib/moment/format.js create mode 100644 node_modules/moment/src/lib/moment/from.js create mode 100644 node_modules/moment/src/lib/moment/get-set.js create mode 100644 node_modules/moment/src/lib/moment/locale.js create mode 100644 node_modules/moment/src/lib/moment/min-max.js create mode 100644 node_modules/moment/src/lib/moment/moment.js create mode 100644 node_modules/moment/src/lib/moment/now.js create mode 100644 node_modules/moment/src/lib/moment/prototype.js create mode 100644 node_modules/moment/src/lib/moment/start-end-of.js create mode 100644 node_modules/moment/src/lib/moment/to-type.js create mode 100644 node_modules/moment/src/lib/moment/to.js create mode 100644 node_modules/moment/src/lib/moment/valid.js create mode 100644 node_modules/moment/src/lib/parse/regex.js create mode 100644 node_modules/moment/src/lib/parse/token.js create mode 100644 node_modules/moment/src/lib/units/aliases.js create mode 100644 node_modules/moment/src/lib/units/constants.js create mode 100644 node_modules/moment/src/lib/units/day-of-month.js create mode 100644 node_modules/moment/src/lib/units/day-of-week.js create mode 100644 node_modules/moment/src/lib/units/day-of-year.js create mode 100644 node_modules/moment/src/lib/units/era.js create mode 100644 node_modules/moment/src/lib/units/hour.js create mode 100644 node_modules/moment/src/lib/units/millisecond.js create mode 100644 node_modules/moment/src/lib/units/minute.js create mode 100644 node_modules/moment/src/lib/units/month.js create mode 100644 node_modules/moment/src/lib/units/offset.js create mode 100644 node_modules/moment/src/lib/units/priorities.js create mode 100644 node_modules/moment/src/lib/units/quarter.js create mode 100644 node_modules/moment/src/lib/units/second.js create mode 100644 node_modules/moment/src/lib/units/timestamp.js create mode 100644 node_modules/moment/src/lib/units/timezone.js create mode 100644 node_modules/moment/src/lib/units/units.js create mode 100644 node_modules/moment/src/lib/units/week-calendar-utils.js create mode 100644 node_modules/moment/src/lib/units/week-year.js create mode 100644 node_modules/moment/src/lib/units/week.js create mode 100644 node_modules/moment/src/lib/units/year.js create mode 100644 node_modules/moment/src/lib/utils/abs-ceil.js create mode 100644 node_modules/moment/src/lib/utils/abs-floor.js create mode 100644 node_modules/moment/src/lib/utils/abs-round.js create mode 100644 node_modules/moment/src/lib/utils/compare-arrays.js create mode 100644 node_modules/moment/src/lib/utils/defaults.js create mode 100644 node_modules/moment/src/lib/utils/deprecate.js create mode 100644 node_modules/moment/src/lib/utils/extend.js create mode 100644 node_modules/moment/src/lib/utils/has-own-prop.js create mode 100644 node_modules/moment/src/lib/utils/hooks.js create mode 100644 node_modules/moment/src/lib/utils/index-of.js create mode 100644 node_modules/moment/src/lib/utils/is-array.js create mode 100644 node_modules/moment/src/lib/utils/is-calendar-spec.js create mode 100644 node_modules/moment/src/lib/utils/is-date.js create mode 100644 node_modules/moment/src/lib/utils/is-function.js create mode 100644 node_modules/moment/src/lib/utils/is-leap-year.js create mode 100644 node_modules/moment/src/lib/utils/is-moment-input.js create mode 100644 node_modules/moment/src/lib/utils/is-number.js create mode 100644 node_modules/moment/src/lib/utils/is-object-empty.js create mode 100644 node_modules/moment/src/lib/utils/is-object.js create mode 100644 node_modules/moment/src/lib/utils/is-string.js create mode 100644 node_modules/moment/src/lib/utils/is-undefined.js create mode 100644 node_modules/moment/src/lib/utils/keys.js create mode 100644 node_modules/moment/src/lib/utils/map.js create mode 100644 node_modules/moment/src/lib/utils/mod.js create mode 100644 node_modules/moment/src/lib/utils/some.js create mode 100644 node_modules/moment/src/lib/utils/to-int.js create mode 100644 node_modules/moment/src/lib/utils/zero-fill.js create mode 100644 node_modules/moment/src/locale/af.js create mode 100644 node_modules/moment/src/locale/ar-dz.js create mode 100644 node_modules/moment/src/locale/ar-kw.js create mode 100644 node_modules/moment/src/locale/ar-ly.js create mode 100644 node_modules/moment/src/locale/ar-ma.js create mode 100644 node_modules/moment/src/locale/ar-ps.js create mode 100644 node_modules/moment/src/locale/ar-sa.js create mode 100644 node_modules/moment/src/locale/ar-tn.js create mode 100644 node_modules/moment/src/locale/ar.js create mode 100644 node_modules/moment/src/locale/az.js create mode 100644 node_modules/moment/src/locale/be.js create mode 100644 node_modules/moment/src/locale/bg.js create mode 100644 node_modules/moment/src/locale/bm.js create mode 100644 node_modules/moment/src/locale/bn-bd.js create mode 100644 node_modules/moment/src/locale/bn.js create mode 100644 node_modules/moment/src/locale/bo.js create mode 100644 node_modules/moment/src/locale/br.js create mode 100644 node_modules/moment/src/locale/bs.js create mode 100644 node_modules/moment/src/locale/ca.js create mode 100644 node_modules/moment/src/locale/cs.js create mode 100644 node_modules/moment/src/locale/cv.js create mode 100644 node_modules/moment/src/locale/cy.js create mode 100644 node_modules/moment/src/locale/da.js create mode 100644 node_modules/moment/src/locale/de-at.js create mode 100644 node_modules/moment/src/locale/de-ch.js create mode 100644 node_modules/moment/src/locale/de.js create mode 100644 node_modules/moment/src/locale/dv.js create mode 100644 node_modules/moment/src/locale/el.js create mode 100644 node_modules/moment/src/locale/en-au.js create mode 100644 node_modules/moment/src/locale/en-ca.js create mode 100644 node_modules/moment/src/locale/en-gb.js create mode 100644 node_modules/moment/src/locale/en-ie.js create mode 100644 node_modules/moment/src/locale/en-il.js create mode 100644 node_modules/moment/src/locale/en-in.js create mode 100644 node_modules/moment/src/locale/en-nz.js create mode 100644 node_modules/moment/src/locale/en-sg.js create mode 100644 node_modules/moment/src/locale/eo.js create mode 100644 node_modules/moment/src/locale/es-do.js create mode 100644 node_modules/moment/src/locale/es-mx.js create mode 100644 node_modules/moment/src/locale/es-us.js create mode 100644 node_modules/moment/src/locale/es.js create mode 100644 node_modules/moment/src/locale/et.js create mode 100644 node_modules/moment/src/locale/eu.js create mode 100644 node_modules/moment/src/locale/fa.js create mode 100644 node_modules/moment/src/locale/fi.js create mode 100644 node_modules/moment/src/locale/fil.js create mode 100644 node_modules/moment/src/locale/fo.js create mode 100644 node_modules/moment/src/locale/fr-ca.js create mode 100644 node_modules/moment/src/locale/fr-ch.js create mode 100644 node_modules/moment/src/locale/fr.js create mode 100644 node_modules/moment/src/locale/fy.js create mode 100644 node_modules/moment/src/locale/ga.js create mode 100644 node_modules/moment/src/locale/gd.js create mode 100644 node_modules/moment/src/locale/gl.js create mode 100644 node_modules/moment/src/locale/gom-deva.js create mode 100644 node_modules/moment/src/locale/gom-latn.js create mode 100644 node_modules/moment/src/locale/gu.js create mode 100644 node_modules/moment/src/locale/he.js create mode 100644 node_modules/moment/src/locale/hi.js create mode 100644 node_modules/moment/src/locale/hr.js create mode 100644 node_modules/moment/src/locale/hu.js create mode 100644 node_modules/moment/src/locale/hy-am.js create mode 100644 node_modules/moment/src/locale/id.js create mode 100644 node_modules/moment/src/locale/is.js create mode 100644 node_modules/moment/src/locale/it-ch.js create mode 100644 node_modules/moment/src/locale/it.js create mode 100644 node_modules/moment/src/locale/ja.js create mode 100644 node_modules/moment/src/locale/jv.js create mode 100644 node_modules/moment/src/locale/ka.js create mode 100644 node_modules/moment/src/locale/kk.js create mode 100644 node_modules/moment/src/locale/km.js create mode 100644 node_modules/moment/src/locale/kn.js create mode 100644 node_modules/moment/src/locale/ko.js create mode 100644 node_modules/moment/src/locale/ku-kmr.js create mode 100644 node_modules/moment/src/locale/ku.js create mode 100644 node_modules/moment/src/locale/ky.js create mode 100644 node_modules/moment/src/locale/lb.js create mode 100644 node_modules/moment/src/locale/lo.js create mode 100644 node_modules/moment/src/locale/lt.js create mode 100644 node_modules/moment/src/locale/lv.js create mode 100644 node_modules/moment/src/locale/me.js create mode 100644 node_modules/moment/src/locale/mi.js create mode 100644 node_modules/moment/src/locale/mk.js create mode 100644 node_modules/moment/src/locale/ml.js create mode 100644 node_modules/moment/src/locale/mn.js create mode 100644 node_modules/moment/src/locale/mr.js create mode 100644 node_modules/moment/src/locale/ms-my.js create mode 100644 node_modules/moment/src/locale/ms.js create mode 100644 node_modules/moment/src/locale/mt.js create mode 100644 node_modules/moment/src/locale/my.js create mode 100644 node_modules/moment/src/locale/nb.js create mode 100644 node_modules/moment/src/locale/ne.js create mode 100644 node_modules/moment/src/locale/nl-be.js create mode 100644 node_modules/moment/src/locale/nl.js create mode 100644 node_modules/moment/src/locale/nn.js create mode 100644 node_modules/moment/src/locale/oc-lnc.js create mode 100644 node_modules/moment/src/locale/pa-in.js create mode 100644 node_modules/moment/src/locale/pl.js create mode 100644 node_modules/moment/src/locale/pt-br.js create mode 100644 node_modules/moment/src/locale/pt.js create mode 100644 node_modules/moment/src/locale/ro.js create mode 100644 node_modules/moment/src/locale/ru.js create mode 100644 node_modules/moment/src/locale/sd.js create mode 100644 node_modules/moment/src/locale/se.js create mode 100644 node_modules/moment/src/locale/si.js create mode 100644 node_modules/moment/src/locale/sk.js create mode 100644 node_modules/moment/src/locale/sl.js create mode 100644 node_modules/moment/src/locale/sq.js create mode 100644 node_modules/moment/src/locale/sr-cyrl.js create mode 100644 node_modules/moment/src/locale/sr.js create mode 100644 node_modules/moment/src/locale/ss.js create mode 100644 node_modules/moment/src/locale/sv.js create mode 100644 node_modules/moment/src/locale/sw.js create mode 100644 node_modules/moment/src/locale/ta.js create mode 100644 node_modules/moment/src/locale/te.js create mode 100644 node_modules/moment/src/locale/tet.js create mode 100644 node_modules/moment/src/locale/tg.js create mode 100644 node_modules/moment/src/locale/th.js create mode 100644 node_modules/moment/src/locale/tk.js create mode 100644 node_modules/moment/src/locale/tl-ph.js create mode 100644 node_modules/moment/src/locale/tlh.js create mode 100644 node_modules/moment/src/locale/tr.js create mode 100644 node_modules/moment/src/locale/tzl.js create mode 100644 node_modules/moment/src/locale/tzm-latn.js create mode 100644 node_modules/moment/src/locale/tzm.js create mode 100644 node_modules/moment/src/locale/ug-cn.js create mode 100644 node_modules/moment/src/locale/uk.js create mode 100644 node_modules/moment/src/locale/ur.js create mode 100644 node_modules/moment/src/locale/uz-latn.js create mode 100644 node_modules/moment/src/locale/uz.js create mode 100644 node_modules/moment/src/locale/vi.js create mode 100644 node_modules/moment/src/locale/x-pseudo.js create mode 100644 node_modules/moment/src/locale/yo.js create mode 100644 node_modules/moment/src/locale/zh-cn.js create mode 100644 node_modules/moment/src/locale/zh-hk.js create mode 100644 node_modules/moment/src/locale/zh-mo.js create mode 100644 node_modules/moment/src/locale/zh-tw.js create mode 100644 node_modules/moment/src/moment.js create mode 100644 node_modules/moment/ts3.1-typings/moment.d.ts create mode 100644 pages/gqzq/index.js create mode 100644 pages/homeIndx/index.vue create mode 100644 static/tabs/bigImg.png create mode 100644 static/tabs/chartcolumn@2x.png create mode 100644 static/tabs/fxdp.png create mode 100644 static/tabs/fxzb.png create mode 100644 static/tabs/guanli.png create mode 100644 static/tabs/my2_icon@2x.png create mode 100644 static/tabs/my_icon@2x.png create mode 100644 static/tabs/orangewarn.png create mode 100644 static/tabs/panelTitle.png create mode 100644 static/tabs/phone2_icon@2x.png create mode 100644 static/tabs/phone_icon@2x.png create mode 100644 static/tabs/shouye.png create mode 100644 static/tabs/spjk.png create mode 100644 static/tabs/user.png create mode 100644 static/tabs/water (1) 拷贝@2x.png create mode 100644 static/tabs/xinxi_icon@2x.png create mode 100644 static/tabs/ysgzq.png create mode 100644 static/tabs/头像_icon@2x.png create mode 100644 static/tabs/工情——icon@2x.png create mode 100644 static/tabs/形状 1@2x.png create mode 100644 static/tabs/首页@2x.png create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/homeIndx/index.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uview-ui/components/u-table/u-table.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uview-ui/components/u-td/u-td.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uview-ui/components/u-tr/u-tr.js.map create mode 100644 unpackage/dist/dev/mp-weixin/pages/homeIndx/index.js rename unpackage/dist/dev/mp-weixin/pages/{rain/rain.vue.json => homeIndx/index.json} (50%) create mode 100644 unpackage/dist/dev/mp-weixin/pages/homeIndx/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/homeIndx/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/bigImg.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/chartcolumn@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/fxdp.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/fxzb.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/guanli.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/my2_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/my_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/orangewarn.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/panelTitle.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/phone2_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/phone_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/shouye.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/spjk.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/user.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/water (1) 拷贝@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/xinxi_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/ysgzq.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/头像_icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/工情——icon@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/形状 1@2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/tabs/首页@2x.png delete mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-link/components/uni-link/uni-link.js delete mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-link/components/uni-link/uni-link.wxml delete mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-link/components/uni-link/uni-link.wxss rename unpackage/dist/dev/mp-weixin/{pages/rain/rain.vue.js => uni_modules/uview-ui/components/u-table/u-table.js} (100%) rename unpackage/dist/dev/mp-weixin/uni_modules/{uni-link/components/uni-link/uni-link.json => uview-ui/components/u-table/u-table.json} (100%) create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-table/u-table.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-table/u-table.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-td/u-td.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-td/u-td.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-td/u-td.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-td/u-td.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-tr/u-tr.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-tr/u-tr.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-tr/u-tr.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-ui/components/u-tr/u-tr.wxss diff --git a/main.js b/main.js index 106a708..4700608 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,3 @@ - // #ifndef VUE3 import Vue from 'vue' import uView from '@/uni_modules/uview-ui' @@ -7,36 +6,41 @@ import App from './App' import { $http } from '@escook/request-miniprogram' Vue.config.productionTip = false -uni.$http= $http -$http.baseUrl="http://local.gunshiiot.com:18083" +uni.$http = $http +$http.baseUrl = 'http://local.gunshiiot.com:18083' // 请求拦截器 -$http.beforeRequest=function(options){ - uni.showLoading({ - title:"数据加载中", - }) - if(options.url.indexOf('/my/') !==-1){ - options.header={ - Authorization:store.state.address.token - } - console.log(options.header); +$http.beforeRequest = function (options) { + uni.showLoading({ + title: '数据加载中' + }) + if (options.url.indexOf('/my/') !== -1) { + options.header = { + Authorization: store.state.address.token } + console.log(options.header) + } + if (options.url.indexOf('/getLoginInfo') !== -1) { + options.header = { + 'Gs-Token': '827C4B2AA67D4724B2677B0A708D5033' + } + } } // 响应拦截器 -$http.afterRequest=function(options){ +$http.afterRequest = function (options) { uni.hideLoading() } -uni.$showMsg=function(title='数据请求失败了',duration=1500){ +uni.$showMsg = function (title = '数据请求失败了', duration = 1500) { return uni.showToast({ title, duration, - icon:"none" + icon: 'none' }) } Vue.config.productionTip = false App.mpType = 'app' const app = new Vue({ - ...App + ...App }) app.$mount() // #endif @@ -44,10 +48,10 @@ app.$mount() // #ifdef VUE3 import { createSSRApp } from 'vue' import App from './App.vue' -export function createApp() { +export function createApp () { const app = createSSRApp(App) return { app } } -// #endif \ No newline at end of file +// #endif diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 3ac3db5..52a459f 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -7,6 +7,14 @@ "version": "0.2.1", "resolved": "https://registry.npmmirror.com/@escook/request-miniprogram/-/request-miniprogram-0.2.1.tgz", "integrity": "sha512-ueWV5YsaEm/ycQZuEjMiA88GFMhfBQSjy9GrP9omy4xAQajkGTbYIlnhzsDfWzRPmRC1fKmAiKMrCVcgS+SHcQ==" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } } } } diff --git a/node_modules/moment/CHANGELOG.md b/node_modules/moment/CHANGELOG.md new file mode 100644 index 0000000..90933d6 --- /dev/null +++ b/node_modules/moment/CHANGELOG.md @@ -0,0 +1,996 @@ +Changelog +========= + +### 2.30.1 +* Release Dec 27, 2023 +* Revert https://github.com/moment/moment/pull/5827, because it's breaking + a lot of TS code. + +### 2.30.0 [Full changelog](https://gist.github.com/ichernev/e277bcd1f0eeabb834f60a777237925a) +* Release Dec 26, 2023 + +### 2.29.4 + +* Release Jul 6, 2022 + * [#6015](https://github.com/moment/moment/pull/6015) [bugfix] Fix ReDoS in preprocessRFC2822 regex + +### 2.29.3 [Full changelog](https://gist.github.com/ichernev/edebd440f49adcaec72e5e77b791d8be) + +* Release Apr 17, 2022 + * [#5995](https://github.com/moment/moment/pull/5995) [bugfix] Remove const usage + * [#5990](https://github.com/moment/moment/pull/5990) misc: fix advisory link + + +### 2.29.2 [See full changelog](https://gist.github.com/ichernev/1904b564f6679d9aac1ae08ce13bc45c) + +* Release Apr 3 2022 + +Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4 + +### 2.29.1 [See full changelog](https://gist.github.com/marwahaha/cc478ba01a1292ab4bd4e861d164d99b) + +* Release Oct 6, 2020 + +Updated deprecation message, bugfix in hi locale + +### 2.29.0 [See full changelog](https://gist.github.com/marwahaha/b0111718641a6461800066549957ec14) + +* Release Sept 22, 2020 + +New locales (es-mx, bn-bd). +Minor bugfixes and locale improvements. +More tests. +Moment is in maintenance mode. Read more at this link: +https://momentjs.com/docs/#/-project-status/ + +### 2.28.0 [See full changelog](https://gist.github.com/marwahaha/028fd6c2b2470b2804857cfd63c0e94f) + +* Release Sept 13, 2020 + +Fix bug where .format() modifies original instance, and locale updates + +### 2.27.0 [See full changelog](https://gist.github.com/marwahaha/5100c9c2f42019067b1f6cefc333daa7) + +* Release June 18, 2020 + +Added Turkmen locale, other locale improvements, slight TypeScript fixes + +### 2.26.0 [See full changelog](https://gist.github.com/marwahaha/0725c40740560854a849b096ea7b7590) + +* Release May 19, 2020 + +TypeScript fixes and many locale improvements + +### 2.25.3 + +* Release May 4, 2020 + +Remove package.json module property. It looks like webpack behaves differently +for modules loaded via module vs jsnext:main. + +### 2.25.2 + +* Release May 4, 2020 + +This release includes ES Module bundled moment, separate from it's source code +under dist/ folder. This might alleviate issues with finding the `./locale +subfolder for loading locales. This might also mean now webpack will bundle all +locales automatically, unless told otherwise. + +### 2.25.1 + +* Release May 1, 2020 + +This is a quick patch release to address some of the issues raised after +releasing 2.25.0. + +* [2e268635](https://github.com/moment/moment/commit/2e268635) [misc] Revert #5269 due to webpack warning +* [226799e1](https://github.com/moment/moment/commit/226799e1) [locale] fil: Fix metadata comment +* [a83a521](https://github.com/moment/moment/commit/a83a521) [bugfix] Fix typeoff usages +* [e324334](https://github.com/moment/moment/commit/e324334) [pkg] Add ts3.1-typings in npm package +* [28cc23e](https://github.com/moment/moment/commit/28cc23e) [misc] Remove deleted generated locale en-SG + +### 2.25.0 [See full changelog](https://gist.github.com/ichernev/6148e64df2427e455b10ce6a18de1a65) + +* Release May 1, 2020 + +* [#4611](https://github.com/moment/moment/issues/4611) [022dc038](https://github.com/moment/moment/commit/022dc038) [feature] Support for strict string parsing, fixes [#2469](https://github.com/moment/moment/issues/2469) +* [#4599](https://github.com/moment/moment/issues/4599) [4b615b9d](https://github.com/moment/moment/commit/4b615b9d) [feature] Add support for eras in en and jp +* [#4296](https://github.com/moment/moment/issues/4296) [757d4ff8](https://github.com/moment/moment/commit/757d4ff8) [feature] Accept custom relative thresholds in duration.humanize + +* 18 bigfixes +* 36 locale fixes +* 5 new locales (oc-lnc, zh-mo, en-in, gom-deva, fil) + +### 2.24.0 [See full changelog](https://gist.github.com/marwahaha/12366fe45bee328f33acf125d4cd540e) + +* Release Jan 21, 2019 + +* [#4338](https://github.com/moment/moment/pull/4338) [bugfix] Fix startOf/endOf DST issues while boosting performance +* [#4553](https://github.com/moment/moment/pull/4553) [feature] Add localeSort param to Locale weekday methods +* [#4887](https://github.com/moment/moment/pull/4887) [bugfix] Make Duration#as work with quarters +* 3 new locales (it-ch, ga, en-SG) +* Lots of locale improvements + +### 2.23.0 [See full changelog](https://gist.github.com/marwahaha/eadb7ac11b761290399a576f8b2419a5) + +* Release Dec 12, 2018 + +* [#4863](https://github.com/moment/moment/pull/4863) [new locale] added Kurdish language (ku) +* [#4417](https://github.com/moment/moment/pull/4417) [bugfix] isBetween should return false for invalid dates +* [#4700](https://github.com/moment/moment/pull/4700) [bugfix] Fix [#4698](https://github.com/moment/moment/pull/4698): Use ISO WeekYear for HTML5_FMT.WEEK +* [#4563](https://github.com/moment/moment/pull/4563) [feature] Fix [#4518](https://github.com/moment/moment/pull/4518): Add support to add/subtract ISO weeks +* other locale changes, build process changes, typos + +### 2.22.2 [See full changelog](https://gist.github.com/marwahaha/4d992c13c2dbc0f59d4d8acae1dc6d3a) + +* Release May 31, 2018 + +* [#4564](https://github.com/moment/moment/pull/4564) [bugfix] Avoid using trim() +* [#4453](https://github.com/moment/moment/pull/4453) [bugfix] Treat periods as periods, not regex-anything period, for weekday parsing in strict mode. +* Minor locale improvements (pa-in, be, az) + +### 2.22.1 [See full changelog](https://gist.github.com/marwahaha/ff2cd13d0eda08afb7a237b10aae558c) + +* Release Apr 14, 2018 + +* [#4495](https://github.com/moment/moment/pull/4495) [bugfix] Added HTML5_FMT to moment.d.ts +* Minor locale improvements +* QUnit upgrade and coveralls reporting + +### 2.22.0 [See full changelog](https://gist.github.com/marwahaha/ae895025dac3f0641fa9ec2e36d282bb) + +* Release Mar 30, 2018 + +* [#4423](https://github.com/moment/moment/pull/4423) [new locale] Added Mongolian locale mn +* Various locale improvements +* Minor misc changes + +### 2.21.0 [See full changelog](https://gist.github.com/marwahaha/80d19ef882b71df1948df7865efdd40e) + +* Release Mar 2, 2018 + +* [#4391](https://github.com/moment/moment/pull/4391) [bugfix] Fix [#4390](https://github.com/moment/moment/pull/4390): use offset properly in toISOString +* [#4310](https://github.com/moment/moment/pull/4310) [bugfix] Fix [#3883](https://github.com/moment/moment/pull/3883) lazy load parentLocale in defineLocale, fallback to global if missing +* [#4085](https://github.com/moment/moment/pull/4085) [misc] Print console warning when setting non-existent locales +* [#4371](https://github.com/moment/moment/pull/4371) [misc] fix deprecated rollup options +* New locales: ug-cn, en-il, tg +* Various locale improvements + +### 2.20.1 [See changelog](https://gist.github.com/marwahaha/d72c1cb22076373be889b16272cbd187) + +* Release Dec 18, 2017 + +* [#4359](https://github.com/moment/moment/pull/4359) [locale] Fix Arabic locale for months (again) +* [#4357](https://github.com/moment/moment/pull/4357) [misc] Add optional parameter keepOffset to toISOString + +### 2.20.0 [See full changelog](https://gist.github.com/marwahaha/e0d4135fbf8bb75fa85c4aa2bddc5031) + +* Release Dec 16, 2017 + +* [#4312](https://github.com/moment/moment/pull/4312) [bugfix] Fix [#4251](https://github.com/moment/moment/pull/4251): Avoid RFC2822 in utc() test +* [#4240](https://github.com/moment/moment/pull/4240) [bugfix] Fix incorrect strict parsing with full-width parentheses +* [#4341](https://github.com/moment/moment/pull/4341) [feature] Prevent toISOString converting to UTC (issue [#1751](https://github.com/moment/moment/pull/1751)) +* [#4154](https://github.com/moment/moment/pull/4154) [feature] add format constants to support output to HTML5 input type formats (see [#3928](https://github.com/moment/moment/pull/3928)) +* [#4143](https://github.com/moment/moment/pull/4143) [new locale] mt: Maltese language +* [#4183](https://github.com/moment/moment/pull/4183) [locale] Relative seconds i18n +* Various other locale improvements + +### 2.19.4 [See changelog](https://gist.github.com/marwahaha/d3b7b0ddf4bdae512244f16e8cc59efb) + +* Release Dec 10, 2017 + +* [#4332](https://github.com/moment/moment/pull/4332) [bugfix] Fix weekday verification for UTC and offset days (fixes [#4227](https://github.com/moment/moment/pull/4227)) +* [#4336](https://github.com/moment/moment/pull/4336) [bugfix] Fix [#4334](https://github.com/moment/moment/pull/4334): Remove unused function call argument +* [#4246](https://github.com/moment/moment/pull/4246) [misc] Add 'ss' relative time key to typescript definition + +### 2.19.3 [See changelog](https://gist.github.com/marwahaha/3654006bc0c2e522451c08d12c0bfabf) + +* Release Nov 29, 2017 + +* [#4326](https://github.com/moment/moment/pull/4326) [bugfix] Fix for ReDOS vulnerability (see [#4163](https://github.com/moment/moment/issues/4163)) +* [#4289](https://github.com/moment/moment/pull/4289) [misc] Fix spelling and formatting for U.S. for es-us + +### 2.19.2 [See changelog (it's the same >:D)](https://gist.github.com/ichernev/76b1a3f33d3a8ff9665ce434a45221d0) + +* Release Nov 11, 2017 + +* [#4255](https://github.com/moment/moment/pull/4255) [bugfix] Fix year setter for random days in a leap year, fixes [#4238](https://github.com/moment/moment/issues/4238) +* [#4242](https://github.com/moment/moment/pull/4242) [bugfix] updateLocale now tries to load parent, fixes [#3626](https://github.com/moment/moment/issues/3626) + +### 2.19.1 + +* Release Oct 11, 2017 + +Make react native and webpack both work +* #4225 #4226 #4232 + +### 2.19.0 [See full changelog](https://gist.github.com/ichernev/5f3f4eb02761b4f765a0cccf02cec603) + +* Release Oct 10, 2017 + +## Fix React Native 0.49+ crash +* [#4213](https://github.com/moment/moment/pull/4213) [critical] Rename dynamic + require to avoid React Native crash +* [#4214](https://github.com/moment/moment/pull/4214) [fixup] Move require + rename inside try/catch, fixes + [#4213](https://github.com/moment/moment/issues/4213) + +## Features + +* [#3735](https://github.com/moment/moment/pull/3735) [feature] Ignore NaN values in setters +* [#4106](https://github.com/moment/moment/pull/4106) [fixup] Drop isNumeric utility fn, fixes [#3735](https://github.com/moment/moment/issues/3735) +* [#4080](https://github.com/moment/moment/pull/4080) [feature] Implement a clone method for durations, fixes [#4078](https://github.com/moment/moment/issues/4078) +* [#4215](https://github.com/moment/moment/pull/4215) [misc] TS: Add duration.clone(), for [#4080](https://github.com/moment/moment/issues/4080) + +## Packaging + +* [#4003](https://github.com/moment/moment/pull/4003) [pkg] bower: Remove tests from package +* [#3904](https://github.com/moment/moment/pull/3904) [pkg] jsnext:main -> module in package.json +* [#4060](https://github.com/moment/moment/pull/4060) [pkg] Account for new rollup interface + +Bugfixes, new locales, locale fixes etc... + +### 2.18.1 + +* Release Mar 22, 2017 + +* [#3853](https://github.com/moment/moment/pull/3853) [misc] Fix invalid whitespace character causing inability to parse + moment.js + +### 2.18.0 [See full changelog](https://gist.github.com/ichernev/78920c5a1e419fb28c6e4546d1b7235c) + +* Release Mar 18, 2017 + +## Features + +* [#3708](https://github.com/moment/moment/pull/3708) [feature] RFC2822 parsing +* [#3611](https://github.com/moment/moment/pull/3611) [feature] Durations gain validity +* [#3738](https://github.com/moment/moment/pull/3738) [feature] Enable relative time for multiple seconds, request [#2558](https://github.com/moment/moment/issues/2558) +* [#3766](https://github.com/moment/moment/pull/3766) [feature] Add support for k and kk format parsing + +## Bugfixes + +* [#3643](https://github.com/moment/moment/pull/3643) [bugfix] Fixes [#3520](https://github.com/moment/moment/issues/3520), parseZone incorrectly handled minutes under 16 +* [#3710](https://github.com/moment/moment/pull/3710) [bugfix] Fixes [#3632](https://github.com/moment/moment/issues/3632), toISOString returns null for invalid date +* [#3787](https://github.com/moment/moment/pull/3787) [bugfix] Fixes [#3717](https://github.com/moment/moment/issues/3717), ensure day-of-year is non-zero +* [#3780](https://github.com/moment/moment/pull/3780) [bugfix] Fixes [#3765](https://github.com/moment/moment/issues/3765): Ensure year 0 is formatted with YYYY +* [#3806](https://github.com/moment/moment/pull/3806) [bugfix] Fixes [#3805](https://github.com/moment/moment/issues/3805), fix locale month getters for standalone/format cases + +7 new locales, many locale improvements and some misc changes + +### 2.17.1 [Also available here](https://gist.github.com/ichernev/f38280b2b29c4932914a6d3a4e50bfb2) +* Release Dec 03, 2016 + +* [#3638](https://github.com/moment/moment/pull/3638) [misc] TS: Make typescript definitions work with 1.x +* [#3628](https://github.com/moment/moment/pull/3628) [misc] Adds "sign CLA" link to `CONTRIBUTING.md` +* [#3640](https://github.com/moment/moment/pull/3640) [misc] Fix locale issues + +### 2.17.0 [Also available here](https://gist.github.com/ichernev/ed58f76fb95205eeac653d719972b90c) +* Release Nov 22, 2016 + +* [#3435](https://github.com/moment/moment/pull/3435) [new locale] yo: Yoruba (Nigeria) locale +* [#3595](https://github.com/moment/moment/pull/3595) [bugfix] Fix accidental reference to global "value" variable +* [#3506](https://github.com/moment/moment/pull/3506) [bugfix] Fix invalid moments returning valid dates to method calls +* [#3563](https://github.com/moment/moment/pull/3563) [locale] ca: Change future relative time +* [#3504](https://github.com/moment/moment/pull/3504) [tests] Fixes [#3463](https://github.com/moment/moment/issues/3463), parseZone not handling Z correctly (tests only) +* [#3591](https://github.com/moment/moment/pull/3591) [misc] typescript: update typescript to 2.0.8, add strictNullChecks=true +* [#3597](https://github.com/moment/moment/pull/3597) [misc] Fixed capitalization in nuget spec + +### 2.16.0 [See full changelog](https://gist.github.com/ichernev/17bffc1005a032cb1a8ac4c1558b4994) +* Release Nov 9, 2016 + +## Features +* [#3530](https://github.com/moment/moment/pull/3530) [feature] Check whether input is date before checking if format is array +* [#3515](https://github.com/moment/moment/pull/3515) [feature] Fix [#2300](https://github.com/moment/moment/issues/2300): Default to current week. + +## Bugfixes +* [#3546](https://github.com/moment/moment/pull/3546) [bugfix] Implement lazy-loading of child locales with missing prents +* [#3523](https://github.com/moment/moment/pull/3523) [bugfix] parseZone should handle UTC +* [#3502](https://github.com/moment/moment/pull/3502) [bugfix] Fix [#3500](https://github.com/moment/moment/issues/3500): ISO 8601 parsing should match the full string, not the beginning of the string. +* [#3581](https://github.com/moment/moment/pull/3581) [bugfix] Fix parseZone, redo [#3504](https://github.com/moment/moment/issues/3504), fix [#3463](https://github.com/moment/moment/issues/3463) + +## New Locales +* [#3416](https://github.com/moment/moment/pull/3416) [new locale] nl-be: Dutch (Belgium) locale +* [#3393](https://github.com/moment/moment/pull/3393) [new locale] ar-dz: Arabic (Algeria) locale +* [#3342](https://github.com/moment/moment/pull/3342) [new locale] tet: Tetun Dili (East Timor) locale + +And more locale, build and typescript improvements + +### 2.15.2 +* Release Oct 23, 2016 +* [#3525](https://github.com/moment/moment/pull/3525) Speedup month standalone/format regexes **(IMPORTANT)** +* [#3466](https://github.com/moment/moment/pull/3466) Fix typo of Javanese + +### 2.15.1 +* Release Sept 20, 2016 +* [#3438](https://github.com/moment/moment/pull/3438) Fix locale autoload, revert [#3344](https://github.com/moment/moment/pull/3344) + +### 2.15.0 [See full changelog](https://gist.github.com/ichernev/10e1c5bf647545c72ca30e9628a09ed3) +- Release Sept 12, 2016 + +## New Locales +* [#3255](https://github.com/moment/moment/pull/3255) [new locale] mi: Maori language +* [#3267](https://github.com/moment/moment/pull/3267) [new locale] ar-ly: Arabic (Libya) locale +* [#3333](https://github.com/moment/moment/pull/3333) [new locale] zh-hk: Chinese (Hong Kong) locale + +## Bugfixes +* [#3276](https://github.com/moment/moment/pull/3276) [bugfix] duration: parser: Support ms durations in .NET syntax +* [#3312](https://github.com/moment/moment/pull/3312) [bugfix] locales: Enable locale-data getters without moment (fixes [#3284](https://github.com/moment/moment/issues/3284)) +* [#3381](https://github.com/moment/moment/pull/3381) [bugfix] parsing: Fix parseZone without timezone in string, fixes [#3083](https://github.com/moment/moment/issues/3083) +* [#3383](https://github.com/moment/moment/pull/3383) [bugfix] toJSON: Fix isValid so that toJSON works after a moment is frozen +* [#3427](https://github.com/moment/moment/pull/3427) [bugfix] ie8: Fix IE8 (regression in 2.14.x) + +## Packaging +* [#3299](https://github.com/moment/moment/pull/3299) [pkg] npm: Do not include .npmignore in npm package +* [#3273](https://github.com/moment/moment/pull/3273) [pkg] jspm: Include moment.d.ts file in package +* [#3344](https://github.com/moment/moment/pull/3344) [pkg] exports: use module.require for nodejs + +Also some locale and typescript improvements + +### 2.14.1 +- Release July 20, 2016 +* [#3280](https://github.com/moment/moment/pull/3280) Fix typescript definitions + + +### 2.14.0 [See full changelog](https://gist.github.com/ichernev/812e79ac36a7829a22598fe964bfc18a) + +- Release July 20, 2016 + +## New Features +* [#3233](https://github.com/moment/moment/pull/3233) Introduce month.isFormat for format/standalone discovery +* [#2848](https://github.com/moment/moment/pull/2848) Allow user to get/set the rounding method used when calculating relative time +* [#3112](https://github.com/moment/moment/pull/3112) optimize configFromStringAndFormat +* [#3147](https://github.com/moment/moment/pull/3147) Call calendar format function with moment context +* [#3160](https://github.com/moment/moment/pull/3160) deprecate isDSTShifted +* [#3175](https://github.com/moment/moment/pull/3175) make moment calendar extensible with ad-hoc options +* [#3191](https://github.com/moment/moment/pull/3191) toDate returns a copy of the internal date object +* [#3192](https://github.com/moment/moment/pull/3192) Adding support for rollup import. +* [#3238](https://github.com/moment/moment/pull/3238) Handle empty object and empty array for creation as now +* [#3082](https://github.com/moment/moment/pull/3082) Use relative AMD moment dependency + +## Bugfixes +* [#3241](https://github.com/moment/moment/pull/3241) Escape all 24 mixed pieces, not only first 12 in computeMonthsParse +* [#3008](https://github.com/moment/moment/pull/3008) Object setter orders sets based on size of unit +* [#3177](https://github.com/moment/moment/pull/3177) Bug Fix [#2704](https://github.com/moment/moment/pull/2704) - isoWeekday(String) inconsistent with isoWeekday(Number) +* [#3230](https://github.com/moment/moment/pull/3230) fix passing date with format string to ignore format string +* [#3232](https://github.com/moment/moment/pull/3232) Fix negative 0 in certain diff cases +* [#3235](https://github.com/moment/moment/pull/3235) Use proper locale inheritance for the base locale, fixes [#3137](https://github.com/moment/moment/pull/3137) + +Plus es-do locale and locale bugfixes + +### 2.13.0 [See full changelog](https://gist.github.com/ichernev/0132fcf5b61f7fc140b0bb0090480d49) +- Release April 18, 2016 + +## Enhancements: +* [#2982](https://github.com/moment/moment/pull/2982) Add 'date' as alias to 'day' for startOf() and endOf(). +* [#2955](https://github.com/moment/moment/pull/2955) Add parsing negative components in durations when ISO 8601 +* [#2991](https://github.com/moment/moment/pull/2991) isBetween support for both open and closed intervals +* [#3105](https://github.com/moment/moment/pull/3105) Add localeSorted argument to weekday listers +* [#3102](https://github.com/moment/moment/pull/3102) Add k and kk formatting tokens + +## Bugfixes +* [#3109](https://github.com/moment/moment/pull/3109) Fix [#1756](https://github.com/moment/moment/issues/1756) Resolved thread-safe issue on server side. +* [#3078](https://github.com/moment/moment/pull/3078) Fix parsing for months/weekdays with weird characters +* [#3098](https://github.com/moment/moment/pull/3098) Use Z suffix when in UTC mode ([#3020](https://github.com/moment/moment/issues/3020)) +* [#2995](https://github.com/moment/moment/pull/2995) Fix floating point rounding errors in durations +* [#3059](https://github.com/moment/moment/pull/3059) fix bug where diff returns -0 in month-related diffs +* [#3045](https://github.com/moment/moment/pull/3045) Fix mistaking any input for 'a' token +* [#2877](https://github.com/moment/moment/pull/2877) Use explicit .valueOf() calls instead of coercion +* [#3036](https://github.com/moment/moment/pull/3036) Year setter should keep time when DST changes + +Plus 3 new locales and locale fixes. + +### 2.12.0 [See full changelog](https://gist.github.com/ichernev/6e5bfdf8d6522fc4ac73) + +- Release March 7, 2016 + +## Enhancements: +* [#2932](https://github.com/moment/moment/pull/2932) List loaded locales +* [#2818](https://github.com/moment/moment/pull/2818) Parse ISO-8061 duration containing both day and week values +* [#2774](https://github.com/moment/moment/pull/2774) Implement locale inheritance and locale updating + +## Bugfixes: +* [#2970](https://github.com/moment/moment/pull/2970) change add subtract to handle decimal values by rounding +* [#2887](https://github.com/moment/moment/pull/2887) Fix toJSON casting of invalid moment +* [#2897](https://github.com/moment/moment/pull/2897) parse string arguments for month() correctly, closes #2884 +* [#2946](https://github.com/moment/moment/pull/2946) Fix usage suggestions for min and max + +## New locales: +* [#2917](https://github.com/moment/moment/pull/2917) Locale Punjabi(Gurmukhi) India format conversion + +And more + +### 2.11.2 (Fix ReDoS attack vector) + +- Release February 7, 2016 + +* [#2939](https://github.com/moment/moment/pull/2939) use full-string match to speed up aspnet regex match + +### 2.11.1 [See full changelog](https://gist.github.com/ichernev/8ec3ee25b749b4cff3c2) + +- Release January 9, 2016 + +## Bugfixes: +* [#2881](https://github.com/moment/moment/pull/2881) Revert "Merge pull request #2746 from mbad0la:develop" Sep->Sept +* [#2868](https://github.com/moment/moment/pull/2868) Add format and parse token Y, so it actually works +* [#2865](https://github.com/moment/moment/pull/2865) Use typeof checks for undefined for global variables +* [#2858](https://github.com/moment/moment/pull/2858) Fix Date mocking regression introduced in 2.11.0 +* [#2864](https://github.com/moment/moment/pull/2864) Include changelog in npm release +* [#2830](https://github.com/moment/moment/pull/2830) dep: add grunt-cli +* [#2869](https://github.com/moment/moment/pull/2869) Fix months parsing for some locales + +### 2.11.0 [See full changelog](https://gist.github.com/ichernev/6594bc29719dde6b2f66) + +- Release January 4, 2016 + +* [#2624](https://github.com/moment/moment/pull/2624) Proper handling of invalid moments +* [#2634](https://github.com/moment/moment/pull/2634) Fix strict month parsing issue in cs,ru,sk +* [#2735](https://github.com/moment/moment/pull/2735) Reset the locale back to 'en' after defining all locales in min/locales.js +* [#2702](https://github.com/moment/moment/pull/2702) Week rework +* [#2746](https://github.com/moment/moment/pull/2746) Changed September Abbreviation to "Sept" in locale-specific english + files and default locale file +* [#2646](https://github.com/moment/moment/pull/2646) Fix [#2645](https://github.com/moment/moment/pull/2645) - invalid dates pre-1970 + +* [#2641](https://github.com/moment/moment/pull/2641) Implement basic format and comma as ms separator in ISO 8601 +* [#2665](https://github.com/moment/moment/pull/2665) Implement stricter weekday parsing +* [#2700](https://github.com/moment/moment/pull/2700) Add [Hh]mm and [Hh]mmss formatting tokens, so you can parse 123 with + hmm for example +* [#2565](https://github.com/moment/moment/pull/2565) [#2835](https://github.com/moment/moment/pull/2835) Expose arguments used for moment creation with creationData + (fix [#2443](https://github.com/moment/moment/pull/2443)) +* [#2648](https://github.com/moment/moment/pull/2648) fix issue [#2640](https://github.com/moment/moment/pull/2640): support instanceof operator +* [#2709](https://github.com/moment/moment/pull/2709) Add isSameOrAfter and isSameOrBefore comparison methods +* [#2721](https://github.com/moment/moment/pull/2721) Fix moment creation from object with strings values +* [#2740](https://github.com/moment/moment/pull/2740) Enable 'd hh:mm:ss.sss' format for durations +* [#2766](https://github.com/moment/moment/pull/2766) [#2833](https://github.com/moment/moment/pull/2833) Alternate Clock Source Support + +### 2.10.6 + +- Release July 28, 2015 + +[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced +in `2.10.5` related to `moment.ISO_8601` parsing. + +### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2) + +- Release July 26, 2015 + +Important changes: +* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates + this fixes day to year conversions to work around end-of-year (~365 days). As + a side effect 365 days is 11 months and 30 days, and 366 days is one year. +* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results + Return invalid result if any of the inputs is invalid +* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format + This brings the benefits of YY to YYYY +* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement + + +### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f) + +- Release May 13, 2015 + +* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`) +* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja)) +* performance improvements + +### 2.10.2 + +- Release April 9, 2015 + +* fixed moment-with-locales in browser env caused by esperanto change + +### 2.10.1 + +* regression: Add moment.duration.fn back + +### 2.10.0 + +Ported code to es6 modules. + +### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +- Release January 8, 2015 + +languages: +* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test +* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale + +deprecations: +* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `moment.fn.zone` + +features: +* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween +* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in + moment-timezone) +* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method +* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration +* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units +* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters +* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +- Release November 19, 2014 + +Features: + +* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds +* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938 +* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight. +* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object +* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +### 2.8.3 + +- Release September 5, 2014 + +Bugfixes: + +* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic +* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration +* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 +* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech +* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions +* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds +* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same +* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs +* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array +* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) +* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) + +### 2.8.2 + +- Release August 22, 2014 + +Minor bugfixes: + +* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty` + instead of `obj.hasOwnProperty` (ie8 bug) +* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()` +* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian +* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek +* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de +* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement + +### 2.8.1 + +- Release August 1, 2014 + +* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility + +### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4) + +- Release July 31, 2014 + +* incompatible changes + * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation + * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway) + * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk. + +* deprecations (old behavior will be dropped in 3.0) + * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales + * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead. + * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention. + +* new locales + * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo) + * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af) + * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my) + * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be) + +* bugfixes, locale bugfixes, performance improvements, features + +### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7) + +- Release June 12, 2014 + +* new languages + + * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn) + * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az) + * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa) + * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at) + +* features + + * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds + * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar + * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format + * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods + * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract + * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager) + +* bugfixes + +### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682) + +- Release April 12 , 2014 + +* languages + * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr) + * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km) + +* features + * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST + * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear + * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing + * [#1499](https://github.com/moment/moment/issues/1499) composer support + * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future + * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten + * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment + * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway) + * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing + +* 18 bugs fixed + +### 2.5.1 + +- Release January 22, 2014 + +* languages + * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am) + +* bugfixes + * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation + * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh + * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching + * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning + * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing + * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats + * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan + +* testing + * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis + +### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451) + +- Release Dec 24, 2013 + +* New languages + * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247) + * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319) + * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324) + * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337) + +* Features + * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q` + * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196)) + * 0d30bb7 add jspm support + * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing + * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean + +* 22 bugfixes + +### 2.4.0 + +- Release Oct 27, 2013 + +* **Deprecate** globally exported moment, will be removed in next major +* New languages + * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206) + * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197) + * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215) +* Bugfixes + * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187) + * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076) + * fix language tests [#1177](https://github.com/moment/moment/issues/1177) + * remove some failing tests (that should have never existed :)) + [#1185](https://github.com/moment/moment/issues/1185) + [#1183](https://github.com/moment/moment/issues/1183) + * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195) + +### 2.3.1 + +- Release Oct 9, 2013 + +Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171). + +### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354) + +- Release Oct 7, 2013 + +Changed isValid, added strict parsing. +Week tokens parsing. + +### 2.2.1 + +- Release Sep 12, 2013 + +Fixed bug in string prototype test. +Updated authors and contributors. + +### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4) + +- Release Sep 11, 2013 + +Added bower support. + +Language files now use UMD. + +Creating moment defaults to current date/month/year. + +Added a bundle of moment and all language files. + +### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5) + +- Release Jul 8, 2013 + +Added better week support. + +Added ability to set offset with `moment#zone`. + +Added ability to set month or weekday from a string. + +Added `moment#min` and `moment#max` + +### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51) + +- Release Feb 9, 2013 + +Added short form localized tokens. + +Added ability to define language a string should be parsed in. + +Added support for reversed add/subtract arguments. + +Added support for `endOf('week')` and `startOf('week')`. + +Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')` + +`moment#diff` now floors instead of rounds. + +Normalized `moment#toString`. + +Added `isSame`, `isAfter`, and `isBefore` methods. + +Added better week support. + +Added `moment#toJSON` + +Bugfix: Fixed parsing of first century dates + +Bugfix: Parsing 10Sep2001 should work as expected + +Bugfix: Fixed weirdness with `moment.utc()` parsing. + +Changed language ordinal method to return the number + ordinal instead of just the ordinal. + +Changed two digit year parsing cutoff to match strptime. + +Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + +Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + +Removed the lang data objects from the top level namespace. + +Duplicate `Date` passed to `moment()` instead of referencing it. + +### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456) + +- Release Oct 2, 2012 + +Bugfixes + +### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384) + +- Release Oct 1, 2012 + +Bugfixes + +### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288) + +- Release Jul 26, 2012 + +Added `moment.fn.endOf()` and `moment.fn.startOf()`. + +Added validation via `moment.fn.isValid()`. + +Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions + +Add support for month/weekday callbacks in `moment.fn.format()` + +Added instance specific languages. + +Added two letter weekday abbreviations with the formatting token `dd`. + +Various language updates. + +Various bugfixes. + +### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268) + +- Release Apr 26, 2012 + +Added Durations. + +Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD). + +Added support for millisecond parsing and formatting tokens (S SS SSS) + +Added a getter for `moment.lang()` + +Various bugfixes. + +There are a few things deprecated in the 1.6.0 release. + +1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background. + +2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances. + +3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222). + +### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed) + +- Release Mar 20, 2012 + +Added UTC mode. + +Added automatic ISO8601 parsing. + +Various bugfixes. + +### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed) + +- Release Feb 4, 2012 + +Added `moment.fn.toDate` as a replacement for `moment.fn.native`. + +Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day. + +Various bugfixes. + +### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed) + +- Release Jan 5, 2012 + +Added support for parsing month names in the current language. + +Added escape blocks for parsing tokens. + +Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'. + +Added `moment.fn.day` as a setter. + +Various bugfixes + +### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed) + +- Release Dec 7, 2011 + +Added timezones to parser and formatter. + +Added `moment.fn.isDST`. + +Added `moment.fn.zone` to get the timezone offset in minutes. + +### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed) + +- Release Nov 18, 2011 + +Various bugfixes + +### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed) + +- Release Nov 12, 2011 + +Added time specific diffs (months, days, hours, etc) + +### 1.1.0 + +- Release Oct 28, 2011 + +Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29) + +Fixed [issue 31](https://github.com/timrwood/moment/pull/31). + +### 1.0.1 + +- Release Oct 18, 2011 + +Added `moment.version` to get the current version. + +Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25) + +### 1.0.0 + +- Release + +Added convenience methods for getting and setting date parts. + +Added better support for `moment.add()`. + +Added better lang support in NodeJS. + +Renamed library from underscore.date to Moment.js + +### 0.6.1 + +- Release Oct 12, 2011 + +Added Portuguese, Italian, and French language support + +### 0.6.0 + +- Release Sep 21, 2011 + +Added _date.lang() support. +Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]); +Made parse from string and single format 25% faster. + +### 0.5.2 + +- Release Jul 11, 2011 + +Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9). + +### 0.5.1 + +- Release Jun 17, 2011 + +Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5). + +### 0.5.0 + +- Release Jun 13, 2011 + +Dropped the redundant `_date.date()` in favor of `_date()`. +Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters. +Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead. +Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function. + +### 0.4.1 + +- Release May 9, 2011 + +Added date input formats for input strings. + +### 0.4.0 + +- Release May 9, 2011 + +Added underscore.date to npm. Removed dependencies on underscore. + +### 0.3.2 + +- Release Apr 9, 2011 + +Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes. + +### 0.3.1 + +- Release Mar 25, 2011 + +Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object. + +### 0.3.0 + +- Release Mar 25, 2011 + +Switched to the Underscore methodology of not mucking with the native objects' prototypes. +Made chaining possible. + +### 0.2.1 + +- Release + +Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'. +Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`. + +### 0.2.0 + +- Release + +Changed function names to be more concise. +Changed date format from php date format to custom format. + +### 0.1.0 + +- Release + +Initial release + diff --git a/node_modules/moment/LICENSE b/node_modules/moment/LICENSE new file mode 100644 index 0000000..8618b73 --- /dev/null +++ b/node_modules/moment/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/moment/README.md b/node_modules/moment/README.md new file mode 100644 index 0000000..38e61bb --- /dev/null +++ b/node_modules/moment/README.md @@ -0,0 +1,55 @@ +# [Moment.js](http://momentjs.com/) + +[![NPM version][npm-version-image]][npm-url] +[![NPM downloads][npm-downloads-image]][npm-downloads-url] +[![MIT License][license-image]][license-url] +[![Build Status][travis-image]][travis-url] +[![Coverage Status][coveralls-image]][coveralls-url] +[![FOSSA Status][fossa-badge-image]][fossa-badge-url] +[![SemVer compatibility][semver-image]][semver-url] + +A JavaScript date library for parsing, validating, manipulating, and formatting dates. + +## Project Status + +Moment.js is a legacy project, now in maintenance mode. In most cases, you should choose a different library. + +For more details and recommendations, please see [Project Status](https://momentjs.com/docs/#/-project-status/) in the docs. + +*Thank you.* + +## Resources + +- [Documentation](https://momentjs.com/docs/) +- [Changelog](CHANGELOG.md) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/momentjs) + +## License + +Moment.js is freely distributable under the terms of the [MIT license][license-url]. + +[![FOSSA Status][fossa-large-image]][fossa-large-url] + +[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat +[license-url]: LICENSE + +[npm-url]: https://npmjs.org/package/moment +[npm-version-image]: https://img.shields.io/npm/v/moment.svg?style=flat + +[npm-downloads-image]: https://img.shields.io/npm/dm/moment.svg?style=flat +[npm-downloads-url]: https://npmcharts.com/compare/moment?minimal=true + +[travis-url]: https://travis-ci.org/moment/moment +[travis-image]: https://img.shields.io/travis/moment/moment/develop.svg?style=flat + +[coveralls-image]: https://coveralls.io/repos/moment/moment/badge.svg?branch=develop +[coveralls-url]: https://coveralls.io/r/moment/moment?branch=develop + +[fossa-badge-image]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment.svg?type=shield +[fossa-badge-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment?ref=badge_shield + +[fossa-large-image]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment.svg?type=large +[fossa-large-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment?ref=badge_large + +[semver-image]: https://api.dependabot.com/badges/compatibility_score?dependency-name=moment&package-manager=npm_and_yarn&version-scheme=semver +[semver-url]: https://dependabot.com/compatibility-score.html?dependency-name=moment&package-manager=npm_and_yarn&version-scheme=semver diff --git a/node_modules/moment/dist/locale/af.js b/node_modules/moment/dist/locale/af.js new file mode 100644 index 0000000..374d853 --- /dev/null +++ b/node_modules/moment/dist/locale/af.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +import moment from '../moment'; + +export default moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-dz.js b/node_modules/moment/dist/locale/ar-dz.js new file mode 100644 index 0000000..61a41e7 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-dz.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +import moment from '../moment'; + +var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-kw.js b/node_modules/moment/dist/locale/ar-kw.js new file mode 100644 index 0000000..c2b0f87 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-kw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +import moment from '../moment'; + +export default moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-ly.js b/node_modules/moment/dist/locale/ar-ly.js new file mode 100644 index 0000000..88d5ef5 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-ly.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +import moment from '../moment'; + +var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-ma.js b/node_modules/moment/dist/locale/ar-ma.js new file mode 100644 index 0000000..4010aa0 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-ma.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-ps.js b/node_modules/moment/dist/locale/ar-ps.js new file mode 100644 index 0000000..143da7d --- /dev/null +++ b/node_modules/moment/dist/locale/ar-ps.js @@ -0,0 +1,112 @@ +//! moment.js locale configuration +//! locale : Arabic (Palestine) [ar-ps] +//! author : Majd Al-Shihabi : https://github.com/majdal + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + +export default moment.defineLocale('ar-ps', { + months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split( + '_' + ), + monthsShort: + 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .split('') // reversed since negative lookbehind not supported everywhere + .reverse() + .join('') + .replace(/[١٢](?![\u062a\u0643])/g, function (match) { + return numberMap[match]; + }) + .split('') + .reverse() + .join('') + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-sa.js b/node_modules/moment/dist/locale/ar-sa.js new file mode 100644 index 0000000..4505ea1 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-sa.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + +export default moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-tn.js b/node_modules/moment/dist/locale/ar-tn.js new file mode 100644 index 0000000..0f416ae --- /dev/null +++ b/node_modules/moment/dist/locale/ar-tn.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +import moment from '../moment'; + +export default moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar.js b/node_modules/moment/dist/locale/ar.js new file mode 100644 index 0000000..846e491 --- /dev/null +++ b/node_modules/moment/dist/locale/ar.js @@ -0,0 +1,189 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/az.js b/node_modules/moment/dist/locale/az.js new file mode 100644 index 0000000..2e06aa1 --- /dev/null +++ b/node_modules/moment/dist/locale/az.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +import moment from '../moment'; + +var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', +}; + +export default moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/be.js b/node_modules/moment/dist/locale/be.js new file mode 100644 index 0000000..39e97a2 --- /dev/null +++ b/node_modules/moment/dist/locale/be.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } +} + +export default moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bg.js b/node_modules/moment/dist/locale/bg.js new file mode 100644 index 0000000..e8b060f --- /dev/null +++ b/node_modules/moment/dist/locale/bg.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +import moment from '../moment'; + +export default moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bm.js b/node_modules/moment/dist/locale/bm.js new file mode 100644 index 0000000..037d018 --- /dev/null +++ b/node_modules/moment/dist/locale/bm.js @@ -0,0 +1,52 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment +// Language contact person : Abdoufata Kane : https://github.com/abdoufata + +import moment from '../moment'; + +export default moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bn-bd.js b/node_modules/moment/dist/locale/bn-bd.js new file mode 100644 index 0000000..054f44f --- /dev/null +++ b/node_modules/moment/dist/locale/bn-bd.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +import moment from '../moment'; + +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + +export default moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bn.js b/node_modules/moment/dist/locale/bn.js new file mode 100644 index 0000000..14ba050 --- /dev/null +++ b/node_modules/moment/dist/locale/bn.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +import moment from '../moment'; + +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + +export default moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bo.js b/node_modules/moment/dist/locale/bo.js new file mode 100644 index 0000000..4fbca2e --- /dev/null +++ b/node_modules/moment/dist/locale/bo.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +import moment from '../moment'; + +var symbolMap = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + +export default moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/br.js b/node_modules/moment/dist/locale/br.js new file mode 100644 index 0000000..a7dda49 --- /dev/null +++ b/node_modules/moment/dist/locale/br.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +import moment from '../moment'; + +function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); +} +function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } +} +function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; +} +function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; +} +function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); +} + +var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + +export default moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, +}); diff --git a/node_modules/moment/dist/locale/bs.js b/node_modules/moment/dist/locale/bs.js new file mode 100644 index 0000000..5235fe9 --- /dev/null +++ b/node_modules/moment/dist/locale/bs.js @@ -0,0 +1,160 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! author : Rasid Redzic : https://github.com/rasidre +//! based on (hr) translation by Bojan Marković + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + switch (key) { + case 'm': + return withoutSuffix + ? 'jedna minuta' + : isFuture + ? 'jednu minutu' + : 'jedne minute'; + } +} + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jedan sat'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: processRelativeTime, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ca.js b/node_modules/moment/dist/locale/ca.js new file mode 100644 index 0000000..c356211 --- /dev/null +++ b/node_modules/moment/dist/locale/ca.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/cs.js b/node_modules/moment/dist/locale/cs.js new file mode 100644 index 0000000..bf5dd09 --- /dev/null +++ b/node_modules/moment/dist/locale/cs.js @@ -0,0 +1,181 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = { + standalone: + 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } +} + +export default moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/cv.js b/node_modules/moment/dist/locale/cv.js new file mode 100644 index 0000000..06c196a --- /dev/null +++ b/node_modules/moment/dist/locale/cv.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +import moment from '../moment'; + +export default moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/cy.js b/node_modules/moment/dist/locale/cy.js new file mode 100644 index 0000000..e12344a --- /dev/null +++ b/node_modules/moment/dist/locale/cy.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +import moment from '../moment'; + +export default moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/da.js b/node_modules/moment/dist/locale/da.js new file mode 100644 index 0000000..d1fc181 --- /dev/null +++ b/node_modules/moment/dist/locale/da.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +import moment from '../moment'; + +export default moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/de-at.js b/node_modules/moment/dist/locale/de-at.js new file mode 100644 index 0000000..8318fec --- /dev/null +++ b/node_modules/moment/dist/locale/de-at.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/de-ch.js b/node_modules/moment/dist/locale/de-ch.js new file mode 100644 index 0000000..4e67507 --- /dev/null +++ b/node_modules/moment/dist/locale/de-ch.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/de.js b/node_modules/moment/dist/locale/de.js new file mode 100644 index 0000000..cb9c8d5 --- /dev/null +++ b/node_modules/moment/dist/locale/de.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/dv.js b/node_modules/moment/dist/locale/dv.js new file mode 100644 index 0000000..26520d4 --- /dev/null +++ b/node_modules/moment/dist/locale/dv.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +import moment from '../moment'; + +var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + +export default moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/el.js b/node_modules/moment/dist/locale/el.js new file mode 100644 index 0000000..8a596f1 --- /dev/null +++ b/node_modules/moment/dist/locale/el.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +import moment from '../moment'; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +export default moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-au.js b/node_modules/moment/dist/locale/en-au.js new file mode 100644 index 0000000..301e9db --- /dev/null +++ b/node_modules/moment/dist/locale/en-au.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +import moment from '../moment'; + +export default moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-ca.js b/node_modules/moment/dist/locale/en-ca.js new file mode 100644 index 0000000..8099e04 --- /dev/null +++ b/node_modules/moment/dist/locale/en-ca.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/dist/locale/en-gb.js b/node_modules/moment/dist/locale/en-gb.js new file mode 100644 index 0000000..acd544a --- /dev/null +++ b/node_modules/moment/dist/locale/en-gb.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-ie.js b/node_modules/moment/dist/locale/en-ie.js new file mode 100644 index 0000000..8e79f63 --- /dev/null +++ b/node_modules/moment/dist/locale/en-ie.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +import moment from '../moment'; + +export default moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-il.js b/node_modules/moment/dist/locale/en-il.js new file mode 100644 index 0000000..94908df --- /dev/null +++ b/node_modules/moment/dist/locale/en-il.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/dist/locale/en-in.js b/node_modules/moment/dist/locale/en-in.js new file mode 100644 index 0000000..f685176 --- /dev/null +++ b/node_modules/moment/dist/locale/en-in.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +import moment from '../moment'; + +export default moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-nz.js b/node_modules/moment/dist/locale/en-nz.js new file mode 100644 index 0000000..66c9bfc --- /dev/null +++ b/node_modules/moment/dist/locale/en-nz.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +import moment from '../moment'; + +export default moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-sg.js b/node_modules/moment/dist/locale/en-sg.js new file mode 100644 index 0000000..b36bda4 --- /dev/null +++ b/node_modules/moment/dist/locale/en-sg.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +import moment from '../moment'; + +export default moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/eo.js b/node_modules/moment/dist/locale/eo.js new file mode 100644 index 0000000..38d494a --- /dev/null +++ b/node_modules/moment/dist/locale/eo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +import moment from '../moment'; + +export default moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/es-do.js b/node_modules/moment/dist/locale/es-do.js new file mode 100644 index 0000000..8c3ccfd --- /dev/null +++ b/node_modules/moment/dist/locale/es-do.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/es-mx.js b/node_modules/moment/dist/locale/es-mx.js new file mode 100644 index 0000000..43dd7cc --- /dev/null +++ b/node_modules/moment/dist/locale/es-mx.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', +}); diff --git a/node_modules/moment/dist/locale/es-us.js b/node_modules/moment/dist/locale/es-us.js new file mode 100644 index 0000000..bac8cd8 --- /dev/null +++ b/node_modules/moment/dist/locale/es-us.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/es.js b/node_modules/moment/dist/locale/es.js new file mode 100644 index 0000000..a3428ad --- /dev/null +++ b/node_modules/moment/dist/locale/es.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', +}); diff --git a/node_modules/moment/dist/locale/et.js b/node_modules/moment/dist/locale/et.js new file mode 100644 index 0000000..5da4ec4 --- /dev/null +++ b/node_modules/moment/dist/locale/et.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/eu.js b/node_modules/moment/dist/locale/eu.js new file mode 100644 index 0000000..261a17b --- /dev/null +++ b/node_modules/moment/dist/locale/eu.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +import moment from '../moment'; + +export default moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fa.js b/node_modules/moment/dist/locale/fa.js new file mode 100644 index 0000000..52ffb72 --- /dev/null +++ b/node_modules/moment/dist/locale/fa.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +import moment from '../moment'; + +var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + +export default moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fi.js b/node_modules/moment/dist/locale/fi.js new file mode 100644 index 0000000..2e20bff --- /dev/null +++ b/node_modules/moment/dist/locale/fi.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +import moment from '../moment'; + +var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; +function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; +} +function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; +} + +export default moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fil.js b/node_modules/moment/dist/locale/fil.js new file mode 100644 index 0000000..e0447aa --- /dev/null +++ b/node_modules/moment/dist/locale/fil.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +import moment from '../moment'; + +export default moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fo.js b/node_modules/moment/dist/locale/fo.js new file mode 100644 index 0000000..c8fd0bc --- /dev/null +++ b/node_modules/moment/dist/locale/fo.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +import moment from '../moment'; + +export default moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fr-ca.js b/node_modules/moment/dist/locale/fr-ca.js new file mode 100644 index 0000000..6187291 --- /dev/null +++ b/node_modules/moment/dist/locale/fr-ca.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, +}); diff --git a/node_modules/moment/dist/locale/fr-ch.js b/node_modules/moment/dist/locale/fr-ch.js new file mode 100644 index 0000000..2cc90d8 --- /dev/null +++ b/node_modules/moment/dist/locale/fr-ch.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +import moment from '../moment'; + +export default moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fr.js b/node_modules/moment/dist/locale/fr.js new file mode 100644 index 0000000..a3afb4b --- /dev/null +++ b/node_modules/moment/dist/locale/fr.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +import moment from '../moment'; + +var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + +export default moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fy.js b/node_modules/moment/dist/locale/fy.js new file mode 100644 index 0000000..4844587 --- /dev/null +++ b/node_modules/moment/dist/locale/fy.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + +export default moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ga.js b/node_modules/moment/dist/locale/ga.js new file mode 100644 index 0000000..7f36fb6 --- /dev/null +++ b/node_modules/moment/dist/locale/ga.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt + +import moment from '../moment'; + +var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + +export default moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/gd.js b/node_modules/moment/dist/locale/gd.js new file mode 100644 index 0000000..81f735b --- /dev/null +++ b/node_modules/moment/dist/locale/gd.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +import moment from '../moment'; + +var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + +export default moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/gl.js b/node_modules/moment/dist/locale/gl.js new file mode 100644 index 0000000..980591c --- /dev/null +++ b/node_modules/moment/dist/locale/gl.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/gom-deva.js b/node_modules/moment/dist/locale/gom-deva.js new file mode 100644 index 0000000..294e358 --- /dev/null +++ b/node_modules/moment/dist/locale/gom-deva.js @@ -0,0 +1,126 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/gom-latn.js b/node_modules/moment/dist/locale/gom-latn.js new file mode 100644 index 0000000..d237161 --- /dev/null +++ b/node_modules/moment/dist/locale/gom-latn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/gu.js b/node_modules/moment/dist/locale/gu.js new file mode 100644 index 0000000..d432d2c --- /dev/null +++ b/node_modules/moment/dist/locale/gu.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +import moment from '../moment'; + +var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + +export default moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/he.js b/node_modules/moment/dist/locale/he.js new file mode 100644 index 0000000..08add2c --- /dev/null +++ b/node_modules/moment/dist/locale/he.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +import moment from '../moment'; + +export default moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/hi.js b/node_modules/moment/dist/locale/hi.js new file mode 100644 index 0000000..2e3a973 --- /dev/null +++ b/node_modules/moment/dist/locale/hi.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + +export default moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/hr.js b/node_modules/moment/dist/locale/hr.js new file mode 100644 index 0000000..48c1e9e --- /dev/null +++ b/node_modules/moment/dist/locale/hr.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/hu.js b/node_modules/moment/dist/locale/hu.js new file mode 100644 index 0000000..f2f5981 --- /dev/null +++ b/node_modules/moment/dist/locale/hu.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +import moment from '../moment'; + +var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); +function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; +} +function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); +} + +export default moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/hy-am.js b/node_modules/moment/dist/locale/hy-am.js new file mode 100644 index 0000000..283cfbd --- /dev/null +++ b/node_modules/moment/dist/locale/hy-am.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +import moment from '../moment'; + +export default moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/id.js b/node_modules/moment/dist/locale/id.js new file mode 100644 index 0000000..3260e1c --- /dev/null +++ b/node_modules/moment/dist/locale/id.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +import moment from '../moment'; + +export default moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/is.js b/node_modules/moment/dist/locale/is.js new file mode 100644 index 0000000..d2c6f47 --- /dev/null +++ b/node_modules/moment/dist/locale/is.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik + +import moment from '../moment'; + +function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } +} + +export default moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/it-ch.js b/node_modules/moment/dist/locale/it-ch.js new file mode 100644 index 0000000..3437453 --- /dev/null +++ b/node_modules/moment/dist/locale/it-ch.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +import moment from '../moment'; + +export default moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/it.js b/node_modules/moment/dist/locale/it.js new file mode 100644 index 0000000..0aa5721 --- /dev/null +++ b/node_modules/moment/dist/locale/it.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +import moment from '../moment'; + +export default moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ja.js b/node_modules/moment/dist/locale/ja.js new file mode 100644 index 0000000..abe921a --- /dev/null +++ b/node_modules/moment/dist/locale/ja.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +import moment from '../moment'; + +export default moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, +}); diff --git a/node_modules/moment/dist/locale/jv.js b/node_modules/moment/dist/locale/jv.js new file mode 100644 index 0000000..b52f48d --- /dev/null +++ b/node_modules/moment/dist/locale/jv.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +import moment from '../moment'; + +export default moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ka.js b/node_modules/moment/dist/locale/ka.js new file mode 100644 index 0000000..15b6ead --- /dev/null +++ b/node_modules/moment/dist/locale/ka.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +import moment from '../moment'; + +export default moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, +}); diff --git a/node_modules/moment/dist/locale/kk.js b/node_modules/moment/dist/locale/kk.js new file mode 100644 index 0000000..9cab152 --- /dev/null +++ b/node_modules/moment/dist/locale/kk.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +import moment from '../moment'; + +var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', +}; + +export default moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/km.js b/node_modules/moment/dist/locale/km.js new file mode 100644 index 0000000..984c4dc --- /dev/null +++ b/node_modules/moment/dist/locale/km.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +import moment from '../moment'; + +var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + +export default moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/kn.js b/node_modules/moment/dist/locale/kn.js new file mode 100644 index 0000000..e7cb354 --- /dev/null +++ b/node_modules/moment/dist/locale/kn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +import moment from '../moment'; + +var symbolMap = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + +export default moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ko.js b/node_modules/moment/dist/locale/ko.js new file mode 100644 index 0000000..c45f3e3 --- /dev/null +++ b/node_modules/moment/dist/locale/ko.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +import moment from '../moment'; + +export default moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, +}); diff --git a/node_modules/moment/dist/locale/ku-kmr.js b/node_modules/moment/dist/locale/ku-kmr.js new file mode 100644 index 0000000..87ad603 --- /dev/null +++ b/node_modules/moment/dist/locale/ku-kmr.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Northern Kurdish [ku-kmr] +//! authors : Mazlum Özdogan : https://github.com/mergehez + +// All rules except for month names are according to +// the spelling rules which are defined in the book 'Rêbera Rastnivîsînê' from Komxebata Kurmancîyê. +// Komxebata Kurmancîyê is a work group that studied different uses in Kurdish language (Kurmanji/Northern Kurdish), +// chose one of alternatives as standard and publish them via their book. +// There are 18 Kurdish linguists in the group. +// The group was formed by Mesopotamia Foundation + +import moment from '../moment'; + +function processRelativeTime(num, withoutSuffix, key, isFuture) { + var format = { + s: ['çend sanîye', 'çend sanîyeyan'], + ss: [num + ' sanîye', num + ' sanîyeyan'], + m: ['deqîqeyek', 'deqîqeyekê'], + mm: [num + ' deqîqe', num + ' deqîqeyan'], + h: ['saetek', 'saetekê'], + hh: [num + ' saet', num + ' saetan'], + d: ['rojek', 'rojekê'], + dd: [num + ' roj', num + ' rojan'], + w: ['hefteyek', 'hefteyekê'], + ww: [num + ' hefte', num + ' hefteyan'], + M: ['mehek', 'mehekê'], + MM: [num + ' meh', num + ' mehan'], + y: ['salek', 'salekê'], + yy: [num + ' sal', num + ' salan'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +// function obliqueNumSuffix(num) { +// if(num.includes(':')) +// num = parseInt(num.split(':')[0]); +// else +// num = parseInt(num); +// return num == 0 || num % 10 == 1 ? 'ê' +// : (num > 10 && num % 10 == 0 ? 'î' : 'an'); +// } +function ezafeNumSuffix(num) { + num = '' + num; + var l = num.substring(num.length - 1), + ll = num.length > 1 ? num.substring(num.length - 2) : ''; + if ( + !(ll == 12 || ll == 13) && + (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') + ) + return 'yê'; + return 'ê'; +} + +export default moment.defineLocale('ku-kmr', { + // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) + // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' + // But the names below are more well known and handy + months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split( + '_' + ), + monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), + monthsParseExact: true, + weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), + weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), + weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'bn' : 'BN'; + } else { + return isLower ? 'pn' : 'PN'; + } + }, + meridiemParse: /bn|BN|pn|PN/, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[a] YYYY[an]', + LLL: 'Do MMMM[a] YYYY[an] HH:mm', + LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', + ll: 'Do MMM[.] YYYY[an]', + lll: 'Do MMM[.] YYYY[an] HH:mm', + llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', + }, + calendar: { + sameDay: '[Îro di saet] LT [de]', + nextDay: '[Sibê di saet] LT [de]', + nextWeek: 'dddd [di saet] LT [de]', + lastDay: '[Duh di saet] LT [de]', + lastWeek: 'dddd[a borî di saet] LT [de]', + sameElse: 'L', + }, + relativeTime: { + future: 'di %s de', + past: 'berî %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, + ordinal: function (num, period) { + var p = period.toLowerCase(); + if (p.includes('w') || p.includes('m')) return num + '.'; + + return num + ezafeNumSuffix(num); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ku.js b/node_modules/moment/dist/locale/ku.js new file mode 100644 index 0000000..e705f01 --- /dev/null +++ b/node_modules/moment/dist/locale/ku.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + +export default moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ky.js b/node_modules/moment/dist/locale/ky.js new file mode 100644 index 0000000..2108d09 --- /dev/null +++ b/node_modules/moment/dist/locale/ky.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +import moment from '../moment'; + +var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', +}; + +export default moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/lb.js b/node_modules/moment/dist/locale/lb.js new file mode 100644 index 0000000..f01e662 --- /dev/null +++ b/node_modules/moment/dist/locale/lb.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; +} +function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; +} +/** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ +function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } +} + +export default moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/lo.js b/node_modules/moment/dist/locale/lo.js new file mode 100644 index 0000000..cd6cc20 --- /dev/null +++ b/node_modules/moment/dist/locale/lo.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +import moment from '../moment'; + +export default moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, +}); diff --git a/node_modules/moment/dist/locale/lt.js b/node_modules/moment/dist/locale/lt.js new file mode 100644 index 0000000..83c1595 --- /dev/null +++ b/node_modules/moment/dist/locale/lt.js @@ -0,0 +1,125 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras + +import moment from '../moment'; + +var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', +}; +function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } +} +function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; +} +function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); +} +function forms(key) { + return units[key].split('_'); +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } +} +export default moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/lv.js b/node_modules/moment/dist/locale/lv.js new file mode 100644 index 0000000..3a89653 --- /dev/null +++ b/node_modules/moment/dist/locale/lv.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE + +import moment from '../moment'; + +var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), +}; +/** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ +function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); +} +function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); +} +function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; +} + +export default moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/me.js b/node_modules/moment/dist/locale/me.js new file mode 100644 index 0000000..e22c8d9 --- /dev/null +++ b/node_modules/moment/dist/locale/me.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, +}; + +export default moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/mi.js b/node_modules/moment/dist/locale/mi.js new file mode 100644 index 0000000..635a56a --- /dev/null +++ b/node_modules/moment/dist/locale/mi.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +import moment from '../moment'; + +export default moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/mk.js b/node_modules/moment/dist/locale/mk.js new file mode 100644 index 0000000..f3ecad7 --- /dev/null +++ b/node_modules/moment/dist/locale/mk.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh +import moment from '../moment'; + +export default moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ml.js b/node_modules/moment/dist/locale/ml.js new file mode 100644 index 0000000..5df6ae4 --- /dev/null +++ b/node_modules/moment/dist/locale/ml.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +import moment from '../moment'; + +export default moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/mn.js b/node_modules/moment/dist/locale/mn.js new file mode 100644 index 0000000..36cf69f --- /dev/null +++ b/node_modules/moment/dist/locale/mn.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } +} + +export default moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, +}); diff --git a/node_modules/moment/dist/locale/mr.js b/node_modules/moment/dist/locale/mr.js new file mode 100644 index 0000000..d174909 --- /dev/null +++ b/node_modules/moment/dist/locale/mr.js @@ -0,0 +1,203 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + +function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); +} + +export default moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ms-my.js b/node_modules/moment/dist/locale/ms-my.js new file mode 100644 index 0000000..f8adf98 --- /dev/null +++ b/node_modules/moment/dist/locale/ms-my.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ms.js b/node_modules/moment/dist/locale/ms.js new file mode 100644 index 0000000..335cc90 --- /dev/null +++ b/node_modules/moment/dist/locale/ms.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/mt.js b/node_modules/moment/dist/locale/mt.js new file mode 100644 index 0000000..850cf6a --- /dev/null +++ b/node_modules/moment/dist/locale/mt.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +import moment from '../moment'; + +export default moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/my.js b/node_modules/moment/dist/locale/my.js new file mode 100644 index 0000000..034b221 --- /dev/null +++ b/node_modules/moment/dist/locale/my.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +import moment from '../moment'; + +var symbolMap = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + +export default moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/nb.js b/node_modules/moment/dist/locale/nb.js new file mode 100644 index 0000000..cce3aaa --- /dev/null +++ b/node_modules/moment/dist/locale/nb.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'én time', + hh: '%d timer', + d: 'én dag', + dd: '%d dager', + w: 'én uke', + ww: '%d uker', + M: 'én måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ne.js b/node_modules/moment/dist/locale/ne.js new file mode 100644 index 0000000..1f0a0ed --- /dev/null +++ b/node_modules/moment/dist/locale/ne.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + +export default moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/nl-be.js b/node_modules/moment/dist/locale/nl-be.js new file mode 100644 index 0000000..e495ff1 --- /dev/null +++ b/node_modules/moment/dist/locale/nl-be.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/nl.js b/node_modules/moment/dist/locale/nl.js new file mode 100644 index 0000000..b6d83c3 --- /dev/null +++ b/node_modules/moment/dist/locale/nl.js @@ -0,0 +1,104 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/nn.js b/node_modules/moment/dist/locale/nn.js new file mode 100644 index 0000000..0da1150 --- /dev/null +++ b/node_modules/moment/dist/locale/nn.js @@ -0,0 +1,59 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/oc-lnc.js b/node_modules/moment/dist/locale/oc-lnc.js new file mode 100644 index 0000000..2e67d73 --- /dev/null +++ b/node_modules/moment/dist/locale/oc-lnc.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 + +import moment from '../moment'; + +export default moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, +}); diff --git a/node_modules/moment/dist/locale/pa-in.js b/node_modules/moment/dist/locale/pa-in.js new file mode 100644 index 0000000..e39dbd5 --- /dev/null +++ b/node_modules/moment/dist/locale/pa-in.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +import moment from '../moment'; + +var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + +export default moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/pl.js b/node_modules/moment/dist/locale/pl.js new file mode 100644 index 0000000..0608c0d --- /dev/null +++ b/node_modules/moment/dist/locale/pl.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +import moment from '../moment'; + +var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; +function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; +} +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } +} + +export default moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/pt-br.js b/node_modules/moment/dist/locale/pt-br.js new file mode 100644 index 0000000..eb9aa64 --- /dev/null +++ b/node_modules/moment/dist/locale/pt-br.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +import moment from '../moment'; + +export default moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', +}); diff --git a/node_modules/moment/dist/locale/pt.js b/node_modules/moment/dist/locale/pt.js new file mode 100644 index 0000000..d9b6055 --- /dev/null +++ b/node_modules/moment/dist/locale/pt.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +import moment from '../moment'; + +export default moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ro.js b/node_modules/moment/dist/locale/ro.js new file mode 100644 index 0000000..d5bc5ea --- /dev/null +++ b/node_modules/moment/dist/locale/ro.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +import moment from '../moment'; + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; +} + +export default moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ru.js b/node_modules/moment/dist/locale/ru.js new file mode 100644 index 0000000..d214850 --- /dev/null +++ b/node_modules/moment/dist/locale/ru.js @@ -0,0 +1,213 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, +]; + +// http://new.gramota.ru/spravka/rules/139-prop : § 103 +// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 +// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 +export default moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sd.js b/node_modules/moment/dist/locale/sd.js new file mode 100644 index 0000000..20f1059 --- /dev/null +++ b/node_modules/moment/dist/locale/sd.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +import moment from '../moment'; + +var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + +export default moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/se.js b/node_modules/moment/dist/locale/se.js new file mode 100644 index 0000000..e8eec58 --- /dev/null +++ b/node_modules/moment/dist/locale/se.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell + +import moment from '../moment'; + +export default moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/si.js b/node_modules/moment/dist/locale/si.js new file mode 100644 index 0000000..0f2498c --- /dev/null +++ b/node_modules/moment/dist/locale/si.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +import moment from '../moment'; + +/*jshint -W100*/ +export default moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/sk.js b/node_modules/moment/dist/locale/sk.js new file mode 100644 index 0000000..7162ed6 --- /dev/null +++ b/node_modules/moment/dist/locale/sk.js @@ -0,0 +1,145 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); +function plural(n) { + return n > 1 && n < 5; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } +} + +export default moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sl.js b/node_modules/moment/dist/locale/sl.js new file mode 100644 index 0000000..0290a8e --- /dev/null +++ b/node_modules/moment/dist/locale/sl.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } +} + +export default moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sq.js b/node_modules/moment/dist/locale/sq.js new file mode 100644 index 0000000..3b3bcfa --- /dev/null +++ b/node_modules/moment/dist/locale/sq.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +import moment from '../moment'; + +export default moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sr-cyrl.js b/node_modules/moment/dist/locale/sr-cyrl.js new file mode 100644 index 0000000..5e05810 --- /dev/null +++ b/node_modules/moment/dist/locale/sr-cyrl.js @@ -0,0 +1,127 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sr.js b/node_modules/moment/dist/locale/sr.js new file mode 100644 index 0000000..a407ec7 --- /dev/null +++ b/node_modules/moment/dist/locale/sr.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ss.js b/node_modules/moment/dist/locale/ss.js new file mode 100644 index 0000000..60db499 --- /dev/null +++ b/node_modules/moment/dist/locale/ss.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +import moment from '../moment'; + +export default moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sv.js b/node_modules/moment/dist/locale/sv.js new file mode 100644 index 0000000..4a37cdb --- /dev/null +++ b/node_modules/moment/dist/locale/sv.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +import moment from '../moment'; + +export default moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sw.js b/node_modules/moment/dist/locale/sw.js new file mode 100644 index 0000000..35a2668 --- /dev/null +++ b/node_modules/moment/dist/locale/sw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +import moment from '../moment'; + +export default moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ta.js b/node_modules/moment/dist/locale/ta.js new file mode 100644 index 0000000..fdfa1ba --- /dev/null +++ b/node_modules/moment/dist/locale/ta.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +import moment from '../moment'; + +var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + +export default moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/te.js b/node_modules/moment/dist/locale/te.js new file mode 100644 index 0000000..56f9f16 --- /dev/null +++ b/node_modules/moment/dist/locale/te.js @@ -0,0 +1,88 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +import moment from '../moment'; + +export default moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tet.js b/node_modules/moment/dist/locale/tet.js new file mode 100644 index 0000000..5f7d95c --- /dev/null +++ b/node_modules/moment/dist/locale/tet.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +import moment from '../moment'; + +export default moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tg.js b/node_modules/moment/dist/locale/tg.js new file mode 100644 index 0000000..60d33c7 --- /dev/null +++ b/node_modules/moment/dist/locale/tg.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +import moment from '../moment'; + +var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', +}; + +export default moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/th.js b/node_modules/moment/dist/locale/th.js new file mode 100644 index 0000000..b3a5560 --- /dev/null +++ b/node_modules/moment/dist/locale/th.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +import moment from '../moment'; + +export default moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, +}); diff --git a/node_modules/moment/dist/locale/tk.js b/node_modules/moment/dist/locale/tk.js new file mode 100644 index 0000000..b26f99e --- /dev/null +++ b/node_modules/moment/dist/locale/tk.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +import moment from '../moment'; + +var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", +}; + +export default moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tl-ph.js b/node_modules/moment/dist/locale/tl-ph.js new file mode 100644 index 0000000..581d74a --- /dev/null +++ b/node_modules/moment/dist/locale/tl-ph.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +import moment from '../moment'; + +export default moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tlh.js b/node_modules/moment/dist/locale/tlh.js new file mode 100644 index 0000000..ccc5d29 --- /dev/null +++ b/node_modules/moment/dist/locale/tlh.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +import moment from '../moment'; + +var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + +function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; +} + +function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; +} + +function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } +} + +function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; +} + +export default moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tr.js b/node_modules/moment/dist/locale/tr.js new file mode 100644 index 0000000..c5abbdc --- /dev/null +++ b/node_modules/moment/dist/locale/tr.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK + +import moment from '../moment'; + +var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", +}; + +export default moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tzl.js b/node_modules/moment/dist/locale/tzl.js new file mode 100644 index 0000000..5447082 --- /dev/null +++ b/node_modules/moment/dist/locale/tzl.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun + +import moment from '../moment'; + +// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. +// This is currently too difficult (maybe even impossible) to add. +export default moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; +} diff --git a/node_modules/moment/dist/locale/tzm-latn.js b/node_modules/moment/dist/locale/tzm-latn.js new file mode 100644 index 0000000..6a427d8 --- /dev/null +++ b/node_modules/moment/dist/locale/tzm-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tzm.js b/node_modules/moment/dist/locale/tzm.js new file mode 100644 index 0000000..1e5d597 --- /dev/null +++ b/node_modules/moment/dist/locale/tzm.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ug-cn.js b/node_modules/moment/dist/locale/ug-cn.js new file mode 100644 index 0000000..ad6fa94 --- /dev/null +++ b/node_modules/moment/dist/locale/ug-cn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +import moment from '../moment'; + +export default moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/uk.js b/node_modules/moment/dist/locale/uk.js new file mode 100644 index 0000000..670ffcc --- /dev/null +++ b/node_modules/moment/dist/locale/uk.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; +} +function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; +} + +export default moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ur.js b/node_modules/moment/dist/locale/ur.js new file mode 100644 index 0000000..ca5e252 --- /dev/null +++ b/node_modules/moment/dist/locale/ur.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +import moment from '../moment'; + +var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + +export default moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/uz-latn.js b/node_modules/moment/dist/locale/uz-latn.js new file mode 100644 index 0000000..a2d577e --- /dev/null +++ b/node_modules/moment/dist/locale/uz-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +import moment from '../moment'; + +export default moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/uz.js b/node_modules/moment/dist/locale/uz.js new file mode 100644 index 0000000..03914dd --- /dev/null +++ b/node_modules/moment/dist/locale/uz.js @@ -0,0 +1,51 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +import moment from '../moment'; + +export default moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/vi.js b/node_modules/moment/dist/locale/vi.js new file mode 100644 index 0000000..2b11cf6 --- /dev/null +++ b/node_modules/moment/dist/locale/vi.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +import moment from '../moment'; + +export default moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/x-pseudo.js b/node_modules/moment/dist/locale/x-pseudo.js new file mode 100644 index 0000000..90df555 --- /dev/null +++ b/node_modules/moment/dist/locale/x-pseudo.js @@ -0,0 +1,73 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +import moment from '../moment'; + +export default moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/yo.js b/node_modules/moment/dist/locale/yo.js new file mode 100644 index 0000000..2fcb6e4 --- /dev/null +++ b/node_modules/moment/dist/locale/yo.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +import moment from '../moment'; + +export default moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/zh-cn.js b/node_modules/moment/dist/locale/zh-cn.js new file mode 100644 index 0000000..2345ee6 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-cn.js @@ -0,0 +1,120 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +import moment from '../moment'; + +export default moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/zh-hk.js b/node_modules/moment/dist/locale/zh-hk.js new file mode 100644 index 0000000..78a1019 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-hk.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +import moment from '../moment'; + +export default moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/dist/locale/zh-mo.js b/node_modules/moment/dist/locale/zh-mo.js new file mode 100644 index 0000000..9ed795d --- /dev/null +++ b/node_modules/moment/dist/locale/zh-mo.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +import moment from '../moment'; + +export default moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/dist/locale/zh-tw.js b/node_modules/moment/dist/locale/zh-tw.js new file mode 100644 index 0000000..aa98ab1 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-tw.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +import moment from '../moment'; + +export default moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/dist/moment.js b/node_modules/moment/dist/moment.js new file mode 100644 index 0000000..956eeb3 --- /dev/null +++ b/node_modules/moment/dist/moment.js @@ -0,0 +1,5680 @@ +//! moment.js +//! version : 2.30.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +var hookCallback; + +function hooks() { + return hookCallback.apply(null, arguments); +} + +// This is done to register the method called with moment() +// without creating circular dependencies. +function setHookCallback(callback) { + hookCallback = callback; +} + +function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); +} + +function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); +} + +function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); +} + +function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } +} + +function isUndefined(input) { + return input === void 0; +} + +function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); +} + +function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); +} + +function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; +} + +function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; +} + +function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); +} + +function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; +} + +function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; +} + +var some; +if (Array.prototype.some) { + some = Array.prototype.some; +} else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; +} + +function isValid(m) { + var flags = null, + parsedParts = false, + isNowValid = m._d && !isNaN(m._d.getTime()); + if (isNowValid) { + flags = getParsingFlags(m); + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + isNowValid = + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + return m._isValid; +} + +function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; +} + +// Plugins that add properties should also add the key here (null value), +// so we can properly clone ourselves. +var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + +function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; +} + +// Moment prototype object +function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } +} + +function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); +} + +function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } +} + +function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); +} + +var deprecations = {}; + +function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } +} + +hooks.suppressDeprecationWarnings = false; +hooks.deprecationHandler = null; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); +} + +function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; +} + +function Locale(config) { + if (config != null) { + this.set(config); + } +} + +var keys; + +if (Object.keys) { + keys = Object.keys; +} else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; +} + +var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', +}; + +function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; +} + +function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); +} + +var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + +// token: 'M' +// padded: ['MM', 2] +// ordinal: 'Mo' +// callback: function () { this.month() + 1 } +function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } +} + +function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); +} + +function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; +} + +// format date using native date object +function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); +} + +function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; +} + +var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', +}; + +function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; +} + +var defaultInvalidDate = 'Invalid date'; + +function invalidDate() { + return this._invalidDate; +} + +var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + +function ordinal(number) { + return this._ordinal.replace('%d', number); +} + +var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', +}; + +function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); +} + +function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); +} + +var aliases = { + D: 'date', + dates: 'date', + date: 'date', + d: 'day', + days: 'day', + day: 'day', + e: 'weekday', + weekdays: 'weekday', + weekday: 'weekday', + E: 'isoWeekday', + isoweekdays: 'isoWeekday', + isoweekday: 'isoWeekday', + DDD: 'dayOfYear', + dayofyears: 'dayOfYear', + dayofyear: 'dayOfYear', + h: 'hour', + hours: 'hour', + hour: 'hour', + ms: 'millisecond', + milliseconds: 'millisecond', + millisecond: 'millisecond', + m: 'minute', + minutes: 'minute', + minute: 'minute', + M: 'month', + months: 'month', + month: 'month', + Q: 'quarter', + quarters: 'quarter', + quarter: 'quarter', + s: 'second', + seconds: 'second', + second: 'second', + gg: 'weekYear', + weekyears: 'weekYear', + weekyear: 'weekYear', + GG: 'isoWeekYear', + isoweekyears: 'isoWeekYear', + isoweekyear: 'isoWeekYear', + w: 'week', + weeks: 'week', + week: 'week', + W: 'isoWeek', + isoweeks: 'isoWeek', + isoweek: 'isoWeek', + y: 'year', + years: 'year', + year: 'year', +}; + +function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; +} + +function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; +} + +var priorities = { + date: 9, + day: 11, + weekday: 11, + isoWeekday: 11, + dayOfYear: 4, + hour: 13, + millisecond: 16, + minute: 14, + month: 8, + quarter: 7, + second: 15, + weekYear: 1, + isoWeekYear: 1, + week: 5, + isoWeek: 5, + year: 1, +}; + +function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; +} + +var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 + match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 + regexes; + +regexes = {}; + +function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; +} + +function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); +} + +// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript +function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); +} + +function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); +} + +function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } +} + +function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; +} + +var tokens = {}; + +function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } +} + +function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); +} + +function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } +} + +function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +} + +var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + +// FORMATTING + +addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; +}); + +addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; +}); + +addFormatToken(0, ['YYYY', 4], 0, 'year'); +addFormatToken(0, ['YYYYY', 5], 0, 'year'); +addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + +// PARSING + +addRegexToken('Y', matchSigned); +addRegexToken('YY', match1to2, match2); +addRegexToken('YYYY', match1to4, match4); +addRegexToken('YYYYY', match1to6, match6); +addRegexToken('YYYYYY', match1to6, match6); + +addParseToken(['YYYYY', 'YYYYYY'], YEAR); +addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); +}); +addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); +}); +addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); +}); + +// HELPERS + +function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; +} + +// HOOKS + +hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); +}; + +// MOMENTS + +var getSetYear = makeGetSet('FullYear', true); + +function getIsLeapYear() { + return isLeapYear(this.year()); +} + +function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; +} + +function get(mom, unit) { + if (!mom.isValid()) { + return NaN; + } + + var d = mom._d, + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); + case 'Seconds': + return isUTC ? d.getUTCSeconds() : d.getSeconds(); + case 'Minutes': + return isUTC ? d.getUTCMinutes() : d.getMinutes(); + case 'Hours': + return isUTC ? d.getUTCHours() : d.getHours(); + case 'Date': + return isUTC ? d.getUTCDate() : d.getDate(); + case 'Day': + return isUTC ? d.getUTCDay() : d.getDay(); + case 'Month': + return isUTC ? d.getUTCMonth() : d.getMonth(); + case 'FullYear': + return isUTC ? d.getUTCFullYear() : d.getFullYear(); + default: + return NaN; // Just in case + } +} + +function set$1(mom, unit, value) { + var d, isUTC, year, month, date; + + if (!mom.isValid() || isNaN(value)) { + return; + } + + d = mom._d; + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return void (isUTC + ? d.setUTCMilliseconds(value) + : d.setMilliseconds(value)); + case 'Seconds': + return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); + case 'Minutes': + return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); + case 'Hours': + return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); + case 'Date': + return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); + // case 'Day': // Not real + // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); + // case 'Month': // Not used because we need to pass two variables + // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); + case 'FullYear': + break; // See below ... + default: + return; // Just in case + } + + year = value; + month = mom.month(); + date = mom.date(); + date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; + void (isUTC + ? d.setUTCFullYear(year, month, date) + : d.setFullYear(year, month, date)); +} + +// MOMENTS + +function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; +} + +function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; +} + +function mod(n, x) { + return ((n % x) + x) % x; +} + +var indexOf; + +if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; +} else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; +} + +function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); +} + +// FORMATTING + +addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; +}); + +addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); +}); + +addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); +}); + +// PARSING + +addRegexToken('M', match1to2, match1to2NoLeadingZero); +addRegexToken('MM', match1to2, match2); +addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); +}); +addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); +}); + +addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; +}); + +addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } +}); + +// LOCALES + +var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + +function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; +} + +function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; +} + +function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } +} + +// MOMENTS + +function setMonth(mom, value) { + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + var month = value, + date = mom.date(); + + date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); + void (mom._isUTC + ? mom._d.setUTCMonth(month, date) + : mom._d.setMonth(month, date)); + return mom; +} + +function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } +} + +function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); +} + +function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } +} + +function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } +} + +function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + shortP, + longP; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortP = regexEscape(this.monthsShort(mom, '')); + longP = regexEscape(this.months(mom, '')); + shortPieces.push(shortP); + longPieces.push(longP); + mixedPieces.push(longP); + mixedPieces.push(shortP); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); +} + +function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; +} + +function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; +} + +// start-of-first-week - start-of-year +function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; +} + +// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday +function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; +} + +function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; +} + +function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; +} + +// FORMATTING + +addFormatToken('w', ['ww', 2], 'wo', 'week'); +addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + +// PARSING + +addRegexToken('w', match1to2, match1to2NoLeadingZero); +addRegexToken('ww', match1to2, match2); +addRegexToken('W', match1to2, match1to2NoLeadingZero); +addRegexToken('WW', match1to2, match2); + +addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } +); + +// HELPERS + +// LOCALES + +function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; +} + +var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. +}; + +function localeFirstDayOfWeek() { + return this._week.dow; +} + +function localeFirstDayOfYear() { + return this._week.doy; +} + +// MOMENTS + +function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +// FORMATTING + +addFormatToken('d', 0, 'do', 'day'); + +addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); +}); + +addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); +}); + +addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); +}); + +addFormatToken('e', 0, 0, 'weekday'); +addFormatToken('E', 0, 0, 'isoWeekday'); + +// PARSING + +addRegexToken('d', match1to2); +addRegexToken('e', match1to2); +addRegexToken('E', match1to2); +addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); +}); +addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); +}); +addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); +}); + +addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } +}); + +addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); +}); + +// HELPERS + +function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; +} + +function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; +} + +// LOCALES +function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); +} + +var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + +function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; +} + +function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; +} + +function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; +} + +function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } +} + +// MOMENTS + +function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + var day = get(this, 'Day'); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } +} + +function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); +} + +function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } +} + +function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } +} + +function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } +} + +function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } +} + +function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); +} + +// FORMATTING + +function hFormat() { + return this.hours() % 12 || 12; +} + +function kFormat() { + return this.hours() || 24; +} + +addFormatToken('H', ['HH', 2], 0, 'hour'); +addFormatToken('h', ['hh', 2], 0, hFormat); +addFormatToken('k', ['kk', 2], 0, kFormat); + +addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); +}); + +addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); +}); + +addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); +} + +meridiem('a', true); +meridiem('A', false); + +// PARSING + +function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; +} + +addRegexToken('a', matchMeridiem); +addRegexToken('A', matchMeridiem); +addRegexToken('H', match1to2, match1to2HasZero); +addRegexToken('h', match1to2, match1to2NoLeadingZero); +addRegexToken('k', match1to2, match1to2NoLeadingZero); +addRegexToken('HH', match1to2, match2); +addRegexToken('hh', match1to2, match2); +addRegexToken('kk', match1to2, match2); + +addRegexToken('hmm', match3to4); +addRegexToken('hmmss', match5to6); +addRegexToken('Hmm', match3to4); +addRegexToken('Hmmss', match5to6); + +addParseToken(['H', 'HH'], HOUR); +addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; +}); +addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; +}); +addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); +}); +addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); +}); + +// LOCALES + +function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; +} + +var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + +function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } +} + +var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, +}; + +// internal storage for locale config files +var locales = {}, + localeFamilies = {}, + globalLocale; + +function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; +} + +function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; +} + +// pick the locale from the array +// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each +// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root +function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; +} + +function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + // Ensure name is available and function returns boolean + return !!(name && name.match('^[^/\\\\]*$')); +} + +function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; +} + +// This function will load locale and then set the global locale. If +// no arguments are passed in, it will simply return the current global +// locale key. +function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; +} + +function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } +} + +function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; +} + +// returns locale data +function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); +} + +function listLocales() { + return keys(locales); +} + +function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; +} + +// iso 8601 regex +// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) +var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + +// date from iso format +function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } +} + +function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr +) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; +} + +function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; +} + +function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); +} + +function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; +} + +function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } +} + +// date and time from ref 2822 format +function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } +} + +// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict +function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } +} + +hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } +); + +// Pick the first defined of two or three arguments. +function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; +} + +function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; +} + +// convert an array to a date. +// the array should mirror the parameters below +// note: all values past the year are optional and will default to the lowest possible value. +// [year, month, day , hour, minute, second, millisecond] +function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } +} + +function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } +} + +// constant that refers to the ISO standard +hooks.ISO_8601 = function () {}; + +// constant that refers to the RFC 2822 form +hooks.RFC_2822 = function () {}; + +// date from string and format string +function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); +} + +function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } +} + +// date from string and array of format strings +function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); +} + +function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); +} + +function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; +} + +function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; +} + +function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } +} + +function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); +} + +function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); +} + +var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + +// Pick a moment m from moments so that m[fn](other) is true for all +// other. This relies on the function fn to be transitive. +// +// moments should either be an array of moment objects or an array, whose +// first element is an array of moment objects. +function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; +} + +// TODO: Use [].sort instead? +function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); +} + +function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); +} + +var now = function () { + return Date.now ? Date.now() : +new Date(); +}; + +var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', +]; + +function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; +} + +function isValid$1() { + return this._isValid; +} + +function createInvalid$1() { + return createDuration(NaN); +} + +function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); +} + +function isDuration(obj) { + return obj instanceof Duration; +} + +function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } +} + +// compare two arrays, return the number of differences +function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; +} + +// FORMATTING + +function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); +} + +offset('Z', ':'); +offset('ZZ', ''); + +// PARSING + +addRegexToken('Z', matchShortOffset); +addRegexToken('ZZ', matchShortOffset); +addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); +}); + +// HELPERS + +// timezone chunker +// '+10:00' > ['10', '00'] +// '-1530' > ['-15', '30'] +var chunkOffset = /([\+\-]|\d\d)/gi; + +function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; +} + +// Return a moment from input, that is local/utc/zone equivalent to model. +function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } +} + +function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); +} + +// HOOKS + +// This function will be called whenever a moment is mutated. +// It is intended to keep the offset in sync with the timezone. +hooks.updateOffset = function () {}; + +// MOMENTS + +// keepLocalTime = true means only change the timezone, without +// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> +// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset +// +0200, so we adjust the time as needed, to be valid. +// +// Keeping the time actually adds/subtracts (one hour) +// from the actual represented time. That is why we call updateOffset +// a second time. In case it wants us to change the offset again +// _changeInProgress == true case, then we have to adjust, because +// there is no such time in the given timezone. +function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } +} + +function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } +} + +function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); +} + +function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; +} + +function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; +} + +function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; +} + +function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); +} + +function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; +} + +function isLocal() { + return this.isValid() ? !this._isUTC : false; +} + +function isUtcOffset() { + return this.isValid() ? this._isUTC : false; +} + +function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; +} + +// ASP.NET json date format regex +var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + +function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; +} + +createDuration.fn = Duration.prototype; +createDuration.invalid = createInvalid$1; + +function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; +} + +function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; +} + +function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; +} + +// TODO: remove 'name' arg after deprecation is removed +function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; +} + +function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } +} + +var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + +function isString(input) { + return typeof input === 'string' || input instanceof String; +} + +// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined +function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); +} + +function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; +} + +function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; +} + +function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); +} + +function clone() { + return new Moment(this); +} + +function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } +} + +function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } +} + +function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); +} + +function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } +} + +function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); +} + +function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); +} + +function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); +} + +function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; +} + +hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; +hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + +function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); +} + +function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); +} + +/** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ +function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); +} + +function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); +} + +function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); +} + +function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); +} + +// If passed a locale key, it will set the locale for this +// instance. Otherwise, it will return the locale configuration +// variables for this instance. +function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } +} + +var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } +); + +function localeData() { + return this._locale; +} + +var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + +// actual modulo - handles negative numbers (for dates before 1970): +function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; +} + +function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } +} + +function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } +} + +function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; +} + +function unix() { + return Math.floor(this.valueOf() / 1000); +} + +function toDate() { + return new Date(this.valueOf()); +} + +function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; +} + +function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; +} + +function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; +} + +function isValid$2() { + return isValid(this); +} + +function parsingFlags() { + return extend({}, getParsingFlags(this)); +} + +function invalidAt() { + return getParsingFlags(this).overflow; +} + +function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; +} + +addFormatToken('N', 0, 0, 'eraAbbr'); +addFormatToken('NN', 0, 0, 'eraAbbr'); +addFormatToken('NNN', 0, 0, 'eraAbbr'); +addFormatToken('NNNN', 0, 0, 'eraName'); +addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + +addFormatToken('y', ['y', 1], 'yo', 'eraYear'); +addFormatToken('y', ['yy', 2], 0, 'eraYear'); +addFormatToken('y', ['yyy', 3], 0, 'eraYear'); +addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + +addRegexToken('N', matchEraAbbr); +addRegexToken('NN', matchEraAbbr); +addRegexToken('NNN', matchEraAbbr); +addRegexToken('NNNN', matchEraName); +addRegexToken('NNNNN', matchEraNarrow); + +addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } +); + +addRegexToken('y', matchUnsigned); +addRegexToken('yy', matchUnsigned); +addRegexToken('yyy', matchUnsigned); +addRegexToken('yyyy', matchUnsigned); +addRegexToken('yo', matchEraYearOrdinal); + +addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); +addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } +}); + +function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; +} + +function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } +} + +function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } +} + +function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; +} + +function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; +} + +function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; +} + +function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); +} + +function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; +} + +function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; +} + +function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; +} + +function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); +} + +function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); +} + +function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); +} + +function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; +} + +function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + erasName, + erasAbbr, + erasNarrow, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + erasName = regexEscape(eras[i].name); + erasAbbr = regexEscape(eras[i].abbr); + erasNarrow = regexEscape(eras[i].narrow); + + namePieces.push(erasName); + abbrPieces.push(erasAbbr); + narrowPieces.push(erasNarrow); + mixedPieces.push(erasName); + mixedPieces.push(erasAbbr); + mixedPieces.push(erasNarrow); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); +} + +// FORMATTING + +addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; +}); + +addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; +}); + +function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); +} + +addWeekYearFormatToken('gggg', 'weekYear'); +addWeekYearFormatToken('ggggg', 'weekYear'); +addWeekYearFormatToken('GGGG', 'isoWeekYear'); +addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + +// ALIASES + +// PARSING + +addRegexToken('G', matchSigned); +addRegexToken('g', matchSigned); +addRegexToken('GG', match1to2, match2); +addRegexToken('gg', match1to2, match2); +addRegexToken('GGGG', match1to4, match4); +addRegexToken('gggg', match1to4, match4); +addRegexToken('GGGGG', match1to6, match6); +addRegexToken('ggggg', match1to6, match6); + +addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } +); + +addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); +}); + +// MOMENTS + +function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday() + this.localeData()._week.dow, + this.localeData()._week.dow, + this.localeData()._week.doy + ); +} + +function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); +} + +function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); +} + +function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); +} + +function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); +} + +function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); +} + +function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } +} + +function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; +} + +// FORMATTING + +addFormatToken('Q', 0, 'Qo', 'quarter'); + +// PARSING + +addRegexToken('Q', match1); +addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; +}); + +// MOMENTS + +function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); +} + +// FORMATTING + +addFormatToken('D', ['DD', 2], 'Do', 'date'); + +// PARSING + +addRegexToken('D', match1to2, match1to2NoLeadingZero); +addRegexToken('DD', match1to2, match2); +addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; +}); + +addParseToken(['D', 'DD'], DATE); +addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); +}); + +// MOMENTS + +var getSetDayOfMonth = makeGetSet('Date', true); + +// FORMATTING + +addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + +// PARSING + +addRegexToken('DDD', match1to3); +addRegexToken('DDDD', match3); +addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); +}); + +// HELPERS + +// MOMENTS + +function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); +} + +// FORMATTING + +addFormatToken('m', ['mm', 2], 0, 'minute'); + +// PARSING + +addRegexToken('m', match1to2, match1to2HasZero); +addRegexToken('mm', match1to2, match2); +addParseToken(['m', 'mm'], MINUTE); + +// MOMENTS + +var getSetMinute = makeGetSet('Minutes', false); + +// FORMATTING + +addFormatToken('s', ['ss', 2], 0, 'second'); + +// PARSING + +addRegexToken('s', match1to2, match1to2HasZero); +addRegexToken('ss', match1to2, match2); +addParseToken(['s', 'ss'], SECOND); + +// MOMENTS + +var getSetSecond = makeGetSet('Seconds', false); + +// FORMATTING + +addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); +}); + +addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); +}); + +addFormatToken(0, ['SSS', 3], 0, 'millisecond'); +addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; +}); +addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; +}); +addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; +}); +addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; +}); +addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; +}); +addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; +}); + +// PARSING + +addRegexToken('S', match1to3, match1); +addRegexToken('SS', match1to3, match2); +addRegexToken('SSS', match1to3, match3); + +var token, getSetMillisecond; +for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); +} + +function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); +} + +for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); +} + +getSetMillisecond = makeGetSet('Milliseconds', false); + +// FORMATTING + +addFormatToken('z', 0, 0, 'zoneAbbr'); +addFormatToken('zz', 0, 0, 'zoneName'); + +// MOMENTS + +function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; +} + +function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; +} + +var proto = Moment.prototype; + +proto.add = add; +proto.calendar = calendar$1; +proto.clone = clone; +proto.diff = diff; +proto.endOf = endOf; +proto.format = format; +proto.from = from; +proto.fromNow = fromNow; +proto.to = to; +proto.toNow = toNow; +proto.get = stringGet; +proto.invalidAt = invalidAt; +proto.isAfter = isAfter; +proto.isBefore = isBefore; +proto.isBetween = isBetween; +proto.isSame = isSame; +proto.isSameOrAfter = isSameOrAfter; +proto.isSameOrBefore = isSameOrBefore; +proto.isValid = isValid$2; +proto.lang = lang; +proto.locale = locale; +proto.localeData = localeData; +proto.max = prototypeMax; +proto.min = prototypeMin; +proto.parsingFlags = parsingFlags; +proto.set = stringSet; +proto.startOf = startOf; +proto.subtract = subtract; +proto.toArray = toArray; +proto.toObject = toObject; +proto.toDate = toDate; +proto.toISOString = toISOString; +proto.inspect = inspect; +if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; +} +proto.toJSON = toJSON; +proto.toString = toString; +proto.unix = unix; +proto.valueOf = valueOf; +proto.creationData = creationData; +proto.eraName = getEraName; +proto.eraNarrow = getEraNarrow; +proto.eraAbbr = getEraAbbr; +proto.eraYear = getEraYear; +proto.year = getSetYear; +proto.isLeapYear = getIsLeapYear; +proto.weekYear = getSetWeekYear; +proto.isoWeekYear = getSetISOWeekYear; +proto.quarter = proto.quarters = getSetQuarter; +proto.month = getSetMonth; +proto.daysInMonth = getDaysInMonth; +proto.week = proto.weeks = getSetWeek; +proto.isoWeek = proto.isoWeeks = getSetISOWeek; +proto.weeksInYear = getWeeksInYear; +proto.weeksInWeekYear = getWeeksInWeekYear; +proto.isoWeeksInYear = getISOWeeksInYear; +proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; +proto.date = getSetDayOfMonth; +proto.day = proto.days = getSetDayOfWeek; +proto.weekday = getSetLocaleDayOfWeek; +proto.isoWeekday = getSetISODayOfWeek; +proto.dayOfYear = getSetDayOfYear; +proto.hour = proto.hours = getSetHour; +proto.minute = proto.minutes = getSetMinute; +proto.second = proto.seconds = getSetSecond; +proto.millisecond = proto.milliseconds = getSetMillisecond; +proto.utcOffset = getSetOffset; +proto.utc = setOffsetToUTC; +proto.local = setOffsetToLocal; +proto.parseZone = setOffsetToParsedOffset; +proto.hasAlignedHourOffset = hasAlignedHourOffset; +proto.isDST = isDaylightSavingTime; +proto.isLocal = isLocal; +proto.isUtcOffset = isUtcOffset; +proto.isUtc = isUtc; +proto.isUTC = isUtc; +proto.zoneAbbr = getZoneAbbr; +proto.zoneName = getZoneName; +proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth +); +proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth +); +proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear +); +proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone +); +proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted +); + +function createUnix(input) { + return createLocal(input * 1000); +} + +function createInZone() { + return createLocal.apply(null, arguments).parseZone(); +} + +function preParsePostFormat(string) { + return string; +} + +var proto$1 = Locale.prototype; + +proto$1.calendar = calendar; +proto$1.longDateFormat = longDateFormat; +proto$1.invalidDate = invalidDate; +proto$1.ordinal = ordinal; +proto$1.preparse = preParsePostFormat; +proto$1.postformat = preParsePostFormat; +proto$1.relativeTime = relativeTime; +proto$1.pastFuture = pastFuture; +proto$1.set = set; +proto$1.eras = localeEras; +proto$1.erasParse = localeErasParse; +proto$1.erasConvertYear = localeErasConvertYear; +proto$1.erasAbbrRegex = erasAbbrRegex; +proto$1.erasNameRegex = erasNameRegex; +proto$1.erasNarrowRegex = erasNarrowRegex; + +proto$1.months = localeMonths; +proto$1.monthsShort = localeMonthsShort; +proto$1.monthsParse = localeMonthsParse; +proto$1.monthsRegex = monthsRegex; +proto$1.monthsShortRegex = monthsShortRegex; +proto$1.week = localeWeek; +proto$1.firstDayOfYear = localeFirstDayOfYear; +proto$1.firstDayOfWeek = localeFirstDayOfWeek; + +proto$1.weekdays = localeWeekdays; +proto$1.weekdaysMin = localeWeekdaysMin; +proto$1.weekdaysShort = localeWeekdaysShort; +proto$1.weekdaysParse = localeWeekdaysParse; + +proto$1.weekdaysRegex = weekdaysRegex; +proto$1.weekdaysShortRegex = weekdaysShortRegex; +proto$1.weekdaysMinRegex = weekdaysMinRegex; + +proto$1.isPM = localeIsPM; +proto$1.meridiem = localeMeridiem; + +function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); +} + +function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; +} + +// () +// (5) +// (fmt, 5) +// (fmt) +// (true) +// (true, 5) +// (true, fmt, 5) +// (true, fmt) +function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; +} + +function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); +} + +function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); +} + +function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); +} + +function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); +} + +function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); +} + +getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); + +// Side effect imports + +hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale +); +hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale +); + +var mathAbs = Math.abs; + +function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; +} + +function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); +} + +// supports only 2.0-style add(1, 's') or add(duration) +function add$1(input, value) { + return addSubtract$1(this, input, value, 1); +} + +// supports only 2.0-style subtract(1, 's') or subtract(duration) +function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); +} + +function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } +} + +function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; +} + +function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; +} + +function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; +} + +function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } +} + +function makeAs(alias) { + return function () { + return this.as(alias); + }; +} + +var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'), + valueOf$1 = asMilliseconds; + +function clone$1() { + return createDuration(this); +} + +function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; +} + +function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; +} + +var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + +function weeks() { + return absFloor(this.days() / 7); +} + +var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + +// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize +function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); +} + +function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); +} + +// This function allows you to set the rounding function for relative time strings +function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; +} + +// This function allows you to set a threshold for relative time strings +function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; +} + +function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); +} + +var abs$1 = Math.abs; + +function sign(x) { + return (x > 0) - (x < 0) || +x; +} + +function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); +} + +var proto$2 = Duration.prototype; + +proto$2.isValid = isValid$1; +proto$2.abs = abs; +proto$2.add = add$1; +proto$2.subtract = subtract$1; +proto$2.as = as; +proto$2.asMilliseconds = asMilliseconds; +proto$2.asSeconds = asSeconds; +proto$2.asMinutes = asMinutes; +proto$2.asHours = asHours; +proto$2.asDays = asDays; +proto$2.asWeeks = asWeeks; +proto$2.asMonths = asMonths; +proto$2.asQuarters = asQuarters; +proto$2.asYears = asYears; +proto$2.valueOf = valueOf$1; +proto$2._bubble = bubble; +proto$2.clone = clone$1; +proto$2.get = get$2; +proto$2.milliseconds = milliseconds; +proto$2.seconds = seconds; +proto$2.minutes = minutes; +proto$2.hours = hours; +proto$2.days = days; +proto$2.weeks = weeks; +proto$2.months = months; +proto$2.years = years; +proto$2.humanize = humanize; +proto$2.toISOString = toISOString$1; +proto$2.toString = toISOString$1; +proto$2.toJSON = toISOString$1; +proto$2.locale = locale; +proto$2.localeData = localeData; + +proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 +); +proto$2.lang = lang; + +// FORMATTING + +addFormatToken('X', 0, 0, 'unix'); +addFormatToken('x', 0, 0, 'valueOf'); + +// PARSING + +addRegexToken('x', matchSigned); +addRegexToken('X', matchTimestamp); +addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); +}); +addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); +}); + +//! moment.js + +hooks.version = '2.30.1'; + +setHookCallback(createLocal); + +hooks.fn = proto; +hooks.min = min; +hooks.max = max; +hooks.now = now; +hooks.utc = createUTC; +hooks.unix = createUnix; +hooks.months = listMonths; +hooks.isDate = isDate; +hooks.locale = getSetGlobalLocale; +hooks.invalid = createInvalid; +hooks.duration = createDuration; +hooks.isMoment = isMoment; +hooks.weekdays = listWeekdays; +hooks.parseZone = createInZone; +hooks.localeData = getLocale; +hooks.isDuration = isDuration; +hooks.monthsShort = listMonthsShort; +hooks.weekdaysMin = listWeekdaysMin; +hooks.defineLocale = defineLocale; +hooks.updateLocale = updateLocale; +hooks.locales = listLocales; +hooks.weekdaysShort = listWeekdaysShort; +hooks.normalizeUnits = normalizeUnits; +hooks.relativeTimeRounding = getSetRelativeTimeRounding; +hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; +hooks.calendarFormat = getCalendarFormat; +hooks.prototype = proto; + +// currently HTML5 input type only supports 24-hour formats +hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // +}; + +export default hooks; diff --git a/node_modules/moment/ender.js b/node_modules/moment/ender.js new file mode 100644 index 0000000..71462a7 --- /dev/null +++ b/node_modules/moment/ender.js @@ -0,0 +1 @@ +$.ender({ moment: require('moment') }) diff --git a/node_modules/moment/locale/af.js b/node_modules/moment/locale/af.js new file mode 100644 index 0000000..e77b15b --- /dev/null +++ b/node_modules/moment/locale/af.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var af = moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + return af; + +}))); diff --git a/node_modules/moment/locale/ar-dz.js b/node_modules/moment/locale/ar-dz.js new file mode 100644 index 0000000..8f9e149 --- /dev/null +++ b/node_modules/moment/locale/ar-dz.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var arDz = moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arDz; + +}))); diff --git a/node_modules/moment/locale/ar-kw.js b/node_modules/moment/locale/ar-kw.js new file mode 100644 index 0000000..c6ecef8 --- /dev/null +++ b/node_modules/moment/locale/ar-kw.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arKw = moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arKw; + +}))); diff --git a/node_modules/moment/locale/ar-ly.js b/node_modules/moment/locale/ar-ly.js new file mode 100644 index 0000000..0ec9ec8 --- /dev/null +++ b/node_modules/moment/locale/ar-ly.js @@ -0,0 +1,182 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var arLy = moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arLy; + +}))); diff --git a/node_modules/moment/locale/ar-ma.js b/node_modules/moment/locale/ar-ma.js new file mode 100644 index 0000000..11f061a --- /dev/null +++ b/node_modules/moment/locale/ar-ma.js @@ -0,0 +1,67 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arMa = moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arMa; + +}))); diff --git a/node_modules/moment/locale/ar-ps.js b/node_modules/moment/locale/ar-ps.js new file mode 100644 index 0000000..4533bfa --- /dev/null +++ b/node_modules/moment/locale/ar-ps.js @@ -0,0 +1,123 @@ +//! moment.js locale configuration +//! locale : Arabic (Palestine) [ar-ps] +//! author : Majd Al-Shihabi : https://github.com/majdal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + var arPs = moment.defineLocale('ar-ps', { + months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split( + '_' + ), + monthsShort: + 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .split('') // reversed since negative lookbehind not supported everywhere + .reverse() + .join('') + .replace(/[١٢](?![\u062a\u0643])/g, function (match) { + return numberMap[match]; + }) + .split('') + .reverse() + .join('') + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return arPs; + +}))); diff --git a/node_modules/moment/locale/ar-sa.js b/node_modules/moment/locale/ar-sa.js new file mode 100644 index 0000000..e329df0 --- /dev/null +++ b/node_modules/moment/locale/ar-sa.js @@ -0,0 +1,116 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + var arSa = moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return arSa; + +}))); diff --git a/node_modules/moment/locale/ar-tn.js b/node_modules/moment/locale/ar-tn.js new file mode 100644 index 0000000..a390ed2 --- /dev/null +++ b/node_modules/moment/locale/ar-tn.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arTn = moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arTn; + +}))); diff --git a/node_modules/moment/locale/ar.js b/node_modules/moment/locale/ar.js new file mode 100644 index 0000000..5bfb057 --- /dev/null +++ b/node_modules/moment/locale/ar.js @@ -0,0 +1,200 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + var ar = moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ar; + +}))); diff --git a/node_modules/moment/locale/az.js b/node_modules/moment/locale/az.js new file mode 100644 index 0000000..472bee1 --- /dev/null +++ b/node_modules/moment/locale/az.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; + + var az = moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return az; + +}))); diff --git a/node_modules/moment/locale/be.js b/node_modules/moment/locale/be.js new file mode 100644 index 0000000..fd7e772 --- /dev/null +++ b/node_modules/moment/locale/be.js @@ -0,0 +1,153 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + var be = moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return be; + +}))); diff --git a/node_modules/moment/locale/bg.js b/node_modules/moment/locale/bg.js new file mode 100644 index 0000000..5a1bda8 --- /dev/null +++ b/node_modules/moment/locale/bg.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bg = moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bg; + +}))); diff --git a/node_modules/moment/locale/bm.js b/node_modules/moment/locale/bm.js new file mode 100644 index 0000000..302410c --- /dev/null +++ b/node_modules/moment/locale/bm.js @@ -0,0 +1,62 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bm = moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return bm; + +}))); diff --git a/node_modules/moment/locale/bn-bd.js b/node_modules/moment/locale/bn-bd.js new file mode 100644 index 0000000..1154aa4 --- /dev/null +++ b/node_modules/moment/locale/bn-bd.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bnBd = moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bnBd; + +}))); diff --git a/node_modules/moment/locale/bn.js b/node_modules/moment/locale/bn.js new file mode 100644 index 0000000..e5e3e5f --- /dev/null +++ b/node_modules/moment/locale/bn.js @@ -0,0 +1,130 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + var bn = moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bn; + +}))); diff --git a/node_modules/moment/locale/bo.js b/node_modules/moment/locale/bo.js new file mode 100644 index 0000000..c4a7c52 --- /dev/null +++ b/node_modules/moment/locale/bo.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + + var bo = moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bo; + +}))); diff --git a/node_modules/moment/locale/br.js b/node_modules/moment/locale/br.js new file mode 100644 index 0000000..bd047fe --- /dev/null +++ b/node_modules/moment/locale/br.js @@ -0,0 +1,179 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + var br = moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + return br; + +}))); diff --git a/node_modules/moment/locale/bs.js b/node_modules/moment/locale/bs.js new file mode 100644 index 0000000..55a4d80 --- /dev/null +++ b/node_modules/moment/locale/bs.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! author : Rasid Redzic : https://github.com/rasidre +//! based on (hr) translation by Bojan Marković + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + switch (key) { + case 'm': + return withoutSuffix + ? 'jedna minuta' + : isFuture + ? 'jednu minutu' + : 'jedne minute'; + } + } + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jedan sat'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var bs = moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: processRelativeTime, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bs; + +}))); diff --git a/node_modules/moment/locale/ca.js b/node_modules/moment/locale/ca.js new file mode 100644 index 0000000..50f264c --- /dev/null +++ b/node_modules/moment/locale/ca.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ca = moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ca; + +}))); diff --git a/node_modules/moment/locale/cs.js b/node_modules/moment/locale/cs.js new file mode 100644 index 0000000..7cd8832 --- /dev/null +++ b/node_modules/moment/locale/cs.js @@ -0,0 +1,192 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = { + standalone: + 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + var cs = moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return cs; + +}))); diff --git a/node_modules/moment/locale/cv.js b/node_modules/moment/locale/cv.js new file mode 100644 index 0000000..6749d48 --- /dev/null +++ b/node_modules/moment/locale/cv.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cv = moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return cv; + +}))); diff --git a/node_modules/moment/locale/cy.js b/node_modules/moment/locale/cy.js new file mode 100644 index 0000000..3b987f2 --- /dev/null +++ b/node_modules/moment/locale/cy.js @@ -0,0 +1,109 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cy = moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return cy; + +}))); diff --git a/node_modules/moment/locale/da.js b/node_modules/moment/locale/da.js new file mode 100644 index 0000000..2ed0583 --- /dev/null +++ b/node_modules/moment/locale/da.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var da = moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return da; + +}))); diff --git a/node_modules/moment/locale/de-at.js b/node_modules/moment/locale/de-at.js new file mode 100644 index 0000000..7c31302 --- /dev/null +++ b/node_modules/moment/locale/de-at.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deAt = moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return deAt; + +}))); diff --git a/node_modules/moment/locale/de-ch.js b/node_modules/moment/locale/de-ch.js new file mode 100644 index 0000000..10fed17 --- /dev/null +++ b/node_modules/moment/locale/de-ch.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deCh = moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return deCh; + +}))); diff --git a/node_modules/moment/locale/de.js b/node_modules/moment/locale/de.js new file mode 100644 index 0000000..cc061eb --- /dev/null +++ b/node_modules/moment/locale/de.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de = moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return de; + +}))); diff --git a/node_modules/moment/locale/dv.js b/node_modules/moment/locale/dv.js new file mode 100644 index 0000000..e6cc8f6 --- /dev/null +++ b/node_modules/moment/locale/dv.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + + var dv = moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return dv; + +}))); diff --git a/node_modules/moment/locale/el.js b/node_modules/moment/locale/el.js new file mode 100644 index 0000000..a147859 --- /dev/null +++ b/node_modules/moment/locale/el.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + var el = moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, + }); + + return el; + +}))); diff --git a/node_modules/moment/locale/en-au.js b/node_modules/moment/locale/en-au.js new file mode 100644 index 0000000..869f51d --- /dev/null +++ b/node_modules/moment/locale/en-au.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enAu = moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enAu; + +}))); diff --git a/node_modules/moment/locale/en-ca.js b/node_modules/moment/locale/en-ca.js new file mode 100644 index 0000000..29a3390 --- /dev/null +++ b/node_modules/moment/locale/en-ca.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enCa = moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enCa; + +}))); diff --git a/node_modules/moment/locale/en-gb.js b/node_modules/moment/locale/en-gb.js new file mode 100644 index 0000000..a159749 --- /dev/null +++ b/node_modules/moment/locale/en-gb.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enGb = moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enGb; + +}))); diff --git a/node_modules/moment/locale/en-ie.js b/node_modules/moment/locale/en-ie.js new file mode 100644 index 0000000..bbde281 --- /dev/null +++ b/node_modules/moment/locale/en-ie.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIe = moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enIe; + +}))); diff --git a/node_modules/moment/locale/en-il.js b/node_modules/moment/locale/en-il.js new file mode 100644 index 0000000..c9c567a --- /dev/null +++ b/node_modules/moment/locale/en-il.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIl = moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enIl; + +}))); diff --git a/node_modules/moment/locale/en-in.js b/node_modules/moment/locale/en-in.js new file mode 100644 index 0000000..c10fb4b --- /dev/null +++ b/node_modules/moment/locale/en-in.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIn = moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return enIn; + +}))); diff --git a/node_modules/moment/locale/en-nz.js b/node_modules/moment/locale/en-nz.js new file mode 100644 index 0000000..3a9d88f --- /dev/null +++ b/node_modules/moment/locale/en-nz.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enNz = moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enNz; + +}))); diff --git a/node_modules/moment/locale/en-sg.js b/node_modules/moment/locale/en-sg.js new file mode 100644 index 0000000..f7805ad --- /dev/null +++ b/node_modules/moment/locale/en-sg.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enSg = moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enSg; + +}))); diff --git a/node_modules/moment/locale/eo.js b/node_modules/moment/locale/eo.js new file mode 100644 index 0000000..799dad0 --- /dev/null +++ b/node_modules/moment/locale/eo.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eo = moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eo; + +}))); diff --git a/node_modules/moment/locale/es-do.js b/node_modules/moment/locale/es-do.js new file mode 100644 index 0000000..8a557c3 --- /dev/null +++ b/node_modules/moment/locale/es-do.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esDo = moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return esDo; + +}))); diff --git a/node_modules/moment/locale/es-mx.js b/node_modules/moment/locale/es-mx.js new file mode 100644 index 0000000..a233e40 --- /dev/null +++ b/node_modules/moment/locale/es-mx.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esMx = moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + return esMx; + +}))); diff --git a/node_modules/moment/locale/es-us.js b/node_modules/moment/locale/es-us.js new file mode 100644 index 0000000..2c52254 --- /dev/null +++ b/node_modules/moment/locale/es-us.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esUs = moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return esUs; + +}))); diff --git a/node_modules/moment/locale/es.js b/node_modules/moment/locale/es.js new file mode 100644 index 0000000..7fc4628 --- /dev/null +++ b/node_modules/moment/locale/es.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var es = moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + return es; + +}))); diff --git a/node_modules/moment/locale/et.js b/node_modules/moment/locale/et.js new file mode 100644 index 0000000..7c8760d --- /dev/null +++ b/node_modules/moment/locale/et.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + var et = moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return et; + +}))); diff --git a/node_modules/moment/locale/eu.js b/node_modules/moment/locale/eu.js new file mode 100644 index 0000000..ca2e547 --- /dev/null +++ b/node_modules/moment/locale/eu.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eu = moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eu; + +}))); diff --git a/node_modules/moment/locale/fa.js b/node_modules/moment/locale/fa.js new file mode 100644 index 0000000..845757b --- /dev/null +++ b/node_modules/moment/locale/fa.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + + var fa = moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return fa; + +}))); diff --git a/node_modules/moment/locale/fi.js b/node_modules/moment/locale/fi.js new file mode 100644 index 0000000..07e57cf --- /dev/null +++ b/node_modules/moment/locale/fi.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + var fi = moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fi; + +}))); diff --git a/node_modules/moment/locale/fil.js b/node_modules/moment/locale/fil.js new file mode 100644 index 0000000..13103e8 --- /dev/null +++ b/node_modules/moment/locale/fil.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fil = moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fil; + +}))); diff --git a/node_modules/moment/locale/fo.js b/node_modules/moment/locale/fo.js new file mode 100644 index 0000000..217fcfb --- /dev/null +++ b/node_modules/moment/locale/fo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fo = moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fo; + +}))); diff --git a/node_modules/moment/locale/fr-ca.js b/node_modules/moment/locale/fr-ca.js new file mode 100644 index 0000000..7d48fd7 --- /dev/null +++ b/node_modules/moment/locale/fr-ca.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCa = moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + return frCa; + +}))); diff --git a/node_modules/moment/locale/fr-ch.js b/node_modules/moment/locale/fr-ch.js new file mode 100644 index 0000000..c28d81c --- /dev/null +++ b/node_modules/moment/locale/fr-ch.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCh = moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return frCh; + +}))); diff --git a/node_modules/moment/locale/fr.js b/node_modules/moment/locale/fr.js new file mode 100644 index 0000000..4e5536b --- /dev/null +++ b/node_modules/moment/locale/fr.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + + var fr = moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fr; + +}))); diff --git a/node_modules/moment/locale/fy.js b/node_modules/moment/locale/fy.js new file mode 100644 index 0000000..46cac08 --- /dev/null +++ b/node_modules/moment/locale/fy.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + var fy = moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return fy; + +}))); diff --git a/node_modules/moment/locale/ga.js b/node_modules/moment/locale/ga.js new file mode 100644 index 0000000..96f988c --- /dev/null +++ b/node_modules/moment/locale/ga.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + + var ga = moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ga; + +}))); diff --git a/node_modules/moment/locale/gd.js b/node_modules/moment/locale/gd.js new file mode 100644 index 0000000..b053838 --- /dev/null +++ b/node_modules/moment/locale/gd.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + + var gd = moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return gd; + +}))); diff --git a/node_modules/moment/locale/gl.js b/node_modules/moment/locale/gl.js new file mode 100644 index 0000000..16dcb5a --- /dev/null +++ b/node_modules/moment/locale/gl.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var gl = moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return gl; + +}))); diff --git a/node_modules/moment/locale/gom-deva.js b/node_modules/moment/locale/gom-deva.js new file mode 100644 index 0000000..ae93d0d --- /dev/null +++ b/node_modules/moment/locale/gom-deva.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomDeva = moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, + }); + + return gomDeva; + +}))); diff --git a/node_modules/moment/locale/gom-latn.js b/node_modules/moment/locale/gom-latn.js new file mode 100644 index 0000000..93cbe15 --- /dev/null +++ b/node_modules/moment/locale/gom-latn.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomLatn = moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + return gomLatn; + +}))); diff --git a/node_modules/moment/locale/gu.js b/node_modules/moment/locale/gu.js new file mode 100644 index 0000000..6583f77 --- /dev/null +++ b/node_modules/moment/locale/gu.js @@ -0,0 +1,133 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + + var gu = moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return gu; + +}))); diff --git a/node_modules/moment/locale/he.js b/node_modules/moment/locale/he.js new file mode 100644 index 0000000..e19a0f9 --- /dev/null +++ b/node_modules/moment/locale/he.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var he = moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, + }); + + return he; + +}))); diff --git a/node_modules/moment/locale/hi.js b/node_modules/moment/locale/hi.js new file mode 100644 index 0000000..56515bd --- /dev/null +++ b/node_modules/moment/locale/hi.js @@ -0,0 +1,179 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + + var hi = moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return hi; + +}))); diff --git a/node_modules/moment/locale/hr.js b/node_modules/moment/locale/hr.js new file mode 100644 index 0000000..f41cce0 --- /dev/null +++ b/node_modules/moment/locale/hr.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var hr = moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hr; + +}))); diff --git a/node_modules/moment/locale/hu.js b/node_modules/moment/locale/hu.js new file mode 100644 index 0000000..162959d --- /dev/null +++ b/node_modules/moment/locale/hu.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + var hu = moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return hu; + +}))); diff --git a/node_modules/moment/locale/hy-am.js b/node_modules/moment/locale/hy-am.js new file mode 100644 index 0000000..9c65b1e --- /dev/null +++ b/node_modules/moment/locale/hy-am.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var hyAm = moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hyAm; + +}))); diff --git a/node_modules/moment/locale/id.js b/node_modules/moment/locale/id.js new file mode 100644 index 0000000..9f8ff0a --- /dev/null +++ b/node_modules/moment/locale/id.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var id = moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return id; + +}))); diff --git a/node_modules/moment/locale/is.js b/node_modules/moment/locale/is.js new file mode 100644 index 0000000..0252006 --- /dev/null +++ b/node_modules/moment/locale/is.js @@ -0,0 +1,151 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + var is = moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return is; + +}))); diff --git a/node_modules/moment/locale/it-ch.js b/node_modules/moment/locale/it-ch.js new file mode 100644 index 0000000..8042827 --- /dev/null +++ b/node_modules/moment/locale/it-ch.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var itCh = moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return itCh; + +}))); diff --git a/node_modules/moment/locale/it.js b/node_modules/moment/locale/it.js new file mode 100644 index 0000000..910e005 --- /dev/null +++ b/node_modules/moment/locale/it.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var it = moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return it; + +}))); diff --git a/node_modules/moment/locale/ja.js b/node_modules/moment/locale/ja.js new file mode 100644 index 0000000..88d8454 --- /dev/null +++ b/node_modules/moment/locale/ja.js @@ -0,0 +1,159 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ja = moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, + }); + + return ja; + +}))); diff --git a/node_modules/moment/locale/jv.js b/node_modules/moment/locale/jv.js new file mode 100644 index 0000000..ab6655f --- /dev/null +++ b/node_modules/moment/locale/jv.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var jv = moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return jv; + +}))); diff --git a/node_modules/moment/locale/ka.js b/node_modules/moment/locale/ka.js new file mode 100644 index 0000000..6357669 --- /dev/null +++ b/node_modules/moment/locale/ka.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ka = moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + return ka; + +}))); diff --git a/node_modules/moment/locale/kk.js b/node_modules/moment/locale/kk.js new file mode 100644 index 0000000..38f2e8c --- /dev/null +++ b/node_modules/moment/locale/kk.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; + + var kk = moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return kk; + +}))); diff --git a/node_modules/moment/locale/km.js b/node_modules/moment/locale/km.js new file mode 100644 index 0000000..5306436 --- /dev/null +++ b/node_modules/moment/locale/km.js @@ -0,0 +1,114 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + + var km = moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return km; + +}))); diff --git a/node_modules/moment/locale/kn.js b/node_modules/moment/locale/kn.js new file mode 100644 index 0000000..5fe70b0 --- /dev/null +++ b/node_modules/moment/locale/kn.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + + var kn = moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return kn; + +}))); diff --git a/node_modules/moment/locale/ko.js b/node_modules/moment/locale/ko.js new file mode 100644 index 0000000..c81c13e --- /dev/null +++ b/node_modules/moment/locale/ko.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ko = moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + }); + + return ko; + +}))); diff --git a/node_modules/moment/locale/ku-kmr.js b/node_modules/moment/locale/ku-kmr.js new file mode 100644 index 0000000..8ba23ed --- /dev/null +++ b/node_modules/moment/locale/ku-kmr.js @@ -0,0 +1,125 @@ +//! moment.js locale configuration +//! locale : Northern Kurdish [ku-kmr] +//! authors : Mazlum Özdogan : https://github.com/mergehez + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(num, withoutSuffix, key, isFuture) { + var format = { + s: ['çend sanîye', 'çend sanîyeyan'], + ss: [num + ' sanîye', num + ' sanîyeyan'], + m: ['deqîqeyek', 'deqîqeyekê'], + mm: [num + ' deqîqe', num + ' deqîqeyan'], + h: ['saetek', 'saetekê'], + hh: [num + ' saet', num + ' saetan'], + d: ['rojek', 'rojekê'], + dd: [num + ' roj', num + ' rojan'], + w: ['hefteyek', 'hefteyekê'], + ww: [num + ' hefte', num + ' hefteyan'], + M: ['mehek', 'mehekê'], + MM: [num + ' meh', num + ' mehan'], + y: ['salek', 'salekê'], + yy: [num + ' sal', num + ' salan'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + // function obliqueNumSuffix(num) { + // if(num.includes(':')) + // num = parseInt(num.split(':')[0]); + // else + // num = parseInt(num); + // return num == 0 || num % 10 == 1 ? 'ê' + // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); + // } + function ezafeNumSuffix(num) { + num = '' + num; + var l = num.substring(num.length - 1), + ll = num.length > 1 ? num.substring(num.length - 2) : ''; + if ( + !(ll == 12 || ll == 13) && + (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') + ) + return 'yê'; + return 'ê'; + } + + var kuKmr = moment.defineLocale('ku-kmr', { + // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) + // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' + // But the names below are more well known and handy + months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split( + '_' + ), + monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), + monthsParseExact: true, + weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), + weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), + weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'bn' : 'BN'; + } else { + return isLower ? 'pn' : 'PN'; + } + }, + meridiemParse: /bn|BN|pn|PN/, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[a] YYYY[an]', + LLL: 'Do MMMM[a] YYYY[an] HH:mm', + LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', + ll: 'Do MMM[.] YYYY[an]', + lll: 'Do MMM[.] YYYY[an] HH:mm', + llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', + }, + calendar: { + sameDay: '[Îro di saet] LT [de]', + nextDay: '[Sibê di saet] LT [de]', + nextWeek: 'dddd [di saet] LT [de]', + lastDay: '[Duh di saet] LT [de]', + lastWeek: 'dddd[a borî di saet] LT [de]', + sameElse: 'L', + }, + relativeTime: { + future: 'di %s de', + past: 'berî %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, + ordinal: function (num, period) { + var p = period.toLowerCase(); + if (p.includes('w') || p.includes('m')) return num + '.'; + + return num + ezafeNumSuffix(num); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return kuKmr; + +}))); diff --git a/node_modules/moment/locale/ku.js b/node_modules/moment/locale/ku.js new file mode 100644 index 0000000..71c56a1 --- /dev/null +++ b/node_modules/moment/locale/ku.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + + var ku = moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ku; + +}))); diff --git a/node_modules/moment/locale/ky.js b/node_modules/moment/locale/ky.js new file mode 100644 index 0000000..6dce606 --- /dev/null +++ b/node_modules/moment/locale/ky.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; + + var ky = moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ky; + +}))); diff --git a/node_modules/moment/locale/lb.js b/node_modules/moment/locale/lb.js new file mode 100644 index 0000000..ffcb758 --- /dev/null +++ b/node_modules/moment/locale/lb.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + var lb = moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lb; + +}))); diff --git a/node_modules/moment/locale/lo.js b/node_modules/moment/locale/lo.js new file mode 100644 index 0000000..18fc666 --- /dev/null +++ b/node_modules/moment/locale/lo.js @@ -0,0 +1,77 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var lo = moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); + + return lo; + +}))); diff --git a/node_modules/moment/locale/lt.js b/node_modules/moment/locale/lt.js new file mode 100644 index 0000000..4140cf8 --- /dev/null +++ b/node_modules/moment/locale/lt.js @@ -0,0 +1,136 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + var lt = moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lt; + +}))); diff --git a/node_modules/moment/locale/lv.js b/node_modules/moment/locale/lv.js new file mode 100644 index 0000000..109fdfe --- /dev/null +++ b/node_modules/moment/locale/lv.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + var lv = moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return lv; + +}))); diff --git a/node_modules/moment/locale/me.js b/node_modules/moment/locale/me.js new file mode 100644 index 0000000..9b2583d --- /dev/null +++ b/node_modules/moment/locale/me.js @@ -0,0 +1,128 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + var me = moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return me; + +}))); diff --git a/node_modules/moment/locale/mi.js b/node_modules/moment/locale/mi.js new file mode 100644 index 0000000..f95f9cb --- /dev/null +++ b/node_modules/moment/locale/mi.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mi = moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return mi; + +}))); diff --git a/node_modules/moment/locale/mk.js b/node_modules/moment/locale/mk.js new file mode 100644 index 0000000..c66500d --- /dev/null +++ b/node_modules/moment/locale/mk.js @@ -0,0 +1,97 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mk = moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return mk; + +}))); diff --git a/node_modules/moment/locale/ml.js b/node_modules/moment/locale/ml.js new file mode 100644 index 0000000..6a7298c --- /dev/null +++ b/node_modules/moment/locale/ml.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ml = moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); + + return ml; + +}))); diff --git a/node_modules/moment/locale/mn.js b/node_modules/moment/locale/mn.js new file mode 100644 index 0000000..a37b792 --- /dev/null +++ b/node_modules/moment/locale/mn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } + + var mn = moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, + }); + + return mn; + +}))); diff --git a/node_modules/moment/locale/mr.js b/node_modules/moment/locale/mr.js new file mode 100644 index 0000000..73d5762 --- /dev/null +++ b/node_modules/moment/locale/mr.js @@ -0,0 +1,214 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } + + var mr = moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return mr; + +}))); diff --git a/node_modules/moment/locale/ms-my.js b/node_modules/moment/locale/ms-my.js new file mode 100644 index 0000000..8d66c2b --- /dev/null +++ b/node_modules/moment/locale/ms-my.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var msMy = moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return msMy; + +}))); diff --git a/node_modules/moment/locale/ms.js b/node_modules/moment/locale/ms.js new file mode 100644 index 0000000..37782fb --- /dev/null +++ b/node_modules/moment/locale/ms.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ms = moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ms; + +}))); diff --git a/node_modules/moment/locale/mt.js b/node_modules/moment/locale/mt.js new file mode 100644 index 0000000..94b2559 --- /dev/null +++ b/node_modules/moment/locale/mt.js @@ -0,0 +1,67 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mt = moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return mt; + +}))); diff --git a/node_modules/moment/locale/my.js b/node_modules/moment/locale/my.js new file mode 100644 index 0000000..c1ef2df --- /dev/null +++ b/node_modules/moment/locale/my.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + + var my = moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return my; + +}))); diff --git a/node_modules/moment/locale/nb.js b/node_modules/moment/locale/nb.js new file mode 100644 index 0000000..1f271aa --- /dev/null +++ b/node_modules/moment/locale/nb.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nb = moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'én time', + hh: '%d timer', + d: 'én dag', + dd: '%d dager', + w: 'én uke', + ww: '%d uker', + M: 'én måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nb; + +}))); diff --git a/node_modules/moment/locale/ne.js b/node_modules/moment/locale/ne.js new file mode 100644 index 0000000..d455e00 --- /dev/null +++ b/node_modules/moment/locale/ne.js @@ -0,0 +1,132 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + var ne = moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ne; + +}))); diff --git a/node_modules/moment/locale/nl-be.js b/node_modules/moment/locale/nl-be.js new file mode 100644 index 0000000..a35546f --- /dev/null +++ b/node_modules/moment/locale/nl-be.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nlBe = moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nlBe; + +}))); diff --git a/node_modules/moment/locale/nl.js b/node_modules/moment/locale/nl.js new file mode 100644 index 0000000..a285c04 --- /dev/null +++ b/node_modules/moment/locale/nl.js @@ -0,0 +1,115 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nl = moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nl; + +}))); diff --git a/node_modules/moment/locale/nn.js b/node_modules/moment/locale/nn.js new file mode 100644 index 0000000..c65268e --- /dev/null +++ b/node_modules/moment/locale/nn.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nn = moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return nn; + +}))); diff --git a/node_modules/moment/locale/oc-lnc.js b/node_modules/moment/locale/oc-lnc.js new file mode 100644 index 0000000..a6a8c91 --- /dev/null +++ b/node_modules/moment/locale/oc-lnc.js @@ -0,0 +1,96 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ocLnc = moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, + }); + + return ocLnc; + +}))); diff --git a/node_modules/moment/locale/pa-in.js b/node_modules/moment/locale/pa-in.js new file mode 100644 index 0000000..d57eb75 --- /dev/null +++ b/node_modules/moment/locale/pa-in.js @@ -0,0 +1,133 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + + var paIn = moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return paIn; + +}))); diff --git a/node_modules/moment/locale/pl.js b/node_modules/moment/locale/pl.js new file mode 100644 index 0000000..0750bb3 --- /dev/null +++ b/node_modules/moment/locale/pl.js @@ -0,0 +1,151 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } + + var pl = moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return pl; + +}))); diff --git a/node_modules/moment/locale/pt-br.js b/node_modules/moment/locale/pt-br.js new file mode 100644 index 0000000..ee123bd --- /dev/null +++ b/node_modules/moment/locale/pt-br.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ptBr = moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', + }); + + return ptBr; + +}))); diff --git a/node_modules/moment/locale/pt.js b/node_modules/moment/locale/pt.js new file mode 100644 index 0000000..a113ed7 --- /dev/null +++ b/node_modules/moment/locale/pt.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pt = moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return pt; + +}))); diff --git a/node_modules/moment/locale/ro.js b/node_modules/moment/locale/ro.js new file mode 100644 index 0000000..c2a9dd8 --- /dev/null +++ b/node_modules/moment/locale/ro.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + var ro = moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ro; + +}))); diff --git a/node_modules/moment/locale/ru.js b/node_modules/moment/locale/ru.js new file mode 100644 index 0000000..d313eae --- /dev/null +++ b/node_modules/moment/locale/ru.js @@ -0,0 +1,224 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + var ru = moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ru; + +}))); diff --git a/node_modules/moment/locale/sd.js b/node_modules/moment/locale/sd.js new file mode 100644 index 0000000..56ff8c7 --- /dev/null +++ b/node_modules/moment/locale/sd.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + + var sd = moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sd; + +}))); diff --git a/node_modules/moment/locale/se.js b/node_modules/moment/locale/se.js new file mode 100644 index 0000000..289929a --- /dev/null +++ b/node_modules/moment/locale/se.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var se = moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return se; + +}))); diff --git a/node_modules/moment/locale/si.js b/node_modules/moment/locale/si.js new file mode 100644 index 0000000..4421d04 --- /dev/null +++ b/node_modules/moment/locale/si.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + /*jshint -W100*/ + var si = moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, + }); + + return si; + +}))); diff --git a/node_modules/moment/locale/sk.js b/node_modules/moment/locale/sk.js new file mode 100644 index 0000000..99edae7 --- /dev/null +++ b/node_modules/moment/locale/sk.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural(n) { + return n > 1 && n < 5; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + var sk = moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sk; + +}))); diff --git a/node_modules/moment/locale/sl.js b/node_modules/moment/locale/sl.js new file mode 100644 index 0000000..38f1210 --- /dev/null +++ b/node_modules/moment/locale/sl.js @@ -0,0 +1,182 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + var sl = moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sl; + +}))); diff --git a/node_modules/moment/locale/sq.js b/node_modules/moment/locale/sq.js new file mode 100644 index 0000000..154e3d6 --- /dev/null +++ b/node_modules/moment/locale/sq.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sq = moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sq; + +}))); diff --git a/node_modules/moment/locale/sr-cyrl.js b/node_modules/moment/locale/sr-cyrl.js new file mode 100644 index 0000000..9da10fa --- /dev/null +++ b/node_modules/moment/locale/sr-cyrl.js @@ -0,0 +1,138 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, + }; + + var srCyrl = moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return srCyrl; + +}))); diff --git a/node_modules/moment/locale/sr.js b/node_modules/moment/locale/sr.js new file mode 100644 index 0000000..8f53e7c --- /dev/null +++ b/node_modules/moment/locale/sr.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + var sr = moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sr; + +}))); diff --git a/node_modules/moment/locale/ss.js b/node_modules/moment/locale/ss.js new file mode 100644 index 0000000..ce8a657 --- /dev/null +++ b/node_modules/moment/locale/ss.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ss = moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ss; + +}))); diff --git a/node_modules/moment/locale/sv.js b/node_modules/moment/locale/sv.js new file mode 100644 index 0000000..5962e87 --- /dev/null +++ b/node_modules/moment/locale/sv.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sv = moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return sv; + +}))); diff --git a/node_modules/moment/locale/sw.js b/node_modules/moment/locale/sw.js new file mode 100644 index 0000000..1a5ac64 --- /dev/null +++ b/node_modules/moment/locale/sw.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sw = moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sw; + +}))); diff --git a/node_modules/moment/locale/ta.js b/node_modules/moment/locale/ta.js new file mode 100644 index 0000000..0f28832 --- /dev/null +++ b/node_modules/moment/locale/ta.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + + var ta = moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ta; + +}))); diff --git a/node_modules/moment/locale/te.js b/node_modules/moment/locale/te.js new file mode 100644 index 0000000..85bab7e --- /dev/null +++ b/node_modules/moment/locale/te.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var te = moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return te; + +}))); diff --git a/node_modules/moment/locale/tet.js b/node_modules/moment/locale/tet.js new file mode 100644 index 0000000..5c62c6c --- /dev/null +++ b/node_modules/moment/locale/tet.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tet = moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tet; + +}))); diff --git a/node_modules/moment/locale/tg.js b/node_modules/moment/locale/tg.js new file mode 100644 index 0000000..bde72ad --- /dev/null +++ b/node_modules/moment/locale/tg.js @@ -0,0 +1,128 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; + + var tg = moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + return tg; + +}))); diff --git a/node_modules/moment/locale/th.js b/node_modules/moment/locale/th.js new file mode 100644 index 0000000..f83bad9 --- /dev/null +++ b/node_modules/moment/locale/th.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var th = moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, + }); + + return th; + +}))); diff --git a/node_modules/moment/locale/tk.js b/node_modules/moment/locale/tk.js new file mode 100644 index 0000000..24d4ede --- /dev/null +++ b/node_modules/moment/locale/tk.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + var tk = moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tk; + +}))); diff --git a/node_modules/moment/locale/tl-ph.js b/node_modules/moment/locale/tl-ph.js new file mode 100644 index 0000000..871b078 --- /dev/null +++ b/node_modules/moment/locale/tl-ph.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tlPh = moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tlPh; + +}))); diff --git a/node_modules/moment/locale/tlh.js b/node_modules/moment/locale/tlh.js new file mode 100644 index 0000000..ed61731 --- /dev/null +++ b/node_modules/moment/locale/tlh.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + var tlh = moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return tlh; + +}))); diff --git a/node_modules/moment/locale/tr.js b/node_modules/moment/locale/tr.js new file mode 100644 index 0000000..663778e --- /dev/null +++ b/node_modules/moment/locale/tr.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; + + var tr = moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tr; + +}))); diff --git a/node_modules/moment/locale/tzl.js b/node_modules/moment/locale/tzl.js new file mode 100644 index 0000000..43ad139 --- /dev/null +++ b/node_modules/moment/locale/tzl.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + var tzl = moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + return tzl; + +}))); diff --git a/node_modules/moment/locale/tzm-latn.js b/node_modules/moment/locale/tzm-latn.js new file mode 100644 index 0000000..34425a7 --- /dev/null +++ b/node_modules/moment/locale/tzm-latn.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzmLatn = moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzmLatn; + +}))); diff --git a/node_modules/moment/locale/tzm.js b/node_modules/moment/locale/tzm.js new file mode 100644 index 0000000..5db61f9 --- /dev/null +++ b/node_modules/moment/locale/tzm.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzm = moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzm; + +}))); diff --git a/node_modules/moment/locale/ug-cn.js b/node_modules/moment/locale/ug-cn.js new file mode 100644 index 0000000..5efffdd --- /dev/null +++ b/node_modules/moment/locale/ug-cn.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ugCn = moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return ugCn; + +}))); diff --git a/node_modules/moment/locale/uk.js b/node_modules/moment/locale/uk.js new file mode 100644 index 0000000..f5fd352 --- /dev/null +++ b/node_modules/moment/locale/uk.js @@ -0,0 +1,178 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + var uk = moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uk; + +}))); diff --git a/node_modules/moment/locale/ur.js b/node_modules/moment/locale/ur.js new file mode 100644 index 0000000..9720dcf --- /dev/null +++ b/node_modules/moment/locale/ur.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + + var ur = moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return ur; + +}))); diff --git a/node_modules/moment/locale/uz-latn.js b/node_modules/moment/locale/uz-latn.js new file mode 100644 index 0000000..af08e60 --- /dev/null +++ b/node_modules/moment/locale/uz-latn.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uzLatn = moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uzLatn; + +}))); diff --git a/node_modules/moment/locale/uz.js b/node_modules/moment/locale/uz.js new file mode 100644 index 0000000..a8a87fc --- /dev/null +++ b/node_modules/moment/locale/uz.js @@ -0,0 +1,62 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uz = moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return uz; + +}))); diff --git a/node_modules/moment/locale/vi.js b/node_modules/moment/locale/vi.js new file mode 100644 index 0000000..fb6b4b4 --- /dev/null +++ b/node_modules/moment/locale/vi.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var vi = moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return vi; + +}))); diff --git a/node_modules/moment/locale/x-pseudo.js b/node_modules/moment/locale/x-pseudo.js new file mode 100644 index 0000000..a46e1d7 --- /dev/null +++ b/node_modules/moment/locale/x-pseudo.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var xPseudo = moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return xPseudo; + +}))); diff --git a/node_modules/moment/locale/yo.js b/node_modules/moment/locale/yo.js new file mode 100644 index 0000000..9fe818b --- /dev/null +++ b/node_modules/moment/locale/yo.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var yo = moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return yo; + +}))); diff --git a/node_modules/moment/locale/zh-cn.js b/node_modules/moment/locale/zh-cn.js new file mode 100644 index 0000000..c14ca47 --- /dev/null +++ b/node_modules/moment/locale/zh-cn.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhCn = moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return zhCn; + +}))); diff --git a/node_modules/moment/locale/zh-hk.js b/node_modules/moment/locale/zh-hk.js new file mode 100644 index 0000000..de900fd --- /dev/null +++ b/node_modules/moment/locale/zh-hk.js @@ -0,0 +1,112 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhHk = moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhHk; + +}))); diff --git a/node_modules/moment/locale/zh-mo.js b/node_modules/moment/locale/zh-mo.js new file mode 100644 index 0000000..b32feab --- /dev/null +++ b/node_modules/moment/locale/zh-mo.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhMo = moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhMo; + +}))); diff --git a/node_modules/moment/locale/zh-tw.js b/node_modules/moment/locale/zh-tw.js new file mode 100644 index 0000000..4f80ece --- /dev/null +++ b/node_modules/moment/locale/zh-tw.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhTw = moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + return zhTw; + +}))); diff --git a/node_modules/moment/min/locales.js b/node_modules/moment/min/locales.js new file mode 100644 index 0000000..19ba0f9 --- /dev/null +++ b/node_modules/moment/min/locales.js @@ -0,0 +1,12800 @@ +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm$1 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$1 = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize$1 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$1(number), + str = plurals$1[u][pluralForm$1(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$1 = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + moment.defineLocale('ar-ly', { + months: months$1, + monthsShort: months$1, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize$1('s'), + ss: pluralize$1('s'), + m: pluralize$1('m'), + mm: pluralize$1('m'), + h: pluralize$1('h'), + hh: pluralize$1('h'), + d: pluralize$1('d'), + dd: pluralize$1('d'), + M: pluralize$1('M'), + MM: pluralize$1('M'), + y: pluralize$1('y'), + yy: pluralize$1('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$1 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + moment.defineLocale('ar-ps', { + months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split( + '_' + ), + monthsShort: + 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .split('') // reversed since negative lookbehind not supported everywhere + .reverse() + .join('') + .replace(/[١٢](?![\u062a\u0643])/g, function (match) { + return numberMap[match]; + }) + .split('') + .reverse() + .join('') + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$1[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$2 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$1 = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$1[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$2[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$3 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$2 = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm$2 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$2 = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize$2 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$2(number), + str = plurals$2[u][pluralForm$2(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$2 = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + moment.defineLocale('ar', { + months: months$2, + monthsShort: months$2, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize$2('s'), + ss: pluralize$2('s'), + m: pluralize$2('m'), + mm: pluralize$2('m'), + h: pluralize$2('h'), + hh: pluralize$2('h'), + d: pluralize$2('d'), + dd: pluralize$2('d'), + M: pluralize$2('M'), + MM: pluralize$2('M'), + y: pluralize$2('y'), + yy: pluralize$2('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$2[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$3[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; + + moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$4 = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap$3 = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap$3[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$4[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$5 = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap$4 = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap$4[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$5[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$6 = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap$5 = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + + moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap$5[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$6[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + switch (key) { + case 'm': + return withoutSuffix + ? 'jedna minuta' + : isFuture + ? 'jednu minutu' + : 'jedne minute'; + } + } + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jedan sat'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: processRelativeTime, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$3 = { + standalone: + 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse$1 = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex$1 = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function plural$1(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate$1(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + moment.defineLocale('cs', { + months: months$3, + monthsShort: monthsShort, + monthsRegex: monthsRegex$1, + monthsShortRegex: monthsRegex$1, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse$1, + longMonthsParse: monthsParse$1, + shortMonthsParse: monthsParse$1, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate$1, + ss: translate$1, + m: translate$1, + mm: translate$1, + h: translate$1, + hh: translate$1, + d: translate$1, + dd: translate$1, + M: translate$1, + MM: translate$1, + y: translate$1, + yy: translate$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$1(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$1, + mm: '%d Minuten', + h: processRelativeTime$1, + hh: '%d Stunden', + d: processRelativeTime$1, + dd: processRelativeTime$1, + w: processRelativeTime$1, + ww: '%d Wochen', + M: processRelativeTime$1, + MM: processRelativeTime$1, + y: processRelativeTime$1, + yy: processRelativeTime$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$2(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$2, + mm: '%d Minuten', + h: processRelativeTime$2, + hh: '%d Stunden', + d: processRelativeTime$2, + dd: processRelativeTime$2, + w: processRelativeTime$2, + ww: '%d Wochen', + M: processRelativeTime$2, + MM: processRelativeTime$2, + y: processRelativeTime$2, + yy: processRelativeTime$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$3(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$3, + mm: '%d Minuten', + h: processRelativeTime$3, + hh: '%d Stunden', + d: processRelativeTime$3, + dd: processRelativeTime$3, + w: processRelativeTime$3, + ww: '%d Wochen', + M: processRelativeTime$3, + MM: processRelativeTime$3, + y: processRelativeTime$3, + yy: processRelativeTime$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$4 = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + + moment.defineLocale('dv', { + months: months$4, + monthsShort: months$4, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$2 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$2 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort$1[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex$2, + monthsShortRegex: monthsRegex$2, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$2, + longMonthsParse: monthsParse$2, + shortMonthsParse: monthsParse$2, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$1 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$3 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$3 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$1; + } else if (/-MMM-/.test(format)) { + return monthsShort$2[m.month()]; + } else { + return monthsShortDot$1[m.month()]; + } + }, + monthsRegex: monthsRegex$3, + monthsShortRegex: monthsRegex$3, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$3, + longMonthsParse: monthsParse$3, + shortMonthsParse: monthsParse$3, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + //! moment.js locale configuration + + var monthsShortDot$2 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$4 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$4 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$2; + } else if (/-MMM-/.test(format)) { + return monthsShort$3[m.month()]; + } else { + return monthsShortDot$2[m.month()]; + } + }, + monthsRegex: monthsRegex$4, + monthsShortRegex: monthsRegex$4, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$4, + longMonthsParse: monthsParse$4, + shortMonthsParse: monthsParse$4, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$3 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$5 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$5 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$3; + } else if (/-MMM-/.test(format)) { + return monthsShort$4[m.month()]; + } else { + return monthsShortDot$3[m.month()]; + } + }, + monthsRegex: monthsRegex$5, + monthsShortRegex: monthsRegex$5, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$5, + longMonthsParse: monthsParse$5, + shortMonthsParse: monthsParse$5, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + //! moment.js locale configuration + + function processRelativeTime$4(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime$4, + ss: processRelativeTime$4, + m: processRelativeTime$4, + mm: processRelativeTime$4, + h: processRelativeTime$4, + hh: processRelativeTime$4, + d: processRelativeTime$4, + dd: '%d päeva', + M: processRelativeTime$4, + MM: processRelativeTime$4, + y: processRelativeTime$4, + yy: processRelativeTime$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$7 = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap$6 = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + + moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap$6[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$7[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate$2(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate$2, + ss: translate$2, + m: translate$2, + mm: translate$2, + h: translate$2, + hh: translate$2, + d: translate$2, + dd: translate$2, + M: translate$2, + MM: translate$2, + y: translate$2, + yy: translate$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsStrictRegex$1 = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex$1 = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex$6 = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse$6 = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + + moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex$6, + monthsShortRegex: monthsRegex$6, + monthsStrictRegex: monthsStrictRegex$1, + monthsShortStrictRegex: monthsShortStrictRegex$1, + monthsParse: monthsParse$6, + longMonthsParse: monthsParse$6, + shortMonthsParse: monthsParse$6, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$5 = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort$5 = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays$1 = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + + moment.defineLocale('ga', { + months: months$5, + monthsShort: monthsShort$5, + monthsParseExact: true, + weekdays: weekdays$1, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$6 = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort$6 = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays$2 = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + + moment.defineLocale('gd', { + months: months$6, + monthsShort: monthsShort$6, + monthsParseExact: true, + weekdays: weekdays$2, + weekdaysShort: weekdaysShort$1, + weekdaysMin: weekdaysMin$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$5(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime$5, + ss: processRelativeTime$5, + m: processRelativeTime$5, + mm: processRelativeTime$5, + h: processRelativeTime$5, + hh: processRelativeTime$5, + d: processRelativeTime$5, + dd: processRelativeTime$5, + M: processRelativeTime$5, + MM: processRelativeTime$5, + y: processRelativeTime$5, + yy: processRelativeTime$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$6(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime$6, + ss: processRelativeTime$6, + m: processRelativeTime$6, + mm: processRelativeTime$6, + h: processRelativeTime$6, + hh: processRelativeTime$6, + d: processRelativeTime$6, + dd: processRelativeTime$6, + M: processRelativeTime$6, + MM: processRelativeTime$6, + y: processRelativeTime$6, + yy: processRelativeTime$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$8 = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap$7 = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + + moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap$7[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$8[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$9 = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$8 = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse$7 = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + + moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse$7, + longMonthsParse: monthsParse$7, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$8[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$9[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function translate$3(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate$3, + m: translate$3, + mm: translate$3, + h: translate$3, + hh: translate$3, + d: 'dan', + dd: translate$3, + M: 'mjesec', + MM: translate$3, + y: 'godinu', + yy: translate$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate$4(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate$4, + ss: translate$4, + m: translate$4, + mm: translate$4, + h: translate$4, + hh: translate$4, + d: translate$4, + dd: translate$4, + M: translate$4, + MM: translate$4, + y: translate$4, + yy: translate$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$2(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate$5(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural$2(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural$2(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate$5, + ss: translate$5, + m: translate$5, + mm: translate$5, + h: 'klukkustund', + hh: translate$5, + d: translate$5, + dd: translate$5, + M: translate$5, + MM: translate$5, + y: translate$5, + yy: translate$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + //! moment.js locale configuration + + var suffixes$1 = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; + + moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$a = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap$9 = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + + moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap$9[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$a[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$b = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap$a = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + + moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap$a[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$b[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$7(num, withoutSuffix, key, isFuture) { + var format = { + s: ['çend sanîye', 'çend sanîyeyan'], + ss: [num + ' sanîye', num + ' sanîyeyan'], + m: ['deqîqeyek', 'deqîqeyekê'], + mm: [num + ' deqîqe', num + ' deqîqeyan'], + h: ['saetek', 'saetekê'], + hh: [num + ' saet', num + ' saetan'], + d: ['rojek', 'rojekê'], + dd: [num + ' roj', num + ' rojan'], + w: ['hefteyek', 'hefteyekê'], + ww: [num + ' hefte', num + ' hefteyan'], + M: ['mehek', 'mehekê'], + MM: [num + ' meh', num + ' mehan'], + y: ['salek', 'salekê'], + yy: [num + ' sal', num + ' salan'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + // function obliqueNumSuffix(num) { + // if(num.includes(':')) + // num = parseInt(num.split(':')[0]); + // else + // num = parseInt(num); + // return num == 0 || num % 10 == 1 ? 'ê' + // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); + // } + function ezafeNumSuffix(num) { + num = '' + num; + var l = num.substring(num.length - 1), + ll = num.length > 1 ? num.substring(num.length - 2) : ''; + if ( + !(ll == 12 || ll == 13) && + (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') + ) + return 'yê'; + return 'ê'; + } + + moment.defineLocale('ku-kmr', { + // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) + // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' + // But the names below are more well known and handy + months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split( + '_' + ), + monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), + monthsParseExact: true, + weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), + weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), + weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'bn' : 'BN'; + } else { + return isLower ? 'pn' : 'PN'; + } + }, + meridiemParse: /bn|BN|pn|PN/, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[a] YYYY[an]', + LLL: 'Do MMMM[a] YYYY[an] HH:mm', + LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', + ll: 'Do MMM[.] YYYY[an]', + lll: 'Do MMM[.] YYYY[an] HH:mm', + llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', + }, + calendar: { + sameDay: '[Îro di saet] LT [de]', + nextDay: '[Sibê di saet] LT [de]', + nextWeek: 'dddd [di saet] LT [de]', + lastDay: '[Duh di saet] LT [de]', + lastWeek: 'dddd[a borî di saet] LT [de]', + sameElse: 'L', + }, + relativeTime: { + future: 'di %s de', + past: 'berî %s', + s: processRelativeTime$7, + ss: processRelativeTime$7, + m: processRelativeTime$7, + mm: processRelativeTime$7, + h: processRelativeTime$7, + hh: processRelativeTime$7, + d: processRelativeTime$7, + dd: processRelativeTime$7, + w: processRelativeTime$7, + ww: processRelativeTime$7, + M: processRelativeTime$7, + MM: processRelativeTime$7, + y: processRelativeTime$7, + yy: processRelativeTime$7, + }, + dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, + ordinal: function (num, period) { + var p = period.toLowerCase(); + if (p.includes('w') || p.includes('m')) return num + '.'; + + return num + ezafeNumSuffix(num); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$c = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$b = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months$7 = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + + moment.defineLocale('ku', { + months: months$7, + monthsShort: months$7, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$b[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$c[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$2 = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; + + moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$8(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime$8, + mm: '%d Minutten', + h: processRelativeTime$8, + hh: '%d Stonnen', + d: processRelativeTime$8, + dd: '%d Deeg', + M: processRelativeTime$8, + MM: '%d Méint', + y: processRelativeTime$8, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); + + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate$6(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate$6, + m: translateSingular, + mm: translate$6, + h: translateSingular, + hh: translate$6, + d: translateSingular, + dd: translate$6, + M: translateSingular, + MM: translate$6, + y: translateSingular, + yy: translate$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var units$1 = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural$1(number, withoutSuffix, key) { + return number + ' ' + format(units$1[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units$1[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural$1, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural$1, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural$1, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural$1, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural$1, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); + + //! moment.js locale configuration + + function translate$7(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } + + moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate$7, + ss: translate$7, + m: translate$7, + mm: translate$7, + h: translate$7, + hh: translate$7, + d: translate$7, + dd: translate$7, + M: translate$7, + MM: translate$7, + y: translate$7, + yy: translate$7, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$d = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$c = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } + + moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$c[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$d[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$e = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap$d = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + + moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap$d[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$e[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'én time', + hh: '%d timer', + d: 'én dag', + dd: '%d dager', + w: 'én uke', + ww: '%d uker', + M: 'én måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$f = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$e = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$e[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$f[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$1 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$1 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$8 = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$7 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$1; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$1[m.month()]; + } else { + return monthsShortWithDots$1[m.month()]; + } + }, + + monthsRegex: monthsRegex$7, + monthsShortRegex: monthsRegex$7, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$8, + longMonthsParse: monthsParse$8, + shortMonthsParse: monthsParse$8, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$2 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$2 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$9 = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$8 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$2; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$2[m.month()]; + } else { + return monthsShortWithDots$2[m.month()]; + } + }, + + monthsRegex: monthsRegex$8, + monthsShortRegex: monthsRegex$8, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$9, + longMonthsParse: monthsParse$9, + shortMonthsParse: monthsParse$9, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, + }); + + //! moment.js locale configuration + + var symbolMap$g = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap$f = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + + moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap$f[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$g[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse$a = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural$3(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate$8(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural$3(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural$3(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural$3(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural$3(number) ? 'lata' : 'lat'); + } + } + + moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse$a, + longMonthsParse: monthsParse$a, + shortMonthsParse: monthsParse$a, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate$8, + m: translate$8, + mm: translate$8, + h: translate$8, + hh: translate$8, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate$8, + M: 'miesiąc', + MM: translate$8, + y: 'rok', + yy: translate$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', + }); + + //! moment.js locale configuration + + moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithPlural$2(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural$2, + m: 'un minut', + mm: relativeTimeWithPlural$2, + h: 'o oră', + hh: relativeTimeWithPlural$2, + d: 'o zi', + dd: relativeTimeWithPlural$2, + w: 'o săptămână', + ww: relativeTimeWithPlural$2, + M: 'o lună', + MM: relativeTimeWithPlural$2, + y: 'un an', + yy: relativeTimeWithPlural$2, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$4(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$3(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural$4(format[key], +number); + } + } + var monthsParse$b = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse$b, + longMonthsParse: monthsParse$b, + shortMonthsParse: monthsParse$b, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural$3, + m: relativeTimeWithPlural$3, + mm: relativeTimeWithPlural$3, + h: 'час', + hh: relativeTimeWithPlural$3, + d: 'день', + dd: relativeTimeWithPlural$3, + w: 'неделя', + ww: relativeTimeWithPlural$3, + M: 'месяц', + MM: relativeTimeWithPlural$3, + y: 'год', + yy: relativeTimeWithPlural$3, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$8 = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + + moment.defineLocale('sd', { + months: months$8, + monthsShort: months$8, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + /*jshint -W100*/ + moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, + }); + + //! moment.js locale configuration + + var months$9 = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural$5(n) { + return n > 1 && n < 5; + } + function translate$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + moment.defineLocale('sk', { + months: months$9, + monthsShort: monthsShort$7, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate$9, + ss: translate$9, + m: translate$9, + mm: translate$9, + h: translate$9, + hh: translate$9, + d: translate$9, + dd: translate$9, + M: translate$9, + MM: translate$9, + y: translate$9, + yy: translate$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime$9, + ss: processRelativeTime$9, + m: processRelativeTime$9, + mm: processRelativeTime$9, + h: processRelativeTime$9, + hh: processRelativeTime$9, + d: processRelativeTime$9, + dd: processRelativeTime$9, + M: processRelativeTime$9, + MM: processRelativeTime$9, + y: processRelativeTime$9, + yy: processRelativeTime$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$1 = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$1.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$1.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, + }; + + moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator$1.translate, + m: translator$1.translate, + mm: translator$1.translate, + h: translator$1.translate, + hh: translator$1.translate, + d: translator$1.translate, + dd: translator$1.translate, + M: translator$1.translate, + MM: translator$1.translate, + y: translator$1.translate, + yy: translator$1.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$2 = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$2.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$2.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator$2.translate, + m: translator$2.translate, + mm: translator$2.translate, + h: translator$2.translate, + hh: translator$2.translate, + d: translator$2.translate, + dd: translator$2.translate, + M: translator$2.translate, + MM: translator$2.translate, + y: translator$2.translate, + yy: translator$2.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$h = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap$g = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + + moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap$g[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$h[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$3 = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; + + moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, + }); + + //! moment.js locale configuration + + var suffixes$4 = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate$a(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate$a, + m: 'wa’ tup', + mm: translate$a, + h: 'wa’ rep', + hh: translate$a, + d: 'wa’ jaj', + dd: translate$a, + M: 'wa’ jar', + MM: translate$a, + y: 'wa’ DIS', + yy: translate$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$5 = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; + + moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime$a, + ss: processRelativeTime$a, + m: processRelativeTime$a, + mm: processRelativeTime$a, + h: processRelativeTime$a, + hh: processRelativeTime$a, + d: processRelativeTime$a, + dd: processRelativeTime$a, + M: processRelativeTime$a, + MM: processRelativeTime$a, + y: processRelativeTime$a, + yy: processRelativeTime$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + function processRelativeTime$a(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + //! moment.js locale configuration + + moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$6(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$4(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural$6(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural$4, + m: relativeTimeWithPlural$4, + mm: relativeTimeWithPlural$4, + h: 'годину', + hh: relativeTimeWithPlural$4, + d: 'день', + dd: relativeTimeWithPlural$4, + M: 'місяць', + MM: relativeTimeWithPlural$4, + y: 'рік', + yy: relativeTimeWithPlural$4, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$a = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days$1 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + + moment.defineLocale('ur', { + months: months$a, + monthsShort: months$a, + weekdays: days$1, + weekdaysShort: days$1, + weekdaysMin: days$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + moment.locale('en'); + + return moment; + +}))); diff --git a/node_modules/moment/min/locales.min.js b/node_modules/moment/min/locales.min.js new file mode 100644 index 0000000..49c47f5 --- /dev/null +++ b/node_modules/moment/min/locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module&&"function"==typeof require?a(require("../moment")):"function"==typeof define&&define.amd?define(["../moment"],a):a(e.moment)}(this,function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,_){return e<12?_?"vm":"VM":_?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});function E(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function a(n){return function(e,a,_,s){var d=E(e),t=J[n][E(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}function F(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function _(n){return function(e,a,_,s){var d=F(e),t=I[n][F(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}function z(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function s(n){return function(e,a,_,s){var d=z(e),t=U[n][z(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}var J={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],N=(e.defineLocale("ar-dz",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:0,doy:4}}),e.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}}),{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"}),I={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],R=(e.defineLocale("ar-ly",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:_("s"),ss:_("s"),m:_("m"),mm:_("m"),h:_("h"),hh:_("h"),d:_("d"),dd:_("d"),M:_("M"),MM:_("M"),y:_("y"),yy:_("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return N[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),e.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}}),{1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"}),C={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},K=(e.defineLocale("ar-ps",{months:"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0651\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0651\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0634\u0631\u064a \u0627\u0644\u0623\u0648\u0651\u0644_\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a_\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0651\u0644".split("_"),monthsShort:"\u0643\u0662_\u0634\u0628\u0627\u0637_\u0622\u0630\u0627\u0631_\u0646\u064a\u0633\u0627\u0646_\u0623\u064a\u0651\u0627\u0631_\u062d\u0632\u064a\u0631\u0627\u0646_\u062a\u0645\u0651\u0648\u0632_\u0622\u0628_\u0623\u064a\u0644\u0648\u0644_\u062a\u0661_\u062a\u0662_\u0643\u0661".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return C[e]}).split("").reverse().join("").replace(/[\u0661\u0662](?![\u062a\u0643])/g,function(e){return C[e]}).split("").reverse().join("").replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return R[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}}),{1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"}),B={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},q=(e.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return B[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return K[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}}),e.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}}),{1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"}),G={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},U={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],$=(e.defineLocale("ar",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return G[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return q[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"});function t(e,a,_){return"m"===_?a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===_?a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":e+" "+(e=+e,a=(a={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[_]).split("_"),e%10==1&&e%100!=11?a[0]:2<=e%10&&e%10<=4&&(e%100<10||20<=e%100)?a[1]:a[2])}e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,a,_){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){var a;return 0===e?e+"-\u0131nc\u0131":e+($[a=e%10]||$[e%100-a]||$[100<=e?100:null])},week:{dow:1,doy:7}}),e.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:t,mm:t,h:t,hh:t,d:"\u0434\u0437\u0435\u043d\u044c",dd:t,M:"\u043c\u0435\u0441\u044f\u0446",MM:t,y:"\u0433\u043e\u0434",yy:t},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,a,_){return e<4?"\u043d\u043e\u0447\u044b":e<12?"\u0440\u0430\u043d\u0456\u0446\u044b":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-\u044b":e+"-\u0456";case"D":return e+"-\u0433\u0430";default:return e}},week:{dow:1,doy:7}}),e.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0443_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u041c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u041c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",w:"\u0441\u0435\u0434\u043c\u0438\u0446\u0430",ww:"%d \u0441\u0435\u0434\u043c\u0438\u0446\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,_=e%100;return 0===e?e+"-\u0435\u0432":0==_?e+"-\u0435\u043d":10<_&&_<20?e+"-\u0442\u0438":1==a?e+"-\u0432\u0438":2==a?e+"-\u0440\u0438":7==a||8==a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var Q={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},V={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},Z=(e.defineLocale("bn-bd",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return V[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Q[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09ad\u09cb\u09b0|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a?e<4?e:e+12:"\u09ad\u09cb\u09b0"===a||"\u09b8\u0995\u09be\u09b2"===a?e:"\u09a6\u09c1\u09aa\u09c1\u09b0"===a?3<=e?e:e+12:"\u09ac\u09bf\u0995\u09be\u09b2"===a||"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be"===a?e+12:void 0},meridiem:function(e,a,_){return e<4?"\u09b0\u09be\u09a4":e<6?"\u09ad\u09cb\u09b0":e<12?"\u09b8\u0995\u09be\u09b2":e<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<18?"\u09ac\u09bf\u0995\u09be\u09b2":e<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}}),{1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"}),X={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},ee=(e.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return X[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Z[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a&&4<=e||"\u09a6\u09c1\u09aa\u09c1\u09b0"===a&&e<5||"\u09ac\u09bf\u0995\u09be\u09b2"===a?e+12:e},meridiem:function(e,a,_){return e<4?"\u09b0\u09be\u09a4":e<10?"\u09b8\u0995\u09be\u09b2":e<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}}),{1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"}),ae={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};function _e(e,a,_){return e+" "+(_={mm:"munutenn",MM:"miz",dd:"devezh"}[_],2!==(e=e)?_:void 0!==(e={m:"v",b:"v",d:"z"})[(_=_).charAt(0)]?e[_.charAt(0)]+_.substring(1):_)}e.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b1_\u0f5f\u0fb3\u0f0b2_\u0f5f\u0fb3\u0f0b3_\u0f5f\u0fb3\u0f0b4_\u0f5f\u0fb3\u0f0b5_\u0f5f\u0fb3\u0f0b6_\u0f5f\u0fb3\u0f0b7_\u0f5f\u0fb3\u0f0b8_\u0f5f\u0fb3\u0f0b9_\u0f5f\u0fb3\u0f0b10_\u0f5f\u0fb3\u0f0b11_\u0f5f\u0fb3\u0f0b12".split("_"),monthsShortRegex:/^(\u0f5f\u0fb3\u0f0b\d{1,2})/,monthsParseExact:!0,weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72_\u0f5f\u0fb3_\u0f58\u0f72\u0f42_\u0f63\u0fb7\u0f42_\u0f55\u0f74\u0f62_\u0f66\u0f44\u0f66_\u0f66\u0fa4\u0f7a\u0f53".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return ae[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return ee[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===a&&4<=e||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===a&&e<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===a?e+12:e},meridiem:function(e,a,_){return e<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":e<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":e<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":e<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}});var d=[/^gen/i,/^c[\u02bc\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],n=/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,r=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];function i(e,a,_){var s=e+" ";switch(_){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"mm":return s+=1!==e&&(2===e||3===e||4===e)?"minute":"minuta";case"h":return"jedan sat";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1!==e&&(2===e||3===e||4===e)?"godine":"godina"}}e.defineLocale("br",{months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:r,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[\u02bc\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:r,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:d,longMonthsParse:d,shortMonthsParse:d,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc\u02bchoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec\u02bch da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:_e,h:"un eur",hh:"%d eur",d:"un devezh",dd:_e,M:"ur miz",MM:_e,y:"ur bloaz",yy:function(e){switch(function e(a){if(9>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + var flags = null, + parsedParts = false, + isNowValid = m._d && !isNaN(m._d.getTime()); + if (isNowValid) { + flags = getParsingFlags(m); + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + isNowValid = + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = { + D: 'date', + dates: 'date', + date: 'date', + d: 'day', + days: 'day', + day: 'day', + e: 'weekday', + weekdays: 'weekday', + weekday: 'weekday', + E: 'isoWeekday', + isoweekdays: 'isoWeekday', + isoweekday: 'isoWeekday', + DDD: 'dayOfYear', + dayofyears: 'dayOfYear', + dayofyear: 'dayOfYear', + h: 'hour', + hours: 'hour', + hour: 'hour', + ms: 'millisecond', + milliseconds: 'millisecond', + millisecond: 'millisecond', + m: 'minute', + minutes: 'minute', + minute: 'minute', + M: 'month', + months: 'month', + month: 'month', + Q: 'quarter', + quarters: 'quarter', + quarter: 'quarter', + s: 'second', + seconds: 'second', + second: 'second', + gg: 'weekYear', + weekyears: 'weekYear', + weekyear: 'weekYear', + GG: 'isoWeekYear', + isoweekyears: 'isoWeekYear', + isoweekyear: 'isoWeekYear', + w: 'week', + weeks: 'week', + week: 'week', + W: 'isoWeek', + isoweeks: 'isoWeek', + isoweek: 'isoWeek', + y: 'year', + years: 'year', + year: 'year', + }; + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = { + date: 9, + day: 11, + weekday: 11, + isoWeekday: 11, + dayOfYear: 4, + hour: 13, + millisecond: 16, + minute: 14, + month: 8, + quarter: 7, + second: 15, + weekYear: 1, + isoWeekYear: 1, + week: 5, + isoWeek: 5, + year: 1, + }; + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 + match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + if (!mom.isValid()) { + return NaN; + } + + var d = mom._d, + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); + case 'Seconds': + return isUTC ? d.getUTCSeconds() : d.getSeconds(); + case 'Minutes': + return isUTC ? d.getUTCMinutes() : d.getMinutes(); + case 'Hours': + return isUTC ? d.getUTCHours() : d.getHours(); + case 'Date': + return isUTC ? d.getUTCDate() : d.getDate(); + case 'Day': + return isUTC ? d.getUTCDay() : d.getDay(); + case 'Month': + return isUTC ? d.getUTCMonth() : d.getMonth(); + case 'FullYear': + return isUTC ? d.getUTCFullYear() : d.getFullYear(); + default: + return NaN; // Just in case + } + } + + function set$1(mom, unit, value) { + var d, isUTC, year, month, date; + + if (!mom.isValid() || isNaN(value)) { + return; + } + + d = mom._d; + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return void (isUTC + ? d.setUTCMilliseconds(value) + : d.setMilliseconds(value)); + case 'Seconds': + return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); + case 'Minutes': + return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); + case 'Hours': + return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); + case 'Date': + return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); + // case 'Day': // Not real + // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); + // case 'Month': // Not used because we need to pass two variables + // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); + case 'FullYear': + break; // See below ... + default: + return; // Just in case + } + + year = value; + month = mom.month(); + date = mom.date(); + date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; + void (isUTC + ? d.setUTCFullYear(year, month, date) + : d.setFullYear(year, month, date)); + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // PARSING + + addRegexToken('M', match1to2, match1to2NoLeadingZero); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + var month = value, + date = mom.date(); + + date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); + void (mom._isUTC + ? mom._d.setUTCMonth(month, date) + : mom._d.setMonth(month, date)); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + shortP, + longP; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortP = regexEscape(this.monthsShort(mom, '')); + longP = regexEscape(this.months(mom, '')); + shortPieces.push(shortP); + longPieces.push(longP); + mixedPieces.push(longP); + mixedPieces.push(shortP); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // PARSING + + addRegexToken('w', match1to2, match1to2NoLeadingZero); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2, match1to2NoLeadingZero); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + var day = get(this, 'Day'); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2, match1to2HasZero); + addRegexToken('h', match1to2, match1to2NoLeadingZero); + addRegexToken('k', match1to2, match1to2NoLeadingZero); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + // Ensure name is available and function returns boolean + return !!(name && name.match('^[^/\\\\]*$')); + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + erasName, + erasAbbr, + erasNarrow, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + erasName = regexEscape(eras[i].name); + erasAbbr = regexEscape(eras[i].abbr); + erasNarrow = regexEscape(eras[i].narrow); + + namePieces.push(erasName); + abbrPieces.push(erasAbbr); + narrowPieces.push(erasNarrow); + mixedPieces.push(erasName); + mixedPieces.push(erasAbbr); + mixedPieces.push(erasNarrow); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday() + this.localeData()._week.dow, + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // PARSING + + addRegexToken('D', match1to2, match1to2NoLeadingZero); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // PARSING + + addRegexToken('m', match1to2, match1to2HasZero); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // PARSING + + addRegexToken('s', match1to2, match1to2HasZero); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'), + valueOf$1 = asMilliseconds; + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.30.1'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + //! moment.js locale configuration + + hooks.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$1 = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + hooks.defineLocale('ar-dz', { + months: months$1, + monthsShort: months$1, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm$1 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$1 = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize$1 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$1(number), + str = plurals$1[u][pluralForm$1(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$2 = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + hooks.defineLocale('ar-ly', { + months: months$2, + monthsShort: months$2, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize$1('s'), + ss: pluralize$1('s'), + m: pluralize$1('m'), + mm: pluralize$1('m'), + h: pluralize$1('h'), + hh: pluralize$1('h'), + d: pluralize$1('d'), + dd: pluralize$1('d'), + M: pluralize$1('M'), + MM: pluralize$1('M'), + y: pluralize$1('y'), + yy: pluralize$1('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$1 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + hooks.defineLocale('ar-ps', { + months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split( + '_' + ), + monthsShort: + 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .split('') // reversed since negative lookbehind not supported everywhere + .reverse() + .join('') + .replace(/[١٢](?![\u062a\u0643])/g, function (match) { + return numberMap[match]; + }) + .split('') + .reverse() + .join('') + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$1[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$2 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$1 = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + + hooks.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$1[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$2[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$3 = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$2 = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm$2 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$2 = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize$2 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$2(number), + str = plurals$2[u][pluralForm$2(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$3 = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + + hooks.defineLocale('ar', { + months: months$3, + monthsShort: months$3, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize$2('s'), + ss: pluralize$2('s'), + m: pluralize$2('m'), + mm: pluralize$2('m'), + h: pluralize$2('h'), + hh: pluralize$2('h'), + d: pluralize$2('d'), + dd: pluralize$2('d'), + M: pluralize$2('M'), + MM: pluralize$2('M'), + y: pluralize$2('y'), + yy: pluralize$2('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$2[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$3[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', + }; + + hooks.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + hooks.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$4 = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap$3 = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + hooks.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap$3[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$4[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$5 = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap$4 = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + + hooks.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap$4[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$5[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$6 = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap$5 = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + + hooks.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap$5[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$6[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex$1 = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + hooks.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex$1, + monthsShortRegex: monthsRegex$1, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + switch (key) { + case 'm': + return withoutSuffix + ? 'jedna minuta' + : isFuture + ? 'jednu minutu' + : 'jedne minute'; + } + } + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jedan sat'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + hooks.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: processRelativeTime, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$4 = { + standalone: + 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse$1 = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex$2 = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function plural$1(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate$1(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + hooks.defineLocale('cs', { + months: months$4, + monthsShort: monthsShort, + monthsRegex: monthsRegex$2, + monthsShortRegex: monthsRegex$2, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse$1, + longMonthsParse: monthsParse$1, + shortMonthsParse: monthsParse$1, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate$1, + ss: translate$1, + m: translate$1, + mm: translate$1, + h: translate$1, + hh: translate$1, + d: translate$1, + dd: translate$1, + M: translate$1, + MM: translate$1, + y: translate$1, + yy: translate$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$1(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$1, + mm: '%d Minuten', + h: processRelativeTime$1, + hh: '%d Stunden', + d: processRelativeTime$1, + dd: processRelativeTime$1, + w: processRelativeTime$1, + ww: '%d Wochen', + M: processRelativeTime$1, + MM: processRelativeTime$1, + y: processRelativeTime$1, + yy: processRelativeTime$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$2(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$2, + mm: '%d Minuten', + h: processRelativeTime$2, + hh: '%d Stunden', + d: processRelativeTime$2, + dd: processRelativeTime$2, + w: processRelativeTime$2, + ww: '%d Wochen', + M: processRelativeTime$2, + MM: processRelativeTime$2, + y: processRelativeTime$2, + yy: processRelativeTime$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$3(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$3, + mm: '%d Minuten', + h: processRelativeTime$3, + hh: '%d Stunden', + d: processRelativeTime$3, + dd: processRelativeTime$3, + w: processRelativeTime$3, + ww: '%d Wochen', + M: processRelativeTime$3, + MM: processRelativeTime$3, + y: processRelativeTime$3, + yy: processRelativeTime$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$5 = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + + hooks.defineLocale('dv', { + months: months$5, + monthsShort: months$5, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function isFunction$1(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + hooks.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction$1(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$2 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$3 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort$1[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex$3, + monthsShortRegex: monthsRegex$3, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$2, + longMonthsParse: monthsParse$2, + shortMonthsParse: monthsParse$2, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$1 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$3 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$4 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$1; + } else if (/-MMM-/.test(format)) { + return monthsShort$2[m.month()]; + } else { + return monthsShortDot$1[m.month()]; + } + }, + monthsRegex: monthsRegex$4, + monthsShortRegex: monthsRegex$4, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$3, + longMonthsParse: monthsParse$3, + shortMonthsParse: monthsParse$3, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + //! moment.js locale configuration + + var monthsShortDot$2 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$4 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$5 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$2; + } else if (/-MMM-/.test(format)) { + return monthsShort$3[m.month()]; + } else { + return monthsShortDot$2[m.month()]; + } + }, + monthsRegex: monthsRegex$5, + monthsShortRegex: monthsRegex$5, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$4, + longMonthsParse: monthsParse$4, + shortMonthsParse: monthsParse$4, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$3 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$5 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$6 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$3; + } else if (/-MMM-/.test(format)) { + return monthsShort$4[m.month()]; + } else { + return monthsShortDot$3[m.month()]; + } + }, + monthsRegex: monthsRegex$6, + monthsShortRegex: monthsRegex$6, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$5, + longMonthsParse: monthsParse$5, + shortMonthsParse: monthsParse$5, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', + }); + + //! moment.js locale configuration + + function processRelativeTime$4(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime$4, + ss: processRelativeTime$4, + m: processRelativeTime$4, + mm: processRelativeTime$4, + h: processRelativeTime$4, + hh: processRelativeTime$4, + d: processRelativeTime$4, + dd: '%d päeva', + M: processRelativeTime$4, + MM: processRelativeTime$4, + y: processRelativeTime$4, + yy: processRelativeTime$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$7 = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap$6 = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + + hooks.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap$6[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$7[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate$2(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + hooks.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate$2, + ss: translate$2, + m: translate$2, + mm: translate$2, + h: translate$2, + hh: translate$2, + d: translate$2, + dd: translate$2, + M: translate$2, + MM: translate$2, + y: translate$2, + yy: translate$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsStrictRegex$1 = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex$1 = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex$7 = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse$6 = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + + hooks.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex$7, + monthsShortRegex: monthsRegex$7, + monthsStrictRegex: monthsStrictRegex$1, + monthsShortStrictRegex: monthsShortStrictRegex$1, + monthsParse: monthsParse$6, + longMonthsParse: monthsParse$6, + shortMonthsParse: monthsParse$6, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + hooks.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$6 = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort$5 = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays$1 = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + + hooks.defineLocale('ga', { + months: months$6, + monthsShort: monthsShort$5, + monthsParseExact: true, + weekdays: weekdays$1, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$7 = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort$6 = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays$2 = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + + hooks.defineLocale('gd', { + months: months$7, + monthsShort: monthsShort$6, + monthsParseExact: true, + weekdays: weekdays$2, + weekdaysShort: weekdaysShort$1, + weekdaysMin: weekdaysMin$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$5(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime$5, + ss: processRelativeTime$5, + m: processRelativeTime$5, + mm: processRelativeTime$5, + h: processRelativeTime$5, + hh: processRelativeTime$5, + d: processRelativeTime$5, + dd: processRelativeTime$5, + M: processRelativeTime$5, + MM: processRelativeTime$5, + y: processRelativeTime$5, + yy: processRelativeTime$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$6(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime$6, + ss: processRelativeTime$6, + m: processRelativeTime$6, + mm: processRelativeTime$6, + h: processRelativeTime$6, + hh: processRelativeTime$6, + d: processRelativeTime$6, + dd: processRelativeTime$6, + M: processRelativeTime$6, + MM: processRelativeTime$6, + y: processRelativeTime$6, + yy: processRelativeTime$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$8 = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap$7 = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + + hooks.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap$7[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$8[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$9 = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$8 = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse$7 = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + + hooks.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse$7, + longMonthsParse: monthsParse$7, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$8[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$9[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function translate$3(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + hooks.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate$3, + m: translate$3, + mm: translate$3, + h: translate$3, + hh: translate$3, + d: 'dan', + dd: translate$3, + M: 'mjesec', + MM: translate$3, + y: 'godinu', + yy: translate$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function translate$4(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + hooks.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate$4, + ss: translate$4, + m: translate$4, + mm: translate$4, + h: translate$4, + hh: translate$4, + d: translate$4, + dd: translate$4, + M: translate$4, + MM: translate$4, + y: translate$4, + yy: translate$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$2(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate$5(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural$2(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural$2(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + hooks.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate$5, + ss: translate$5, + m: translate$5, + mm: translate$5, + h: 'klukkustund', + hh: translate$5, + d: translate$5, + dd: translate$5, + M: translate$5, + MM: translate$5, + y: translate$5, + yy: translate$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + //! moment.js locale configuration + + var suffixes$1 = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', + }; + + hooks.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$a = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap$9 = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + + hooks.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap$9[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$a[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$b = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap$a = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + + hooks.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap$a[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$b[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$7(num, withoutSuffix, key, isFuture) { + var format = { + s: ['çend sanîye', 'çend sanîyeyan'], + ss: [num + ' sanîye', num + ' sanîyeyan'], + m: ['deqîqeyek', 'deqîqeyekê'], + mm: [num + ' deqîqe', num + ' deqîqeyan'], + h: ['saetek', 'saetekê'], + hh: [num + ' saet', num + ' saetan'], + d: ['rojek', 'rojekê'], + dd: [num + ' roj', num + ' rojan'], + w: ['hefteyek', 'hefteyekê'], + ww: [num + ' hefte', num + ' hefteyan'], + M: ['mehek', 'mehekê'], + MM: [num + ' meh', num + ' mehan'], + y: ['salek', 'salekê'], + yy: [num + ' sal', num + ' salan'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + // function obliqueNumSuffix(num) { + // if(num.includes(':')) + // num = parseInt(num.split(':')[0]); + // else + // num = parseInt(num); + // return num == 0 || num % 10 == 1 ? 'ê' + // : (num > 10 && num % 10 == 0 ? 'î' : 'an'); + // } + function ezafeNumSuffix(num) { + num = '' + num; + var l = num.substring(num.length - 1), + ll = num.length > 1 ? num.substring(num.length - 2) : ''; + if ( + !(ll == 12 || ll == 13) && + (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') + ) + return 'yê'; + return 'ê'; + } + + hooks.defineLocale('ku-kmr', { + // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) + // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' + // But the names below are more well known and handy + months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split( + '_' + ), + monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), + monthsParseExact: true, + weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), + weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), + weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'bn' : 'BN'; + } else { + return isLower ? 'pn' : 'PN'; + } + }, + meridiemParse: /bn|BN|pn|PN/, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[a] YYYY[an]', + LLL: 'Do MMMM[a] YYYY[an] HH:mm', + LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', + ll: 'Do MMM[.] YYYY[an]', + lll: 'Do MMM[.] YYYY[an] HH:mm', + llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', + }, + calendar: { + sameDay: '[Îro di saet] LT [de]', + nextDay: '[Sibê di saet] LT [de]', + nextWeek: 'dddd [di saet] LT [de]', + lastDay: '[Duh di saet] LT [de]', + lastWeek: 'dddd[a borî di saet] LT [de]', + sameElse: 'L', + }, + relativeTime: { + future: 'di %s de', + past: 'berî %s', + s: processRelativeTime$7, + ss: processRelativeTime$7, + m: processRelativeTime$7, + mm: processRelativeTime$7, + h: processRelativeTime$7, + hh: processRelativeTime$7, + d: processRelativeTime$7, + dd: processRelativeTime$7, + w: processRelativeTime$7, + ww: processRelativeTime$7, + M: processRelativeTime$7, + MM: processRelativeTime$7, + y: processRelativeTime$7, + yy: processRelativeTime$7, + }, + dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, + ordinal: function (num, period) { + var p = period.toLowerCase(); + if (p.includes('w') || p.includes('m')) return num + '.'; + + return num + ezafeNumSuffix(num); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$c = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap$b = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months$8 = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + + hooks.defineLocale('ku', { + months: months$8, + monthsShort: months$8, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap$b[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$c[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$2 = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', + }; + + hooks.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$8(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + hooks.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime$8, + mm: '%d Minutten', + h: processRelativeTime$8, + hh: '%d Stonnen', + d: processRelativeTime$8, + dd: '%d Deeg', + M: processRelativeTime$8, + MM: '%d Méint', + y: processRelativeTime$8, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, + }); + + //! moment.js locale configuration + + var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate$6(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + hooks.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate$6, + m: translateSingular, + mm: translate$6, + h: translateSingular, + hh: translate$6, + d: translateSingular, + dd: translate$6, + M: translateSingular, + MM: translate$6, + y: translateSingular, + yy: translate$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var units$1 = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format$1(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural$1(number, withoutSuffix, key) { + return number + ' ' + format$1(units$1[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format$1(units$1[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + hooks.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural$1, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural$1, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural$1, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural$1, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural$1, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + hooks.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, + }); + + //! moment.js locale configuration + + function translate$7(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } + } + + hooks.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate$7, + ss: translate$7, + m: translate$7, + mm: translate$7, + h: translate$7, + hh: translate$7, + d: translate$7, + dd: translate$7, + M: translate$7, + MM: translate$7, + y: translate$7, + yy: translate$7, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$d = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$c = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); + } + + hooks.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$c[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$d[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$e = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap$d = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + + hooks.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap$d[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$e[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'én time', + hh: '%d timer', + d: 'én dag', + dd: '%d dager', + w: 'én uke', + ww: '%d uker', + M: 'én måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$f = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap$e = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + + hooks.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap$e[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$f[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$1 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$1 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$8 = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$8 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + hooks.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$1; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$1[m.month()]; + } else { + return monthsShortWithDots$1[m.month()]; + } + }, + + monthsRegex: monthsRegex$8, + monthsShortRegex: monthsRegex$8, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$8, + longMonthsParse: monthsParse$8, + shortMonthsParse: monthsParse$8, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$2 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$2 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$9 = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$9 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + hooks.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$2; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$2[m.month()]; + } else { + return monthsShortWithDots$2[m.month()]; + } + }, + + monthsRegex: monthsRegex$9, + monthsShortRegex: monthsRegex$9, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$9, + longMonthsParse: monthsParse$9, + shortMonthsParse: monthsParse$9, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, + }); + + //! moment.js locale configuration + + var symbolMap$g = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap$f = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + + hooks.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap$f[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$g[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse$a = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; + function plural$3(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate$8(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural$3(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural$3(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural$3(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural$3(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural$3(number) ? 'lata' : 'lat'); + } + } + + hooks.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse$a, + longMonthsParse: monthsParse$a, + shortMonthsParse: monthsParse$a, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate$8, + m: translate$8, + mm: translate$8, + h: translate$8, + hh: translate$8, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate$8, + M: 'miesiąc', + MM: translate$8, + y: 'rok', + yy: translate$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', + }); + + //! moment.js locale configuration + + hooks.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithPlural$2(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + hooks.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural$2, + m: 'un minut', + mm: relativeTimeWithPlural$2, + h: 'o oră', + hh: relativeTimeWithPlural$2, + d: 'o zi', + dd: relativeTimeWithPlural$2, + w: 'o săptămână', + ww: relativeTimeWithPlural$2, + M: 'o lună', + MM: relativeTimeWithPlural$2, + y: 'un an', + yy: relativeTimeWithPlural$2, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$4(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$3(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural$4(format[key], +number); + } + } + var monthsParse$b = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : § 103 + // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + hooks.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse$b, + longMonthsParse: monthsParse$b, + shortMonthsParse: monthsParse$b, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural$3, + m: relativeTimeWithPlural$3, + mm: relativeTimeWithPlural$3, + h: 'час', + hh: relativeTimeWithPlural$3, + d: 'день', + dd: relativeTimeWithPlural$3, + w: 'неделя', + ww: relativeTimeWithPlural$3, + M: 'месяц', + MM: relativeTimeWithPlural$3, + y: 'год', + yy: relativeTimeWithPlural$3, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$9 = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + + hooks.defineLocale('sd', { + months: months$9, + monthsShort: months$9, + weekdays: days$1, + weekdaysShort: days$1, + weekdaysMin: days$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + /*jshint -W100*/ + hooks.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, + }); + + //! moment.js locale configuration + + var months$a = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function plural$5(n) { + return n > 1 && n < 5; + } + function translate$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + hooks.defineLocale('sk', { + months: months$a, + monthsShort: monthsShort$7, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate$9, + ss: translate$9, + m: translate$9, + mm: translate$9, + h: translate$9, + hh: translate$9, + d: translate$9, + dd: translate$9, + M: translate$9, + MM: translate$9, + y: translate$9, + yy: translate$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + hooks.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime$9, + ss: processRelativeTime$9, + m: processRelativeTime$9, + mm: processRelativeTime$9, + h: processRelativeTime$9, + hh: processRelativeTime$9, + d: processRelativeTime$9, + dd: processRelativeTime$9, + M: processRelativeTime$9, + MM: processRelativeTime$9, + y: processRelativeTime$9, + yy: processRelativeTime$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$1 = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$1.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$1.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, + }; + + hooks.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator$1.translate, + m: translator$1.translate, + mm: translator$1.translate, + h: translator$1.translate, + hh: translator$1.translate, + d: translator$1.translate, + dd: translator$1.translate, + M: translator$1.translate, + MM: translator$1.translate, + y: translator$1.translate, + yy: translator$1.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$2 = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$2.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$2.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + hooks.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator$2.translate, + m: translator$2.translate, + mm: translator$2.translate, + h: translator$2.translate, + hh: translator$2.translate, + d: translator$2.translate, + dd: translator$2.translate, + M: translator$2.translate, + MM: translator$2.translate, + y: translator$2.translate, + yy: translator$2.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$h = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap$g = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + + hooks.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap$g[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$h[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$3 = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', + }; + + hooks.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, + }); + + //! moment.js locale configuration + + var suffixes$4 = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + hooks.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate$a(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + hooks.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate$a, + m: 'wa’ tup', + mm: translate$a, + h: 'wa’ rep', + hh: translate$a, + d: 'wa’ jaj', + dd: translate$a, + M: 'wa’ jar', + MM: translate$a, + y: 'wa’ DIS', + yy: translate$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$5 = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", + }; + + hooks.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + hooks.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime$a, + ss: processRelativeTime$a, + m: processRelativeTime$a, + mm: processRelativeTime$a, + h: processRelativeTime$a, + hh: processRelativeTime$a, + d: processRelativeTime$a, + dd: processRelativeTime$a, + M: processRelativeTime$a, + MM: processRelativeTime$a, + y: processRelativeTime$a, + yy: processRelativeTime$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + function processRelativeTime$a(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + //! moment.js locale configuration + + hooks.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$6(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$4(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural$6(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + hooks.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural$4, + m: relativeTimeWithPlural$4, + mm: relativeTimeWithPlural$4, + h: 'годину', + hh: relativeTimeWithPlural$4, + d: 'день', + dd: relativeTimeWithPlural$4, + M: 'місяць', + MM: relativeTimeWithPlural$4, + y: 'рік', + yy: relativeTimeWithPlural$4, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$b = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + + hooks.defineLocale('ur', { + months: months$b, + monthsShort: months$b, + weekdays: days$2, + weekdaysShort: days$2, + weekdaysMin: days$2, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, + }); + + hooks.locale('en'); + + return hooks; + +}))); diff --git a/node_modules/moment/min/moment-with-locales.min.js b/node_modules/moment/min/moment-with-locales.min.js new file mode 100644 index 0000000..8a6c9b4 --- /dev/null +++ b/node_modules/moment/min/moment-with-locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var E;function c(){return E.apply(null,arguments)}function F(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function z(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function N(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var a in e)if(l(e,a))return;return 1}function L(e){return void 0===e}function J(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function R(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function C(e,a){for(var t=[],s=e.length,n=0;n>>0,s=0;sFe(e)?(r=e+1,a-Fe(e)):(r=e,a);return{year:r,dayOfYear:t}}function aa(e,a,t){var s,n,r=Xe(e.year(),a,t),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+ta(n=e.year()-1,a,t):r>ta(e.year(),a,t)?(s=r-ta(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function ta(e,a,t){var s=Xe(e,a,t),a=Xe(e+1,a,t);return(Fe(e)-s+a)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),h("w",r,u),h("ww",r,a),h("W",r,u),h("WW",r,a),Se(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=f(e)});function sa(e,a){return e.slice(a,7).concat(e.slice(0,a))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),h("d",r),h("e",r),h("E",r),h("dd",function(e,a){return a.weekdaysMinRegex(e)}),h("ddd",function(e,a){return a.weekdaysShortRegex(e)}),h("dddd",function(e,a){return a.weekdaysRegex(e)}),Se(["dd","ddd","dddd"],function(e,a,t,s){s=t._locale.weekdaysParse(e,s,t._strict);null!=s?a.d=s:Y(t).invalidWeekday=e}),Se(["d","e","E"],function(e,a,t,s){a[s]=f(e)});var na="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ra="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),da="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),_a=m,ia=m,oa=m;function ma(){function e(e,a){return a.length-e.length}for(var a,t,s,n=[],r=[],d=[],_=[],i=0;i<7;i++)s=U([2e3,1]).day(i),a=we(this.weekdaysMin(s,"")),t=we(this.weekdaysShort(s,"")),s=we(this.weekdays(s,"")),n.push(a),r.push(t),d.push(s),_.push(a),_.push(t),_.push(s);n.sort(e),r.sort(e),d.sort(e),_.sort(e),this._weekdaysRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+n.join("|")+")","i")}function ua(){return this.hours()%12||12}function la(e,a){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function Ma(e,a){return a._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,ua),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+ua.apply(this)+de(this.minutes(),2)}),s("hmmss",0,0,function(){return""+ua.apply(this)+de(this.minutes(),2)+de(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+de(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+de(this.minutes(),2)+de(this.seconds(),2)}),la("a",!0),la("A",!1),h("a",Ma),h("A",Ma),h("H",r,M),h("h",r,u),h("k",r,u),h("HH",r,a),h("hh",r,a),h("kk",r,a),h("hmm",ye),h("hmmss",_),h("Hmm",ye),h("Hmmss",_),k(["H","HH"],D),k(["k","kk"],function(e,a,t){e=f(e);a[D]=24===e?0:e}),k(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),k(["h","hh"],function(e,a,t){a[D]=f(e),Y(t).bigHour=!0}),k("hmm",function(e,a,t){var s=e.length-2;a[D]=f(e.substr(0,s)),a[Pe]=f(e.substr(s)),Y(t).bigHour=!0}),k("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[D]=f(e.substr(0,s)),a[Pe]=f(e.substr(s,2)),a[Oe]=f(e.substr(n)),Y(t).bigHour=!0}),k("Hmm",function(e,a,t){var s=e.length-2;a[D]=f(e.substr(0,s)),a[Pe]=f(e.substr(s))}),k("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[D]=f(e.substr(0,s)),a[Pe]=f(e.substr(s,2)),a[Oe]=f(e.substr(n))});m=Ne("Hours",!0);var ha,ca={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ie,monthsShort:Ue,week:{dow:0,doy:6},weekdays:na,weekdaysMin:da,weekdaysShort:ra,meridiemParse:/[ap]\.?m?\.?/i},g={},La={};function Ya(e){return e&&e.toLowerCase().replace("_","-")}function ya(e){for(var a,t,s,n,r=0;r=a&&function(e,a){for(var t=Math.min(e.length,a.length),s=0;s=a-1)break;a--}r++}return ha}function fa(a){var e,t;if(void 0===g[a]&&"undefined"!=typeof module&&module&&module.exports&&(t=a)&&t.match("^[^/\\\\]*$"))try{e=ha._abbr,require("./locale/"+a),ka(e)}catch(e){g[a]=null}return g[a]}function ka(e,a){return e&&((a=L(a)?Da(e):pa(e,a))?ha=a:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ha._abbr}function pa(e,a){if(null===a)return delete g[e],null;var t,s=ca;if(a.abbr=e,null!=g[e])ae("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=g[e]._config;else if(null!=a.parentLocale)if(null!=g[a.parentLocale])s=g[a.parentLocale]._config;else{if(null==(t=fa(a.parentLocale)))return La[a.parentLocale]||(La[a.parentLocale]=[]),La[a.parentLocale].push({name:e,config:a}),null;s=t._config}return g[e]=new ne(se(s,a)),La[e]&&La[e].forEach(function(e){pa(e.name,e.config)}),ka(e),g[e]}function Da(e){var a;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return ha;if(!F(e)){if(a=fa(e))return a;e=[e]}return ya(e)}function Ta(e){var a=e._a;return a&&-2===Y(e).overflow&&(a=a[je]<0||11Ce(a[p],a[je])?xe:a[D]<0||24ta(r,i,o)?Y(s)._overflowWeeks=!0:null!=m?Y(s)._overflowWeekday=!0:(u=ea(r,d,_,i,o),s._a[p]=u.year,s._dayOfYear=u.dayOfYear)),null!=e._dayOfYear&&(n=Aa(e._a[p],t[p]),(e._dayOfYear>Fe(n)||0===e._dayOfYear)&&(Y(e)._overflowDayOfYear=!0),m=Qe(n,0,e._dayOfYear),e._a[je]=m.getUTCMonth(),e._a[xe]=m.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=l[a]=t[a];for(;a<7;a++)e._a[a]=l[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[D]&&0===e._a[Pe]&&0===e._a[Oe]&&0===e._a[We]&&(e._nextDay=!0,e._a[D]=0),e._d=(e._useUTC?Qe:$e).apply(null,l),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[D]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(Y(e).weekdayMismatch=!0)}}function Fa(e){if(e._f===c.ISO_8601)Pa(e);else if(e._f===c.RFC_2822)Wa(e);else{e._a=[],Y(e).empty=!0;for(var a,t,s,n,r,d=""+e._i,_=d.length,i=0,o=le(e._f,e._locale).match(_e)||[],m=o.length,u=0;ue.valueOf():e.valueOf()"}),u.toJSON=function(){return this.isValid()?this.toISOString():null},u.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},u.unix=function(){return Math.floor(this.valueOf()/1e3)},u.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},u.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},u.eraName=function(){for(var e,a=this.localeData().eras(),t=0,s=a.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},u.isLocal=function(){return!!this.isValid()&&!this._isUTC},u.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},u.isUtc=Za,u.isUTC=Za,u.zoneAbbr=function(){return this._isUTC?"UTC":""},u.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},u.dates=e("dates accessor is deprecated. Use date instead.",i),u.months=e("months accessor is deprecated. Use month instead",Ke),u.years=e("years accessor is deprecated. Use year instead",ze),u.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,a),this):-this.utcOffset()}),u.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){var e,a;return L(this._isDSTShifted)&&(Z(e={},this),(e=za(e))._a?(a=(e._isUTC?U:w)(e._a),this._isDSTShifted=this.isValid()&&0>>0,s=0;sWe(e)?(r=e+1,t-We(e)):(r=e,t);return{year:r,dayOfYear:n}}function Be(e,t,n){var s,i,r=qe(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+N(i=e.year()-1,t,n):r>N(e.year(),t,n)?(s=r-N(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function N(e,t,n){var s=qe(e,t,n),t=qe(e+1,t,n);return(We(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),h("w",n,u),h("ww",n,t),h("W",n,u),h("WW",n,t),Oe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=M(e)});function Je(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),h("d",n),h("e",n),h("E",n),h("dd",function(e,t){return t.weekdaysMinRegex(e)}),h("ddd",function(e,t){return t.weekdaysShortRegex(e)}),h("dddd",function(e,t){return t.weekdaysRegex(e)}),Oe(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:p(n).invalidWeekday=e}),Oe(["d","e","E"],function(e,t,n,s){t[s]=M(e)});var Qe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Xe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),et=i,tt=i,nt=i;function st(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=f(this.weekdaysMin(s,"")),n=f(this.weekdaysShort(s,"")),s=f(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function it(){return this.hours()%12||12}function rt(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function at(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,it),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+it.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),rt("a",!0),rt("A",!1),h("a",at),h("A",at),h("H",n,d),h("h",n,u),h("k",n,u),h("HH",n,t),h("hh",n,t),h("kk",n,t),h("hmm",me),h("hmmss",_e),h("Hmm",me),h("Hmmss",_e),v(["H","HH"],O),v(["k","kk"],function(e,t,n){e=M(e);t[O]=24===e?0:e}),v(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),v(["h","hh"],function(e,t,n){t[O]=M(e),p(n).bigHour=!0}),v("hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s)),p(n).bigHour=!0}),v("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i)),p(n).bigHour=!0}),v("Hmm",function(e,t,n){var s=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s))}),v("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[O]=M(e.substr(0,s)),t[b]=M(e.substr(s,2)),t[T]=M(e.substr(i))});i=Re("Hours",!0);var ot,ut={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Fe,monthsShort:Le,week:{dow:0,doy:6},weekdays:Qe,weekdaysMin:Ke,weekdaysShort:Xe,meridiemParse:/[ap]\.?m?\.?/i},W={},lt={};function dt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return ot}function ct(t){var e,n;if(void 0===W[t]&&"undefined"!=typeof module&&module&&module.exports&&(n=t)&&n.match("^[^/\\\\]*$"))try{e=ot._abbr,require("./locale/"+t),ft(e)}catch(e){W[t]=null}return W[t]}function ft(e,t){return e&&((t=g(t)?P(e):mt(e,t))?ot=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ot._abbr}function mt(e,t){if(null===t)return delete W[e],null;var n,s=ut;if(t.abbr=e,null!=W[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=W[e]._config;else if(null!=t.parentLocale)if(null!=W[t.parentLocale])s=W[t.parentLocale]._config;else{if(null==(n=ct(t.parentLocale)))return lt[t.parentLocale]||(lt[t.parentLocale]=[]),lt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return W[e]=new K(X(s,t)),lt[e]&<[e].forEach(function(e){mt(e.name,e.config)}),ft(e),W[e]}function P(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return ot;if(!y(e)){if(t=ct(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===p(e).overflow&&(t=t[Y]<0||11He(t[D],t[Y])?S:t[O]<0||24N(r,u,l)?p(s)._overflowWeeks=!0:null!=d?p(s)._overflowWeekday=!0:(h=$e(r,a,o,u,l),s._a[D]=h.year,s._dayOfYear=h.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[D],n[D]),(e._dayOfYear>We(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),d=ze(i,0,e._dayOfYear),e._a[Y]=d.getUTCMonth(),e._a[S]=d.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[O]&&0===e._a[b]&&0===e._a[T]&&0===e._a[Te]&&(e._nextDay=!0,e._a[O]=0),e._d=(e._useUTC?ze:Ze).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[O]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(p(e).weekdayMismatch=!0)}}function xt(e){if(e._f===_.ISO_8601)Yt(e);else if(e._f===_.RFC_2822)Ot(e);else{e._a=[],p(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],d=l.length,h=0;he.valueOf():e.valueOf()"}),u.toJSON=function(){return this.isValid()?this.toISOString():null},u.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},u.unix=function(){return Math.floor(this.valueOf()/1e3)},u.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},u.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},u.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},u.isLocal=function(){return!!this.isValid()&&!this._isUTC},u.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},u.isUtc=At,u.isUTC=At,u.zoneAbbr=function(){return this._isUTC?"UTC":""},u.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},u.dates=e("dates accessor is deprecated. Use date instead.",ge),u.months=e("months accessor is deprecated. Use month instead",Ie),u.years=e("years accessor is deprecated. Use year instead",Pe),u.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),u.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){var e,t;return g(this._isDSTShifted)&&(q(e={},this),(e=Nt(e))._a?(t=(e._isUTC?l:R)(e._a),this._isDSTShifted=this.isValid()&&0 string); + interface CalendarSpec { + sameDay?: CalendarSpecVal; + nextDay?: CalendarSpecVal; + lastDay?: CalendarSpecVal; + nextWeek?: CalendarSpecVal; + lastWeek?: CalendarSpecVal; + sameElse?: CalendarSpecVal; + + // any additional properties might be used with moment.calendarFormat + [x: string]: CalendarSpecVal | void; // undefined + } + + type RelativeTimeSpecVal = ( + string | + ((n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean) => string) + ); + type RelativeTimeFuturePastVal = string | ((relTime: string) => string); + + interface RelativeTimeSpec { + future?: RelativeTimeFuturePastVal; + past?: RelativeTimeFuturePastVal; + s?: RelativeTimeSpecVal; + ss?: RelativeTimeSpecVal; + m?: RelativeTimeSpecVal; + mm?: RelativeTimeSpecVal; + h?: RelativeTimeSpecVal; + hh?: RelativeTimeSpecVal; + d?: RelativeTimeSpecVal; + dd?: RelativeTimeSpecVal; + w?: RelativeTimeSpecVal + ww?: RelativeTimeSpecVal; + M?: RelativeTimeSpecVal; + MM?: RelativeTimeSpecVal; + y?: RelativeTimeSpecVal; + yy?: RelativeTimeSpecVal; + } + + interface LongDateFormatSpec { + LTS: string; + LT: string; + L: string; + LL: string; + LLL: string; + LLLL: string; + + // lets forget for a sec that any upper/lower permutation will also work + lts?: string; + lt?: string; + l?: string; + ll?: string; + lll?: string; + llll?: string; + } + + type MonthWeekdayFn = (momentToFormat: Moment, format?: string) => string; + type WeekdaySimpleFn = (momentToFormat: Moment) => string; + interface EraSpec { + since: string | number; + until: string | number; + offset: number; + name: string; + narrow: string; + abbr: string; + } + + interface LocaleSpecification { + months?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + monthsShort?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + + weekdays?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + weekdaysShort?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + weekdaysMin?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + + meridiemParse?: RegExp; + meridiem?: (hour: number, minute:number, isLower: boolean) => string; + + isPM?: (input: string) => boolean; + + longDateFormat?: LongDateFormatSpec; + calendar?: CalendarSpec; + relativeTime?: RelativeTimeSpec; + invalidDate?: string; + ordinal?: (n: number) => string; + ordinalParse?: RegExp; + + week?: WeekSpec; + eras?: EraSpec[]; + + // Allow anything: in general any property that is passed as locale spec is + // put in the locale object so it can be used by locale functions + [x: string]: any; + } + + interface MomentObjectOutput { + years: number; + /* One digit */ + months: number; + /* Day of the month */ + date: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; + } + + interface argThresholdOpts { + ss?: number; + s?: number; + m?: number; + h?: number; + d?: number; + w?: number | void; + M?: number; + } + + interface Duration { + clone(): Duration; + + humanize(argWithSuffix?: boolean, argThresholds?: argThresholdOpts): string; + + humanize(argThresholds?: argThresholdOpts): string; + + abs(): Duration; + + as(units: unitOfTime.Base): number; + get(units: unitOfTime.Base): number; + + milliseconds(): number; + asMilliseconds(): number; + + seconds(): number; + asSeconds(): number; + + minutes(): number; + asMinutes(): number; + + hours(): number; + asHours(): number; + + days(): number; + asDays(): number; + + weeks(): number; + asWeeks(): number; + + months(): number; + asMonths(): number; + + years(): number; + asYears(): number; + + add(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + subtract(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + locale(): string; + locale(locale: LocaleSpecifier): Duration; + localeData(): Locale; + + toISOString(): string; + toJSON(): string; + + isValid(): boolean; + + /** + * @deprecated since version 2.8.0 + */ + lang(locale: LocaleSpecifier): Moment; + /** + * @deprecated since version 2.8.0 + */ + lang(): Locale; + /** + * @deprecated + */ + toIsoString(): string; + } + + interface MomentRelativeTime { + future: any; + past: any; + s: any; + ss: any; + m: any; + mm: any; + h: any; + hh: any; + d: any; + dd: any; + M: any; + MM: any; + y: any; + yy: any; + } + + interface MomentLongDateFormat { + L: string; + LL: string; + LLL: string; + LLLL: string; + LT: string; + LTS: string; + + l?: string; + ll?: string; + lll?: string; + llll?: string; + lt?: string; + lts?: string; + } + + interface MomentParsingFlags { + empty: boolean; + unusedTokens: string[]; + unusedInput: string[]; + overflow: number; + charsLeftOver: number; + nullInput: boolean; + invalidMonth: string | void; // null + invalidFormat: boolean; + userInvalidated: boolean; + iso: boolean; + parsedDateParts: any[]; + meridiem: string | void; // null + } + + interface MomentParsingFlagsOpt { + empty?: boolean; + unusedTokens?: string[]; + unusedInput?: string[]; + overflow?: number; + charsLeftOver?: number; + nullInput?: boolean; + invalidMonth?: string; + invalidFormat?: boolean; + userInvalidated?: boolean; + iso?: boolean; + parsedDateParts?: any[]; + meridiem?: string; + } + + interface MomentBuiltinFormat { + __momentBuiltinFormatBrand: any; + } + + type MomentFormatSpecification = string | MomentBuiltinFormat | (string | MomentBuiltinFormat)[]; + + export namespace unitOfTime { + type Base = ( + "year" | "years" | "y" | + "month" | "months" | "M" | + "week" | "weeks" | "w" | + "day" | "days" | "d" | + "hour" | "hours" | "h" | + "minute" | "minutes" | "m" | + "second" | "seconds" | "s" | + "millisecond" | "milliseconds" | "ms" + ); + + type _quarter = "quarter" | "quarters" | "Q"; + type _isoWeek = "isoWeek" | "isoWeeks" | "W"; + type _date = "date" | "dates" | "D"; + type DurationConstructor = Base | _quarter | _isoWeek; + + export type DurationAs = Base; + + export type StartOf = Base | _quarter | _isoWeek | _date | void; // null + + export type Diff = Base | _quarter; + + export type MomentConstructor = Base | _date; + + export type All = Base | _quarter | _isoWeek | _date | + "weekYear" | "weekYears" | "gg" | + "isoWeekYear" | "isoWeekYears" | "GG" | + "dayOfYear" | "dayOfYears" | "DDD" | + "weekday" | "weekdays" | "e" | + "isoWeekday" | "isoWeekdays" | "E"; + } + + type numberlike = number | string; + interface MomentInputObject { + years?: numberlike; + year?: numberlike; + y?: numberlike; + + months?: numberlike; + month?: numberlike; + M?: numberlike; + + days?: numberlike; + day?: numberlike; + d?: numberlike; + + dates?: numberlike; + date?: numberlike; + D?: numberlike; + + hours?: numberlike; + hour?: numberlike; + h?: numberlike; + + minutes?: numberlike; + minute?: numberlike; + m?: numberlike; + + seconds?: numberlike; + second?: numberlike; + s?: numberlike; + + milliseconds?: numberlike; + millisecond?: numberlike; + ms?: numberlike; + } + + interface DurationInputObject extends MomentInputObject { + quarters?: numberlike; + quarter?: numberlike; + Q?: numberlike; + + weeks?: numberlike; + week?: numberlike; + w?: numberlike; + } + + interface MomentSetObject extends MomentInputObject { + weekYears?: numberlike; + weekYear?: numberlike; + gg?: numberlike; + + isoWeekYears?: numberlike; + isoWeekYear?: numberlike; + GG?: numberlike; + + quarters?: numberlike; + quarter?: numberlike; + Q?: numberlike; + + weeks?: numberlike; + week?: numberlike; + w?: numberlike; + + isoWeeks?: numberlike; + isoWeek?: numberlike; + W?: numberlike; + + dayOfYears?: numberlike; + dayOfYear?: numberlike; + DDD?: numberlike; + + weekdays?: numberlike; + weekday?: numberlike; + e?: numberlike; + + isoWeekdays?: numberlike; + isoWeekday?: numberlike; + E?: numberlike; + } + + interface FromTo { + from: MomentInput; + to: MomentInput; + } + + type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + type DurationInputArg1 = Duration | number | string | FromTo | DurationInputObject | void; // null | undefined + type DurationInputArg2 = unitOfTime.DurationConstructor; + type LocaleSpecifier = string | Moment | Duration | string[] | boolean; + + interface MomentCreationData { + input: MomentInput; + format?: MomentFormatSpecification; + locale: Locale; + isUTC: boolean; + strict?: boolean; + } + + interface Moment extends Object { + format(format?: string): string; + + startOf(unitOfTime: unitOfTime.StartOf): Moment; + endOf(unitOfTime: unitOfTime.StartOf): Moment; + + add(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + add(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + subtract(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + subtract(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + calendar(): string; + calendar(formats: CalendarSpec): string; + calendar(time: MomentInput, formats?: CalendarSpec): string; + + clone(): Moment; + + /** + * @return Unix timestamp in milliseconds + */ + valueOf(): number; + + // current date/time in local mode + local(keepLocalTime?: boolean): Moment; + isLocal(): boolean; + + // current date/time in UTC mode + utc(keepLocalTime?: boolean): Moment; + isUTC(): boolean; + /** + * @deprecated use isUTC + */ + isUtc(): boolean; + + parseZone(): Moment; + isValid(): boolean; + invalidAt(): number; + + hasAlignedHourOffset(other?: MomentInput): boolean; + + creationData(): MomentCreationData; + parsingFlags(): MomentParsingFlags; + + year(y: number): Moment; + year(): number; + /** + * @deprecated use year(y) + */ + years(y: number): Moment; + /** + * @deprecated use year() + */ + years(): number; + quarter(): number; + quarter(q: number): Moment; + quarters(): number; + quarters(q: number): Moment; + month(M: number|string): Moment; + month(): number; + /** + * @deprecated use month(M) + */ + months(M: number|string): Moment; + /** + * @deprecated use month() + */ + months(): number; + day(d: number|string): Moment; + day(): number; + days(d: number|string): Moment; + days(): number; + date(d: number): Moment; + date(): number; + /** + * @deprecated use date(d) + */ + dates(d: number): Moment; + /** + * @deprecated use date() + */ + dates(): number; + hour(h: number): Moment; + hour(): number; + hours(h: number): Moment; + hours(): number; + minute(m: number): Moment; + minute(): number; + minutes(m: number): Moment; + minutes(): number; + second(s: number): Moment; + second(): number; + seconds(s: number): Moment; + seconds(): number; + millisecond(ms: number): Moment; + millisecond(): number; + milliseconds(ms: number): Moment; + milliseconds(): number; + weekday(): number; + weekday(d: number): Moment; + isoWeekday(): number; + isoWeekday(d: number|string): Moment; + weekYear(): number; + weekYear(d: number): Moment; + isoWeekYear(): number; + isoWeekYear(d: number): Moment; + week(): number; + week(d: number): Moment; + weeks(): number; + weeks(d: number): Moment; + isoWeek(): number; + isoWeek(d: number): Moment; + isoWeeks(): number; + isoWeeks(d: number): Moment; + weeksInYear(): number; + weeksInWeekYear(): number; + isoWeeksInYear(): number; + isoWeeksInISOWeekYear(): number; + dayOfYear(): number; + dayOfYear(d: number): Moment; + + from(inp: MomentInput, suffix?: boolean): string; + to(inp: MomentInput, suffix?: boolean): string; + fromNow(withoutSuffix?: boolean): string; + toNow(withoutPrefix?: boolean): string; + + diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; + + toArray(): number[]; + toDate(): Date; + toISOString(keepOffset?: boolean): string; + inspect(): string; + toJSON(): string; + unix(): number; + + isLeapYear(): boolean; + /** + * @deprecated in favor of utcOffset + */ + zone(): number; + zone(b: number|string): Moment; + utcOffset(): number; + utcOffset(b: number|string, keepLocalTime?: boolean): Moment; + isUtcOffset(): boolean; + daysInMonth(): number; + isDST(): boolean; + + zoneAbbr(): string; + zoneName(): string; + + isBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSame(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isBetween(a: MomentInput, b: MomentInput, granularity?: unitOfTime.StartOf, inclusivity?: "()" | "[)" | "(]" | "[]"): boolean; + + /** + * @deprecated as of 2.8.0, use locale + */ + lang(language: LocaleSpecifier): Moment; + /** + * @deprecated as of 2.8.0, use locale + */ + lang(): Locale; + + locale(): string; + locale(locale: LocaleSpecifier): Moment; + + localeData(): Locale; + + /** + * @deprecated no reliable implementation + */ + isDSTShifted(): boolean; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + get(unit: unitOfTime.All): number; + set(unit: unitOfTime.All, value: number): Moment; + set(objectLiteral: MomentSetObject): Moment; + + toObject(): MomentObjectOutput; + } + + export var version: string; + export var fn: Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ + export function utc(inp?: MomentInput, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function unix(timestamp: number): Moment; + + export function invalid(flags?: MomentParsingFlagsOpt): Moment; + export function isMoment(m: any): m is Moment; + export function isDate(m: any): m is Date; + export function isDuration(d: any): d is Duration; + + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string): string; + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string, definition?: Locale): string; + + export function locale(language?: string): string; + export function locale(language?: string[]): string; + export function locale(language?: string, definition?: LocaleSpecification | void): string; // null | undefined + + export function localeData(key?: string | string[]): Locale; + + export function duration(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + // NOTE(constructor): Same as moment constructor + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function months(): string[]; + export function months(index: number): string; + export function months(format: string): string[]; + export function months(format: string, index: number): string; + export function monthsShort(): string[]; + export function monthsShort(index: number): string; + export function monthsShort(format: string): string[]; + export function monthsShort(format: string, index: number): string; + + export function weekdays(): string[]; + export function weekdays(index: number): string; + export function weekdays(format: string): string[]; + export function weekdays(format: string, index: number): string; + export function weekdays(localeSorted: boolean): string[]; + export function weekdays(localeSorted: boolean, index: number): string; + export function weekdays(localeSorted: boolean, format: string): string[]; + export function weekdays(localeSorted: boolean, format: string, index: number): string; + export function weekdaysShort(): string[]; + export function weekdaysShort(index: number): string; + export function weekdaysShort(format: string): string[]; + export function weekdaysShort(format: string, index: number): string; + export function weekdaysShort(localeSorted: boolean): string[]; + export function weekdaysShort(localeSorted: boolean, index: number): string; + export function weekdaysShort(localeSorted: boolean, format: string): string[]; + export function weekdaysShort(localeSorted: boolean, format: string, index: number): string; + export function weekdaysMin(): string[]; + export function weekdaysMin(index: number): string; + export function weekdaysMin(format: string): string[]; + export function weekdaysMin(format: string, index: number): string; + export function weekdaysMin(localeSorted: boolean): string[]; + export function weekdaysMin(localeSorted: boolean, index: number): string; + export function weekdaysMin(localeSorted: boolean, format: string): string[]; + export function weekdaysMin(localeSorted: boolean, format: string, index: number): string; + + export function min(moments: Moment[]): Moment; + export function min(...moments: Moment[]): Moment; + export function max(moments: Moment[]): Moment; + export function max(...moments: Moment[]): Moment; + + /** + * Returns unix time in milliseconds. Overwrite for profit. + */ + export function now(): number; + + export function defineLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null + export function updateLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null + + export function locales(): string[]; + + export function normalizeUnits(unit: unitOfTime.All): string; + export function relativeTimeThreshold(threshold: string): number | boolean; + export function relativeTimeThreshold(threshold: string, limit: number): boolean; + export function relativeTimeRounding(fn: (num: number) => number): boolean; + export function relativeTimeRounding(): (num: number) => number; + export function calendarFormat(m: Moment, now: Moment): string; + + export function parseTwoDigitYear(input: string): number; + + /** + * Constant used to enable explicit ISO_8601 format parsing. + */ + export var ISO_8601: MomentBuiltinFormat; + export var RFC_2822: MomentBuiltinFormat; + + export var defaultFormat: string; + export var defaultFormatUtc: string; + export var suppressDeprecationWarnings: boolean; + export var deprecationHandler: ((name: string | void, msg: string) => void) | void; + + export var HTML5_FMT: { + DATETIME_LOCAL: string, + DATETIME_LOCAL_SECONDS: string, + DATETIME_LOCAL_MS: string, + DATE: string, + TIME: string, + TIME_SECONDS: string, + TIME_MS: string, + WEEK: string, + MONTH: string + }; + +} + +export = moment; diff --git a/node_modules/moment/moment.js b/node_modules/moment/moment.js new file mode 100644 index 0000000..480b9fb --- /dev/null +++ b/node_modules/moment/moment.js @@ -0,0 +1,5688 @@ +//! moment.js +//! version : 2.30.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, (function () { 'use strict'; + + var hookCallback; + + function hooks() { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } + + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } + + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + var flags = null, + parsedParts = false, + isNowValid = m._d && !isNaN(m._d.getTime()); + if (isNowValid) { + flags = getParsingFlags(m); + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + isNowValid = + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = { + D: 'date', + dates: 'date', + date: 'date', + d: 'day', + days: 'day', + day: 'day', + e: 'weekday', + weekdays: 'weekday', + weekday: 'weekday', + E: 'isoWeekday', + isoweekdays: 'isoWeekday', + isoweekday: 'isoWeekday', + DDD: 'dayOfYear', + dayofyears: 'dayOfYear', + dayofyear: 'dayOfYear', + h: 'hour', + hours: 'hour', + hour: 'hour', + ms: 'millisecond', + milliseconds: 'millisecond', + millisecond: 'millisecond', + m: 'minute', + minutes: 'minute', + minute: 'minute', + M: 'month', + months: 'month', + month: 'month', + Q: 'quarter', + quarters: 'quarter', + quarter: 'quarter', + s: 'second', + seconds: 'second', + second: 'second', + gg: 'weekYear', + weekyears: 'weekYear', + weekyear: 'weekYear', + GG: 'isoWeekYear', + isoweekyears: 'isoWeekYear', + isoweekyear: 'isoWeekYear', + w: 'week', + weeks: 'week', + week: 'week', + W: 'isoWeek', + isoweeks: 'isoWeek', + isoweek: 'isoWeek', + y: 'year', + years: 'year', + year: 'year', + }; + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = { + date: 9, + day: 11, + weekday: 11, + isoWeekday: 11, + dayOfYear: 4, + hour: 13, + millisecond: 16, + minute: 14, + month: 8, + quarter: 7, + second: 15, + weekYear: 1, + isoWeekYear: 1, + week: 5, + isoWeek: 5, + year: 1, + }; + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 + match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + if (!mom.isValid()) { + return NaN; + } + + var d = mom._d, + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); + case 'Seconds': + return isUTC ? d.getUTCSeconds() : d.getSeconds(); + case 'Minutes': + return isUTC ? d.getUTCMinutes() : d.getMinutes(); + case 'Hours': + return isUTC ? d.getUTCHours() : d.getHours(); + case 'Date': + return isUTC ? d.getUTCDate() : d.getDate(); + case 'Day': + return isUTC ? d.getUTCDay() : d.getDay(); + case 'Month': + return isUTC ? d.getUTCMonth() : d.getMonth(); + case 'FullYear': + return isUTC ? d.getUTCFullYear() : d.getFullYear(); + default: + return NaN; // Just in case + } + } + + function set$1(mom, unit, value) { + var d, isUTC, year, month, date; + + if (!mom.isValid() || isNaN(value)) { + return; + } + + d = mom._d; + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return void (isUTC + ? d.setUTCMilliseconds(value) + : d.setMilliseconds(value)); + case 'Seconds': + return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); + case 'Minutes': + return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); + case 'Hours': + return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); + case 'Date': + return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); + // case 'Day': // Not real + // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); + // case 'Month': // Not used because we need to pass two variables + // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); + case 'FullYear': + break; // See below ... + default: + return; // Just in case + } + + year = value; + month = mom.month(); + date = mom.date(); + date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; + void (isUTC + ? d.setUTCFullYear(year, month, date) + : d.setFullYear(year, month, date)); + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // PARSING + + addRegexToken('M', match1to2, match1to2NoLeadingZero); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + var month = value, + date = mom.date(); + + date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); + void (mom._isUTC + ? mom._d.setUTCMonth(month, date) + : mom._d.setMonth(month, date)); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + shortP, + longP; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortP = regexEscape(this.monthsShort(mom, '')); + longP = regexEscape(this.months(mom, '')); + shortPieces.push(shortP); + longPieces.push(longP); + mixedPieces.push(longP); + mixedPieces.push(shortP); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // PARSING + + addRegexToken('w', match1to2, match1to2NoLeadingZero); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2, match1to2NoLeadingZero); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + var day = get(this, 'Day'); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2, match1to2HasZero); + addRegexToken('h', match1to2, match1to2NoLeadingZero); + addRegexToken('k', match1to2, match1to2NoLeadingZero); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + // Ensure name is available and function returns boolean + return !!(name && name.match('^[^/\\\\]*$')); + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + erasName, + erasAbbr, + erasNarrow, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + erasName = regexEscape(eras[i].name); + erasAbbr = regexEscape(eras[i].abbr); + erasNarrow = regexEscape(eras[i].narrow); + + namePieces.push(erasName); + abbrPieces.push(erasAbbr); + narrowPieces.push(erasNarrow); + mixedPieces.push(erasName); + mixedPieces.push(erasAbbr); + mixedPieces.push(erasNarrow); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday() + this.localeData()._week.dow, + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // PARSING + + addRegexToken('D', match1to2, match1to2NoLeadingZero); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // PARSING + + addRegexToken('m', match1to2, match1to2HasZero); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // PARSING + + addRegexToken('s', match1to2, match1to2HasZero); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'), + valueOf$1 = asMilliseconds; + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.30.1'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + return hooks; + +}))); diff --git a/node_modules/moment/package.js b/node_modules/moment/package.js new file mode 100644 index 0000000..aba8d50 --- /dev/null +++ b/node_modules/moment/package.js @@ -0,0 +1,11 @@ +var profile = { + resourceTags: { + ignore: function(filename, mid){ + // only include moment/moment + return mid != "moment/moment"; + }, + amd: function(filename, mid){ + return /\.js$/.test(filename); + } + } +}; diff --git a/node_modules/moment/package.json b/node_modules/moment/package.json new file mode 100644 index 0000000..77a48e6 --- /dev/null +++ b/node_modules/moment/package.json @@ -0,0 +1,116 @@ +{ + "name": "moment", + "version": "2.30.1", + "description": "Parse, validate, manipulate, and display dates", + "homepage": "https://momentjs.com", + "author": "Iskren Ivov Chernev (https://github.com/ichernev)", + "contributors": [ + "Tim Wood (http://timwoodcreates.com/)", + "Rocky Meza (http://rockymeza.com)", + "Matt Johnson (http://codeofmatt.com)", + "Isaac Cambron (http://isaaccambron.com)", + "Andre Polykanine (https://github.com/oire)" + ], + "keywords": [ + "moment", + "date", + "time", + "parse", + "format", + "validate", + "i18n", + "l10n", + "ender" + ], + "main": "./moment.js", + "jsnext:main": "./dist/moment.js", + "typings": "./moment.d.ts", + "typesVersions": { + ">=3.1": { + "*": [ + "ts3.1-typings/*" + ], + "min/moment-with-locales": [ + "ts3.1-typings/moment.d.ts" + ] + } + }, + "engines": { + "node": "*" + }, + "repository": { + "type": "git", + "url": "https://github.com/moment/moment.git" + }, + "bugs": { + "url": "https://github.com/moment/moment/issues" + }, + "license": "MIT", + "devDependencies": { + "benchmark": "latest", + "coveralls": "latest", + "cross-env": "^6.0.3", + "es6-promise": "latest", + "eslint": "latest", + "grunt": "latest", + "grunt-benchmark": "latest", + "grunt-cli": "latest", + "grunt-contrib-clean": "latest", + "grunt-contrib-concat": "latest", + "grunt-contrib-copy": "latest", + "grunt-contrib-uglify": "latest", + "grunt-contrib-watch": "latest", + "grunt-env": "latest", + "grunt-exec": "latest", + "grunt-karma": "latest", + "grunt-nuget": "latest", + "grunt-string-replace": "latest", + "karma": "latest", + "karma-chrome-launcher": "latest", + "karma-firefox-launcher": "latest", + "karma-qunit": "latest", + "karma-sauce-launcher": "4.1.4", + "load-grunt-tasks": "latest", + "lodash": ">=4.17.19", + "node-qunit": "latest", + "nyc": "latest", + "prettier": "latest", + "qunit": "^2.10.0", + "rollup": "2.17.1", + "typescript": "^1.8.10", + "typescript3": "npm:typescript@^3.1.6", + "uglify-js": "latest", + "@types/node": "17.0.21" + }, + "ender": "./ender.js", + "dojoBuild": "package.js", + "jspm": { + "files": [ + "moment.js", + "moment.d.ts", + "locale" + ], + "map": { + "moment": "./moment" + }, + "buildConfig": { + "uglify": true + } + }, + "scripts": { + "ts3.1-typescript-test": "cross-env node_modules/typescript3/bin/tsc --project ts3.1-typing-tests", + "typescript-test": "cross-env node_modules/typescript/bin/tsc --project typing-tests", + "test": "grunt test", + "eslint": "eslint Gruntfile.js tasks src", + "prettier-check": "prettier --check Gruntfile.js tasks src", + "prettier-fmt": "prettier --write Gruntfile.js tasks src", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "spm": { + "main": "moment.js", + "output": [ + "locale/*.js" + ] + } +} diff --git a/node_modules/moment/src/lib/create/check-overflow.js b/node_modules/moment/src/lib/create/check-overflow.js new file mode 100644 index 0000000..ee08812 --- /dev/null +++ b/node_modules/moment/src/lib/create/check-overflow.js @@ -0,0 +1,57 @@ +import { daysInMonth } from '../units/month'; +import { + YEAR, + MONTH, + DATE, + HOUR, + MINUTE, + SECOND, + MILLISECOND, + WEEK, + WEEKDAY, +} from '../units/constants'; +import getParsingFlags from '../create/parsing-flags'; + +export default function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; +} diff --git a/node_modules/moment/src/lib/create/date-from-array.js b/node_modules/moment/src/lib/create/date-from-array.js new file mode 100644 index 0000000..3d3498d --- /dev/null +++ b/node_modules/moment/src/lib/create/date-from-array.js @@ -0,0 +1,35 @@ +export function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; +} + +export function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; +} diff --git a/node_modules/moment/src/lib/create/from-anything.js b/node_modules/moment/src/lib/create/from-anything.js new file mode 100644 index 0000000..0c5d772 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-anything.js @@ -0,0 +1,117 @@ +import isArray from '../utils/is-array'; +import isObject from '../utils/is-object'; +import isObjectEmpty from '../utils/is-object-empty'; +import isUndefined from '../utils/is-undefined'; +import isNumber from '../utils/is-number'; +import isDate from '../utils/is-date'; +import map from '../utils/map'; +import { createInvalid } from './valid'; +import { Moment, isMoment } from '../moment/constructor'; +import { getLocale } from '../locale/locales'; +import { hooks } from '../utils/hooks'; +import checkOverflow from './check-overflow'; +import { isValid } from './valid'; + +import { configFromStringAndArray } from './from-string-and-array'; +import { configFromStringAndFormat } from './from-string-and-format'; +import { configFromString } from './from-string'; +import { configFromArray } from './from-array'; +import { configFromObject } from './from-object'; + +function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; +} + +export function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; +} + +function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } +} + +export function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); +} diff --git a/node_modules/moment/src/lib/create/from-array.js b/node_modules/moment/src/lib/create/from-array.js new file mode 100644 index 0000000..610d802 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-array.js @@ -0,0 +1,187 @@ +import { hooks } from '../utils/hooks'; +import { createDate, createUTCDate } from './date-from-array'; +import { daysInYear } from '../units/year'; +import { + weekOfYear, + weeksInYear, + dayOfYearFromWeeks, +} from '../units/week-calendar-utils'; +import { + YEAR, + MONTH, + DATE, + HOUR, + MINUTE, + SECOND, + MILLISECOND, +} from '../units/constants'; +import { createLocal } from './local'; +import defaults from '../utils/defaults'; +import getParsingFlags from './parsing-flags'; + +function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; +} + +// convert an array to a date. +// the array should mirror the parameters below +// note: all values past the year are optional and will default to the lowest possible value. +// [year, month, day , hour, minute, second, millisecond] +export function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = + config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if ( + config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0 + ) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } +} + +function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } +} diff --git a/node_modules/moment/src/lib/create/from-object.js b/node_modules/moment/src/lib/create/from-object.js new file mode 100644 index 0000000..55d15c7 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-object.js @@ -0,0 +1,20 @@ +import { normalizeObjectUnits } from '../units/aliases'; +import { configFromArray } from './from-array'; +import map from '../utils/map'; + +export function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); +} diff --git a/node_modules/moment/src/lib/create/from-string-and-array.js b/node_modules/moment/src/lib/create/from-string-and-array.js new file mode 100644 index 0000000..4e64167 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string-and-array.js @@ -0,0 +1,67 @@ +import { copyConfig } from '../moment/constructor'; +import { configFromStringAndFormat } from './from-string-and-format'; +import getParsingFlags from './parsing-flags'; +import { isValid } from './valid'; +import extend from '../utils/extend'; + +// date from string and array of format strings +export function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); +} diff --git a/node_modules/moment/src/lib/create/from-string-and-format.js b/node_modules/moment/src/lib/create/from-string-and-format.js new file mode 100644 index 0000000..82d60d5 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string-and-format.js @@ -0,0 +1,135 @@ +import { configFromISO, configFromRFC2822 } from './from-string'; +import { configFromArray } from './from-array'; +import { getParseRegexForToken } from '../parse/regex'; +import { addTimeToArrayFromToken } from '../parse/token'; +import { + expandFormat, + formatTokenFunctions, + formattingTokens, +} from '../format/format'; +import checkOverflow from './check-overflow'; +import { YEAR, HOUR } from '../units/constants'; +import { hooks } from '../utils/hooks'; +import getParsingFlags from './parsing-flags'; + +// constant that refers to the ISO standard +hooks.ISO_8601 = function () {}; + +// constant that refers to the RFC 2822 form +hooks.RFC_2822 = function () {}; + +// date from string and format string +export function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); +} + +function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } +} diff --git a/node_modules/moment/src/lib/create/from-string.js b/node_modules/moment/src/lib/create/from-string.js new file mode 100644 index 0000000..58739b9 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string.js @@ -0,0 +1,258 @@ +import { configFromStringAndFormat } from './from-string-and-format'; +import { createUTCDate } from './date-from-array'; +import { hooks } from '../utils/hooks'; +import { deprecate } from '../utils/deprecate'; +import getParsingFlags from './parsing-flags'; +import { defaultLocaleMonthsShort } from '../units/month'; +import { defaultLocaleWeekdaysShort } from '../units/day-of-week'; + +// iso 8601 regex +// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) +var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + +// date from iso format +export function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } +} + +function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr +) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; +} + +function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; +} + +function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); +} + +function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; +} + +function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } +} + +// date and time from ref 2822 format +export function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } +} + +// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict +export function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } +} + +hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } +); diff --git a/node_modules/moment/src/lib/create/local.js b/node_modules/moment/src/lib/create/local.js new file mode 100644 index 0000000..732ea39 --- /dev/null +++ b/node_modules/moment/src/lib/create/local.js @@ -0,0 +1,5 @@ +import { createLocalOrUTC } from './from-anything'; + +export function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); +} diff --git a/node_modules/moment/src/lib/create/parsing-flags.js b/node_modules/moment/src/lib/create/parsing-flags.js new file mode 100644 index 0000000..65a377d --- /dev/null +++ b/node_modules/moment/src/lib/create/parsing-flags.js @@ -0,0 +1,28 @@ +function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; +} + +export default function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; +} diff --git a/node_modules/moment/src/lib/create/utc.js b/node_modules/moment/src/lib/create/utc.js new file mode 100644 index 0000000..6081f07 --- /dev/null +++ b/node_modules/moment/src/lib/create/utc.js @@ -0,0 +1,5 @@ +import { createLocalOrUTC } from './from-anything'; + +export function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); +} diff --git a/node_modules/moment/src/lib/create/valid.js b/node_modules/moment/src/lib/create/valid.js new file mode 100644 index 0000000..e4813c6 --- /dev/null +++ b/node_modules/moment/src/lib/create/valid.js @@ -0,0 +1,51 @@ +import extend from '../utils/extend'; +import { createUTC } from './utc'; +import getParsingFlags from '../create/parsing-flags'; +import some from '../utils/some'; + +export function isValid(m) { + var flags = null, + parsedParts = false, + isNowValid = m._d && !isNaN(m._d.getTime()); + if (isNowValid) { + flags = getParsingFlags(m); + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + isNowValid = + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + return m._isValid; +} + +export function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; +} diff --git a/node_modules/moment/src/lib/duration/abs.js b/node_modules/moment/src/lib/duration/abs.js new file mode 100644 index 0000000..d61ebe6 --- /dev/null +++ b/node_modules/moment/src/lib/duration/abs.js @@ -0,0 +1,18 @@ +var mathAbs = Math.abs; + +export function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; +} diff --git a/node_modules/moment/src/lib/duration/add-subtract.js b/node_modules/moment/src/lib/duration/add-subtract.js new file mode 100644 index 0000000..3755a7d --- /dev/null +++ b/node_modules/moment/src/lib/duration/add-subtract.js @@ -0,0 +1,21 @@ +import { createDuration } from './create'; + +function addSubtract(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); +} + +// supports only 2.0-style add(1, 's') or add(duration) +export function add(input, value) { + return addSubtract(this, input, value, 1); +} + +// supports only 2.0-style subtract(1, 's') or subtract(duration) +export function subtract(input, value) { + return addSubtract(this, input, value, -1); +} diff --git a/node_modules/moment/src/lib/duration/as.js b/node_modules/moment/src/lib/duration/as.js new file mode 100644 index 0000000..a620d5b --- /dev/null +++ b/node_modules/moment/src/lib/duration/as.js @@ -0,0 +1,76 @@ +import { daysToMonths, monthsToDays } from './bubble'; +import { normalizeUnits } from '../units/aliases'; + +export function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } +} + +function makeAs(alias) { + return function () { + return this.as(alias); + }; +} + +var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'), + valueOf = asMilliseconds; + +export { + asMilliseconds, + asSeconds, + asMinutes, + asHours, + asDays, + asWeeks, + asMonths, + asQuarters, + asYears, + valueOf, +}; diff --git a/node_modules/moment/src/lib/duration/bubble.js b/node_modules/moment/src/lib/duration/bubble.js new file mode 100644 index 0000000..c7822e3 --- /dev/null +++ b/node_modules/moment/src/lib/duration/bubble.js @@ -0,0 +1,68 @@ +import absFloor from '../utils/abs-floor'; +import absCeil from '../utils/abs-ceil'; + +export function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; +} + +export function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; +} + +export function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; +} diff --git a/node_modules/moment/src/lib/duration/clone.js b/node_modules/moment/src/lib/duration/clone.js new file mode 100644 index 0000000..8978dfe --- /dev/null +++ b/node_modules/moment/src/lib/duration/clone.js @@ -0,0 +1,5 @@ +import { createDuration } from './create'; + +export function clone() { + return createDuration(this); +} diff --git a/node_modules/moment/src/lib/duration/constructor.js b/node_modules/moment/src/lib/duration/constructor.js new file mode 100644 index 0000000..6033769 --- /dev/null +++ b/node_modules/moment/src/lib/duration/constructor.js @@ -0,0 +1,42 @@ +import { normalizeObjectUnits } from '../units/aliases'; +import { getLocale } from '../locale/locales'; +import isDurationValid from './valid.js'; + +export function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); +} + +export function isDuration(obj) { + return obj instanceof Duration; +} diff --git a/node_modules/moment/src/lib/duration/create.js b/node_modules/moment/src/lib/duration/create.js new file mode 100644 index 0000000..a82c376 --- /dev/null +++ b/node_modules/moment/src/lib/duration/create.js @@ -0,0 +1,133 @@ +import { Duration, isDuration } from './constructor'; +import isNumber from '../utils/is-number'; +import toInt from '../utils/to-int'; +import absRound from '../utils/abs-round'; +import hasOwnProp from '../utils/has-own-prop'; +import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants'; +import { cloneWithOffset } from '../units/offset'; +import { createLocal } from '../create/local'; +import { createInvalid as invalid } from './valid'; + +// ASP.NET json date format regex +var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + +export function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; +} + +createDuration.fn = Duration.prototype; +createDuration.invalid = invalid; + +function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; +} + +function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; +} + +function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; +} diff --git a/node_modules/moment/src/lib/duration/duration.js b/node_modules/moment/src/lib/duration/duration.js new file mode 100644 index 0000000..10f03a7 --- /dev/null +++ b/node_modules/moment/src/lib/duration/duration.js @@ -0,0 +1,16 @@ +// Side effect imports +import './prototype'; + +import { createDuration } from './create'; +import { isDuration } from './constructor'; +import { + getSetRelativeTimeRounding, + getSetRelativeTimeThreshold, +} from './humanize'; + +export { + createDuration, + isDuration, + getSetRelativeTimeRounding, + getSetRelativeTimeThreshold, +}; diff --git a/node_modules/moment/src/lib/duration/get.js b/node_modules/moment/src/lib/duration/get.js new file mode 100644 index 0000000..99533d7 --- /dev/null +++ b/node_modules/moment/src/lib/duration/get.js @@ -0,0 +1,27 @@ +import { normalizeUnits } from '../units/aliases'; +import absFloor from '../utils/abs-floor'; + +export function get(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; +} + +function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; +} + +var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + +export { milliseconds, seconds, minutes, hours, days, months, years }; + +export function weeks() { + return absFloor(this.days() / 7); +} diff --git a/node_modules/moment/src/lib/duration/humanize.js b/node_modules/moment/src/lib/duration/humanize.js new file mode 100644 index 0000000..74079cd --- /dev/null +++ b/node_modules/moment/src/lib/duration/humanize.js @@ -0,0 +1,114 @@ +import { createDuration } from './create'; + +var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + +// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize +function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); +} + +function relativeTime(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); +} + +// This function allows you to set the rounding function for relative time strings +export function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; +} + +// This function allows you to set a threshold for relative time strings +export function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; +} + +export function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); +} diff --git a/node_modules/moment/src/lib/duration/iso-string.js b/node_modules/moment/src/lib/duration/iso-string.js new file mode 100644 index 0000000..5fd2166 --- /dev/null +++ b/node_modules/moment/src/lib/duration/iso-string.js @@ -0,0 +1,68 @@ +import absFloor from '../utils/abs-floor'; +var abs = Math.abs; + +function sign(x) { + return (x > 0) - (x < 0) || +x; +} + +export function toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs(this._milliseconds) / 1000, + days = abs(this._days), + months = abs(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); +} diff --git a/node_modules/moment/src/lib/duration/prototype.js b/node_modules/moment/src/lib/duration/prototype.js new file mode 100644 index 0000000..3f24b4a --- /dev/null +++ b/node_modules/moment/src/lib/duration/prototype.js @@ -0,0 +1,78 @@ +import { Duration } from './constructor'; + +var proto = Duration.prototype; + +import { abs } from './abs'; +import { add, subtract } from './add-subtract'; +import { + as, + asMilliseconds, + asSeconds, + asMinutes, + asHours, + asDays, + asWeeks, + asMonths, + asQuarters, + asYears, + valueOf, +} from './as'; +import { bubble } from './bubble'; +import { clone } from './clone'; +import { + get, + milliseconds, + seconds, + minutes, + hours, + days, + months, + years, + weeks, +} from './get'; +import { humanize } from './humanize'; +import { toISOString } from './iso-string'; +import { lang, locale, localeData } from '../moment/locale'; +import { isValid } from './valid'; + +proto.isValid = isValid; +proto.abs = abs; +proto.add = add; +proto.subtract = subtract; +proto.as = as; +proto.asMilliseconds = asMilliseconds; +proto.asSeconds = asSeconds; +proto.asMinutes = asMinutes; +proto.asHours = asHours; +proto.asDays = asDays; +proto.asWeeks = asWeeks; +proto.asMonths = asMonths; +proto.asQuarters = asQuarters; +proto.asYears = asYears; +proto.valueOf = valueOf; +proto._bubble = bubble; +proto.clone = clone; +proto.get = get; +proto.milliseconds = milliseconds; +proto.seconds = seconds; +proto.minutes = minutes; +proto.hours = hours; +proto.days = days; +proto.weeks = weeks; +proto.months = months; +proto.years = years; +proto.humanize = humanize; +proto.toISOString = toISOString; +proto.toString = toISOString; +proto.toJSON = toISOString; +proto.locale = locale; +proto.localeData = localeData; + +// Deprecations +import { deprecate } from '../utils/deprecate'; + +proto.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString +); +proto.lang = lang; diff --git a/node_modules/moment/src/lib/duration/valid.js b/node_modules/moment/src/lib/duration/valid.js new file mode 100644 index 0000000..88ef7a9 --- /dev/null +++ b/node_modules/moment/src/lib/duration/valid.js @@ -0,0 +1,55 @@ +import hasOwnProp from '../utils/has-own-prop'; +import toInt from '../utils/to-int'; +import indexOf from '../utils/index-of'; +import { createDuration } from './create'; + +var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', +]; + +export default function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; +} + +export function isValid() { + return this._isValid; +} + +export function createInvalid() { + return createDuration(NaN); +} diff --git a/node_modules/moment/src/lib/format/format.js b/node_modules/moment/src/lib/format/format.js new file mode 100644 index 0000000..7abe260 --- /dev/null +++ b/node_modules/moment/src/lib/format/format.js @@ -0,0 +1,104 @@ +import zeroFill from '../utils/zero-fill'; +import isFunction from '../utils/is-function'; + +var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + +export { formattingTokens, formatTokenFunctions }; + +// token: 'M' +// padded: ['MM', 2] +// ordinal: 'Mo' +// callback: function () { this.month() + 1 } +export function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } +} + +function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); +} + +function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; +} + +// format date using native date object +export function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); +} + +export function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; +} diff --git a/node_modules/moment/src/lib/locale/base-config.js b/node_modules/moment/src/lib/locale/base-config.js new file mode 100644 index 0000000..5f8c403 --- /dev/null +++ b/node_modules/moment/src/lib/locale/base-config.js @@ -0,0 +1,41 @@ +import { defaultCalendar } from './calendar'; +import { defaultLongDateFormat } from './formats'; +import { defaultInvalidDate } from './invalid'; +import { defaultOrdinal, defaultDayOfMonthOrdinalParse } from './ordinal'; +import { defaultRelativeTime } from './relative'; + +// months +import { defaultLocaleMonths, defaultLocaleMonthsShort } from '../units/month'; + +// week +import { defaultLocaleWeek } from '../units/week'; + +// weekdays +import { + defaultLocaleWeekdays, + defaultLocaleWeekdaysMin, + defaultLocaleWeekdaysShort, +} from '../units/day-of-week'; + +// meridiem +import { defaultLocaleMeridiemParse } from '../units/hour'; + +export var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, +}; diff --git a/node_modules/moment/src/lib/locale/calendar.js b/node_modules/moment/src/lib/locale/calendar.js new file mode 100644 index 0000000..52c6ba5 --- /dev/null +++ b/node_modules/moment/src/lib/locale/calendar.js @@ -0,0 +1,15 @@ +export var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', +}; + +import isFunction from '../utils/is-function'; + +export function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; +} diff --git a/node_modules/moment/src/lib/locale/constructor.js b/node_modules/moment/src/lib/locale/constructor.js new file mode 100644 index 0000000..c32b73e --- /dev/null +++ b/node_modules/moment/src/lib/locale/constructor.js @@ -0,0 +1,5 @@ +export function Locale(config) { + if (config != null) { + this.set(config); + } +} diff --git a/node_modules/moment/src/lib/locale/en.js b/node_modules/moment/src/lib/locale/en.js new file mode 100644 index 0000000..22578a8 --- /dev/null +++ b/node_modules/moment/src/lib/locale/en.js @@ -0,0 +1,39 @@ +import './prototype'; +import { getSetGlobalLocale } from './locales'; +import toInt from '../utils/to-int'; + +getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/lib/locale/formats.js b/node_modules/moment/src/lib/locale/formats.js new file mode 100644 index 0000000..ea74837 --- /dev/null +++ b/node_modules/moment/src/lib/locale/formats.js @@ -0,0 +1,36 @@ +import { formattingTokens } from '../format/format'; + +export var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', +}; + +export function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; +} diff --git a/node_modules/moment/src/lib/locale/invalid.js b/node_modules/moment/src/lib/locale/invalid.js new file mode 100644 index 0000000..baf1a86 --- /dev/null +++ b/node_modules/moment/src/lib/locale/invalid.js @@ -0,0 +1,5 @@ +export var defaultInvalidDate = 'Invalid date'; + +export function invalidDate() { + return this._invalidDate; +} diff --git a/node_modules/moment/src/lib/locale/lists.js b/node_modules/moment/src/lib/locale/lists.js new file mode 100644 index 0000000..9470d07 --- /dev/null +++ b/node_modules/moment/src/lib/locale/lists.js @@ -0,0 +1,93 @@ +import isNumber from '../utils/is-number'; +import { getLocale } from './locales'; +import { createUTC } from '../create/utc'; + +function get(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); +} + +function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get(format, i, field, 'month'); + } + return out; +} + +// () +// (5) +// (fmt, 5) +// (fmt) +// (true) +// (true, 5) +// (true, fmt, 5) +// (true, fmt) +function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get(format, (i + shift) % 7, field, 'day'); + } + return out; +} + +export function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); +} + +export function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); +} + +export function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); +} + +export function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); +} + +export function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); +} diff --git a/node_modules/moment/src/lib/locale/locale.js b/node_modules/moment/src/lib/locale/locale.js new file mode 100644 index 0000000..522e36d --- /dev/null +++ b/node_modules/moment/src/lib/locale/locale.js @@ -0,0 +1,45 @@ +// Side effect imports +import './prototype'; + +import { + getSetGlobalLocale, + defineLocale, + updateLocale, + getLocale, + listLocales, +} from './locales'; + +import { + listMonths, + listMonthsShort, + listWeekdays, + listWeekdaysShort, + listWeekdaysMin, +} from './lists'; + +export { + getSetGlobalLocale, + defineLocale, + updateLocale, + getLocale, + listLocales, + listMonths, + listMonthsShort, + listWeekdays, + listWeekdaysShort, + listWeekdaysMin, +}; + +import { deprecate } from '../utils/deprecate'; +import { hooks } from '../utils/hooks'; + +hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale +); +hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale +); + +import './en'; diff --git a/node_modules/moment/src/lib/locale/locales.js b/node_modules/moment/src/lib/locale/locales.js new file mode 100644 index 0000000..721594a --- /dev/null +++ b/node_modules/moment/src/lib/locale/locales.js @@ -0,0 +1,249 @@ +import isArray from '../utils/is-array'; +import isUndefined from '../utils/is-undefined'; +import { deprecateSimple } from '../utils/deprecate'; +import { mergeConfigs } from './set'; +import { Locale } from './constructor'; +import keys from '../utils/keys'; + +import { baseConfig } from './base-config'; + +// internal storage for locale config files +var locales = {}, + localeFamilies = {}, + globalLocale; + +function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; +} + +function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; +} + +// pick the locale from the array +// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each +// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root +function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; +} + +function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + // Ensure name is available and function returns boolean + return !!(name && name.match('^[^/\\\\]*$')); +} + +function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; +} + +// This function will load locale and then set the global locale. If +// no arguments are passed in, it will simply return the current global +// locale key. +export function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; +} + +export function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } +} + +export function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; +} + +// returns locale data +export function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); +} + +export function listLocales() { + return keys(locales); +} diff --git a/node_modules/moment/src/lib/locale/ordinal.js b/node_modules/moment/src/lib/locale/ordinal.js new file mode 100644 index 0000000..db44f33 --- /dev/null +++ b/node_modules/moment/src/lib/locale/ordinal.js @@ -0,0 +1,8 @@ +var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + +export { defaultOrdinal, defaultDayOfMonthOrdinalParse }; + +export function ordinal(number) { + return this._ordinal.replace('%d', number); +} diff --git a/node_modules/moment/src/lib/locale/pre-post-format.js b/node_modules/moment/src/lib/locale/pre-post-format.js new file mode 100644 index 0000000..3551dba --- /dev/null +++ b/node_modules/moment/src/lib/locale/pre-post-format.js @@ -0,0 +1,3 @@ +export function preParsePostFormat(string) { + return string; +} diff --git a/node_modules/moment/src/lib/locale/prototype.js b/node_modules/moment/src/lib/locale/prototype.js new file mode 100644 index 0000000..2057f69 --- /dev/null +++ b/node_modules/moment/src/lib/locale/prototype.js @@ -0,0 +1,88 @@ +import { Locale } from './constructor'; + +var proto = Locale.prototype; + +import { calendar } from './calendar'; +import { longDateFormat } from './formats'; +import { invalidDate } from './invalid'; +import { ordinal } from './ordinal'; +import { preParsePostFormat } from './pre-post-format'; +import { relativeTime, pastFuture } from './relative'; +import { set } from './set'; + +proto.calendar = calendar; +proto.longDateFormat = longDateFormat; +proto.invalidDate = invalidDate; +proto.ordinal = ordinal; +proto.preparse = preParsePostFormat; +proto.postformat = preParsePostFormat; +proto.relativeTime = relativeTime; +proto.pastFuture = pastFuture; +proto.set = set; + +// Eras +import { + localeEras, + localeErasParse, + localeErasConvertYear, + erasAbbrRegex, + erasNameRegex, + erasNarrowRegex, +} from '../units/era'; +proto.eras = localeEras; +proto.erasParse = localeErasParse; +proto.erasConvertYear = localeErasConvertYear; +proto.erasAbbrRegex = erasAbbrRegex; +proto.erasNameRegex = erasNameRegex; +proto.erasNarrowRegex = erasNarrowRegex; + +// Month +import { + localeMonthsParse, + localeMonths, + localeMonthsShort, + monthsRegex, + monthsShortRegex, +} from '../units/month'; + +proto.months = localeMonths; +proto.monthsShort = localeMonthsShort; +proto.monthsParse = localeMonthsParse; +proto.monthsRegex = monthsRegex; +proto.monthsShortRegex = monthsShortRegex; + +// Week +import { + localeWeek, + localeFirstDayOfYear, + localeFirstDayOfWeek, +} from '../units/week'; +proto.week = localeWeek; +proto.firstDayOfYear = localeFirstDayOfYear; +proto.firstDayOfWeek = localeFirstDayOfWeek; + +// Day of Week +import { + localeWeekdaysParse, + localeWeekdays, + localeWeekdaysMin, + localeWeekdaysShort, + weekdaysRegex, + weekdaysShortRegex, + weekdaysMinRegex, +} from '../units/day-of-week'; + +proto.weekdays = localeWeekdays; +proto.weekdaysMin = localeWeekdaysMin; +proto.weekdaysShort = localeWeekdaysShort; +proto.weekdaysParse = localeWeekdaysParse; + +proto.weekdaysRegex = weekdaysRegex; +proto.weekdaysShortRegex = weekdaysShortRegex; +proto.weekdaysMinRegex = weekdaysMinRegex; + +// Hours +import { localeIsPM, localeMeridiem } from '../units/hour'; + +proto.isPM = localeIsPM; +proto.meridiem = localeMeridiem; diff --git a/node_modules/moment/src/lib/locale/relative.js b/node_modules/moment/src/lib/locale/relative.js new file mode 100644 index 0000000..8194045 --- /dev/null +++ b/node_modules/moment/src/lib/locale/relative.js @@ -0,0 +1,32 @@ +export var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', +}; + +import isFunction from '../utils/is-function'; + +export function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); +} + +export function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); +} diff --git a/node_modules/moment/src/lib/locale/set.js b/node_modules/moment/src/lib/locale/set.js new file mode 100644 index 0000000..3b069de --- /dev/null +++ b/node_modules/moment/src/lib/locale/set.js @@ -0,0 +1,56 @@ +import isFunction from '../utils/is-function'; +import extend from '../utils/extend'; +import isObject from '../utils/is-object'; +import hasOwnProp from '../utils/has-own-prop'; + +export function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); +} + +export function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; +} diff --git a/node_modules/moment/src/lib/moment/add-subtract.js b/node_modules/moment/src/lib/moment/add-subtract.js new file mode 100644 index 0000000..6e7cf22 --- /dev/null +++ b/node_modules/moment/src/lib/moment/add-subtract.js @@ -0,0 +1,61 @@ +import { get, set } from './get-set'; +import { setMonth } from '../units/month'; +import { createDuration } from '../duration/create'; +import { deprecateSimple } from '../utils/deprecate'; +import { hooks } from '../utils/hooks'; +import absRound from '../utils/abs-round'; + +// TODO: remove 'name' arg after deprecation is removed +function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; +} + +export function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } +} + +export var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); diff --git a/node_modules/moment/src/lib/moment/calendar.js b/node_modules/moment/src/lib/moment/calendar.js new file mode 100644 index 0000000..7b45d4e --- /dev/null +++ b/node_modules/moment/src/lib/moment/calendar.js @@ -0,0 +1,53 @@ +import { createLocal } from '../create/local'; +import { cloneWithOffset } from '../units/offset'; +import isFunction from '../utils/is-function'; +import { hooks } from '../utils/hooks'; +import { isMomentInput } from '../utils/is-moment-input'; +import isCalendarSpec from '../utils/is-calendar-spec'; + +export function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; +} + +export function calendar(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); +} diff --git a/node_modules/moment/src/lib/moment/clone.js b/node_modules/moment/src/lib/moment/clone.js new file mode 100644 index 0000000..de77c12 --- /dev/null +++ b/node_modules/moment/src/lib/moment/clone.js @@ -0,0 +1,5 @@ +import { Moment } from './constructor'; + +export function clone() { + return new Moment(this); +} diff --git a/node_modules/moment/src/lib/moment/compare.js b/node_modules/moment/src/lib/moment/compare.js new file mode 100644 index 0000000..3f66d77 --- /dev/null +++ b/node_modules/moment/src/lib/moment/compare.js @@ -0,0 +1,72 @@ +import { isMoment } from './constructor'; +import { normalizeUnits } from '../units/aliases'; +import { createLocal } from '../create/local'; + +export function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } +} + +export function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } +} + +export function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); +} + +export function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } +} + +export function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); +} + +export function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); +} diff --git a/node_modules/moment/src/lib/moment/constructor.js b/node_modules/moment/src/lib/moment/constructor.js new file mode 100644 index 0000000..b86de8b --- /dev/null +++ b/node_modules/moment/src/lib/moment/constructor.js @@ -0,0 +1,80 @@ +import { hooks } from '../utils/hooks'; +import isUndefined from '../utils/is-undefined'; +import getParsingFlags from '../create/parsing-flags'; + +// Plugins that add properties should also add the key here (null value), +// so we can properly clone ourselves. +var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + +export function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; +} + +// Moment prototype object +export function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } +} + +export function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); +} diff --git a/node_modules/moment/src/lib/moment/creation-data.js b/node_modules/moment/src/lib/moment/creation-data.js new file mode 100644 index 0000000..6643c44 --- /dev/null +++ b/node_modules/moment/src/lib/moment/creation-data.js @@ -0,0 +1,9 @@ +export function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; +} diff --git a/node_modules/moment/src/lib/moment/diff.js b/node_modules/moment/src/lib/moment/diff.js new file mode 100644 index 0000000..5157318 --- /dev/null +++ b/node_modules/moment/src/lib/moment/diff.js @@ -0,0 +1,79 @@ +import absFloor from '../utils/abs-floor'; +import { cloneWithOffset } from '../units/offset'; +import { normalizeUnits } from '../units/aliases'; + +export function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); +} + +function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; +} diff --git a/node_modules/moment/src/lib/moment/format.js b/node_modules/moment/src/lib/moment/format.js new file mode 100644 index 0000000..9a3592a --- /dev/null +++ b/node_modules/moment/src/lib/moment/format.js @@ -0,0 +1,78 @@ +import { formatMoment } from '../format/format'; +import { hooks } from '../utils/hooks'; +import isFunction from '../utils/is-function'; + +hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; +hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + +export function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); +} + +export function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); +} + +/** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ +export function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); +} + +export function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); +} diff --git a/node_modules/moment/src/lib/moment/from.js b/node_modules/moment/src/lib/moment/from.js new file mode 100644 index 0000000..5db72aa --- /dev/null +++ b/node_modules/moment/src/lib/moment/from.js @@ -0,0 +1,20 @@ +import { createDuration } from '../duration/create'; +import { createLocal } from '../create/local'; +import { isMoment } from '../moment/constructor'; + +export function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +export function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); +} diff --git a/node_modules/moment/src/lib/moment/get-set.js b/node_modules/moment/src/lib/moment/get-set.js new file mode 100644 index 0000000..526740f --- /dev/null +++ b/node_modules/moment/src/lib/moment/get-set.js @@ -0,0 +1,117 @@ +import { normalizeUnits, normalizeObjectUnits } from '../units/aliases'; +import { getPrioritizedUnits } from '../units/priorities'; +import { hooks } from '../utils/hooks'; +import isFunction from '../utils/is-function'; +import { isLeapYear } from '../units/year'; + +export function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; +} + +export function get(mom, unit) { + if (!mom.isValid()) { + return NaN; + } + + var d = mom._d, + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds(); + case 'Seconds': + return isUTC ? d.getUTCSeconds() : d.getSeconds(); + case 'Minutes': + return isUTC ? d.getUTCMinutes() : d.getMinutes(); + case 'Hours': + return isUTC ? d.getUTCHours() : d.getHours(); + case 'Date': + return isUTC ? d.getUTCDate() : d.getDate(); + case 'Day': + return isUTC ? d.getUTCDay() : d.getDay(); + case 'Month': + return isUTC ? d.getUTCMonth() : d.getMonth(); + case 'FullYear': + return isUTC ? d.getUTCFullYear() : d.getFullYear(); + default: + return NaN; // Just in case + } +} + +export function set(mom, unit, value) { + var d, isUTC, year, month, date; + + if (!mom.isValid() || isNaN(value)) { + return; + } + + d = mom._d; + isUTC = mom._isUTC; + + switch (unit) { + case 'Milliseconds': + return void (isUTC + ? d.setUTCMilliseconds(value) + : d.setMilliseconds(value)); + case 'Seconds': + return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value)); + case 'Minutes': + return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value)); + case 'Hours': + return void (isUTC ? d.setUTCHours(value) : d.setHours(value)); + case 'Date': + return void (isUTC ? d.setUTCDate(value) : d.setDate(value)); + // case 'Day': // Not real + // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); + // case 'Month': // Not used because we need to pass two variables + // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); + case 'FullYear': + break; // See below ... + default: + return; // Just in case + } + + year = value; + month = mom.month(); + date = mom.date(); + date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date; + void (isUTC + ? d.setUTCFullYear(year, month, date) + : d.setFullYear(year, month, date)); +} + +// MOMENTS + +export function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; +} + +export function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; +} diff --git a/node_modules/moment/src/lib/moment/locale.js b/node_modules/moment/src/lib/moment/locale.js new file mode 100644 index 0000000..3c62113 --- /dev/null +++ b/node_modules/moment/src/lib/moment/locale.js @@ -0,0 +1,34 @@ +import { getLocale } from '../locale/locales'; +import { deprecate } from '../utils/deprecate'; + +// If passed a locale key, it will set the locale for this +// instance. Otherwise, it will return the locale configuration +// variables for this instance. +export function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } +} + +export var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } +); + +export function localeData() { + return this._locale; +} diff --git a/node_modules/moment/src/lib/moment/min-max.js b/node_modules/moment/src/lib/moment/min-max.js new file mode 100644 index 0000000..2ea8955 --- /dev/null +++ b/node_modules/moment/src/lib/moment/min-max.js @@ -0,0 +1,62 @@ +import { deprecate } from '../utils/deprecate'; +import isArray from '../utils/is-array'; +import { createLocal } from '../create/local'; +import { createInvalid } from '../create/valid'; + +export var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + +// Pick a moment m from moments so that m[fn](other) is true for all +// other. This relies on the function fn to be transitive. +// +// moments should either be an array of moment objects or an array, whose +// first element is an array of moment objects. +function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; +} + +// TODO: Use [].sort instead? +export function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); +} + +export function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); +} diff --git a/node_modules/moment/src/lib/moment/moment.js b/node_modules/moment/src/lib/moment/moment.js new file mode 100644 index 0000000..f369d08 --- /dev/null +++ b/node_modules/moment/src/lib/moment/moment.js @@ -0,0 +1,28 @@ +import { createLocal } from '../create/local'; +import { createUTC } from '../create/utc'; +import { createInvalid } from '../create/valid'; +import { isMoment } from './constructor'; +import { min, max } from './min-max'; +import { now } from './now'; +import momentPrototype from './prototype'; + +function createUnix(input) { + return createLocal(input * 1000); +} + +function createInZone() { + return createLocal.apply(null, arguments).parseZone(); +} + +export { + now, + min, + max, + isMoment, + createUTC, + createUnix, + createLocal, + createInZone, + createInvalid, + momentPrototype, +}; diff --git a/node_modules/moment/src/lib/moment/now.js b/node_modules/moment/src/lib/moment/now.js new file mode 100644 index 0000000..9bef276 --- /dev/null +++ b/node_modules/moment/src/lib/moment/now.js @@ -0,0 +1,3 @@ +export var now = function () { + return Date.now ? Date.now() : +new Date(); +}; diff --git a/node_modules/moment/src/lib/moment/prototype.js b/node_modules/moment/src/lib/moment/prototype.js new file mode 100644 index 0000000..b4565ab --- /dev/null +++ b/node_modules/moment/src/lib/moment/prototype.js @@ -0,0 +1,197 @@ +import { Moment } from './constructor'; + +var proto = Moment.prototype; + +import { add, subtract } from './add-subtract'; +import { calendar } from './calendar'; +import { clone } from './clone'; +import { + isBefore, + isBetween, + isSame, + isAfter, + isSameOrAfter, + isSameOrBefore, +} from './compare'; +import { diff } from './diff'; +import { format, toString, toISOString, inspect } from './format'; +import { from, fromNow } from './from'; +import { to, toNow } from './to'; +import { stringGet, stringSet } from './get-set'; +import { locale, localeData, lang } from './locale'; +import { prototypeMin, prototypeMax } from './min-max'; +import { startOf, endOf } from './start-end-of'; +import { valueOf, toDate, toArray, toObject, toJSON, unix } from './to-type'; +import { isValid, parsingFlags, invalidAt } from './valid'; +import { creationData } from './creation-data'; + +proto.add = add; +proto.calendar = calendar; +proto.clone = clone; +proto.diff = diff; +proto.endOf = endOf; +proto.format = format; +proto.from = from; +proto.fromNow = fromNow; +proto.to = to; +proto.toNow = toNow; +proto.get = stringGet; +proto.invalidAt = invalidAt; +proto.isAfter = isAfter; +proto.isBefore = isBefore; +proto.isBetween = isBetween; +proto.isSame = isSame; +proto.isSameOrAfter = isSameOrAfter; +proto.isSameOrBefore = isSameOrBefore; +proto.isValid = isValid; +proto.lang = lang; +proto.locale = locale; +proto.localeData = localeData; +proto.max = prototypeMax; +proto.min = prototypeMin; +proto.parsingFlags = parsingFlags; +proto.set = stringSet; +proto.startOf = startOf; +proto.subtract = subtract; +proto.toArray = toArray; +proto.toObject = toObject; +proto.toDate = toDate; +proto.toISOString = toISOString; +proto.inspect = inspect; +if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; +} +proto.toJSON = toJSON; +proto.toString = toString; +proto.unix = unix; +proto.valueOf = valueOf; +proto.creationData = creationData; + +// Era +import { getEraName, getEraNarrow, getEraAbbr, getEraYear } from '../units/era'; +proto.eraName = getEraName; +proto.eraNarrow = getEraNarrow; +proto.eraAbbr = getEraAbbr; +proto.eraYear = getEraYear; + +// Year +import { getSetYear, getIsLeapYear } from '../units/year'; +proto.year = getSetYear; +proto.isLeapYear = getIsLeapYear; + +// Week Year +import { + getSetWeekYear, + getSetISOWeekYear, + getWeeksInYear, + getWeeksInWeekYear, + getISOWeeksInYear, + getISOWeeksInISOWeekYear, +} from '../units/week-year'; +proto.weekYear = getSetWeekYear; +proto.isoWeekYear = getSetISOWeekYear; + +// Quarter +import { getSetQuarter } from '../units/quarter'; +proto.quarter = proto.quarters = getSetQuarter; + +// Month +import { getSetMonth, getDaysInMonth } from '../units/month'; +proto.month = getSetMonth; +proto.daysInMonth = getDaysInMonth; + +// Week +import { getSetWeek, getSetISOWeek } from '../units/week'; +proto.week = proto.weeks = getSetWeek; +proto.isoWeek = proto.isoWeeks = getSetISOWeek; +proto.weeksInYear = getWeeksInYear; +proto.weeksInWeekYear = getWeeksInWeekYear; +proto.isoWeeksInYear = getISOWeeksInYear; +proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + +// Day +import { getSetDayOfMonth } from '../units/day-of-month'; +import { + getSetDayOfWeek, + getSetISODayOfWeek, + getSetLocaleDayOfWeek, +} from '../units/day-of-week'; +import { getSetDayOfYear } from '../units/day-of-year'; +proto.date = getSetDayOfMonth; +proto.day = proto.days = getSetDayOfWeek; +proto.weekday = getSetLocaleDayOfWeek; +proto.isoWeekday = getSetISODayOfWeek; +proto.dayOfYear = getSetDayOfYear; + +// Hour +import { getSetHour } from '../units/hour'; +proto.hour = proto.hours = getSetHour; + +// Minute +import { getSetMinute } from '../units/minute'; +proto.minute = proto.minutes = getSetMinute; + +// Second +import { getSetSecond } from '../units/second'; +proto.second = proto.seconds = getSetSecond; + +// Millisecond +import { getSetMillisecond } from '../units/millisecond'; +proto.millisecond = proto.milliseconds = getSetMillisecond; + +// Offset +import { + getSetOffset, + setOffsetToUTC, + setOffsetToLocal, + setOffsetToParsedOffset, + hasAlignedHourOffset, + isDaylightSavingTime, + isDaylightSavingTimeShifted, + getSetZone, + isLocal, + isUtcOffset, + isUtc, +} from '../units/offset'; +proto.utcOffset = getSetOffset; +proto.utc = setOffsetToUTC; +proto.local = setOffsetToLocal; +proto.parseZone = setOffsetToParsedOffset; +proto.hasAlignedHourOffset = hasAlignedHourOffset; +proto.isDST = isDaylightSavingTime; +proto.isLocal = isLocal; +proto.isUtcOffset = isUtcOffset; +proto.isUtc = isUtc; +proto.isUTC = isUtc; + +// Timezone +import { getZoneAbbr, getZoneName } from '../units/timezone'; +proto.zoneAbbr = getZoneAbbr; +proto.zoneName = getZoneName; + +// Deprecations +import { deprecate } from '../utils/deprecate'; +proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth +); +proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth +); +proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear +); +proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone +); +proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted +); + +export default proto; diff --git a/node_modules/moment/src/lib/moment/start-end-of.js b/node_modules/moment/src/lib/moment/start-end-of.js new file mode 100644 index 0000000..cbb301f --- /dev/null +++ b/node_modules/moment/src/lib/moment/start-end-of.js @@ -0,0 +1,164 @@ +import { normalizeUnits } from '../units/aliases'; +import { hooks } from '../utils/hooks'; + +var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + +// actual modulo - handles negative numbers (for dates before 1970): +function mod(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; +} + +function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } +} + +function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } +} + +export function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +export function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} diff --git a/node_modules/moment/src/lib/moment/to-type.js b/node_modules/moment/src/lib/moment/to-type.js new file mode 100644 index 0000000..1eef5c8 --- /dev/null +++ b/node_modules/moment/src/lib/moment/to-type.js @@ -0,0 +1,42 @@ +export function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; +} + +export function unix() { + return Math.floor(this.valueOf() / 1000); +} + +export function toDate() { + return new Date(this.valueOf()); +} + +export function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; +} + +export function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; +} + +export function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; +} diff --git a/node_modules/moment/src/lib/moment/to.js b/node_modules/moment/src/lib/moment/to.js new file mode 100644 index 0000000..073a3d1 --- /dev/null +++ b/node_modules/moment/src/lib/moment/to.js @@ -0,0 +1,20 @@ +import { createDuration } from '../duration/create'; +import { createLocal } from '../create/local'; +import { isMoment } from '../moment/constructor'; + +export function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +export function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); +} diff --git a/node_modules/moment/src/lib/moment/valid.js b/node_modules/moment/src/lib/moment/valid.js new file mode 100644 index 0000000..7a7e1b9 --- /dev/null +++ b/node_modules/moment/src/lib/moment/valid.js @@ -0,0 +1,15 @@ +import { isValid as _isValid } from '../create/valid'; +import extend from '../utils/extend'; +import getParsingFlags from '../create/parsing-flags'; + +export function isValid() { + return _isValid(this); +} + +export function parsingFlags() { + return extend({}, getParsingFlags(this)); +} + +export function invalidAt() { + return getParsingFlags(this).overflow; +} diff --git a/node_modules/moment/src/lib/parse/regex.js b/node_modules/moment/src/lib/parse/regex.js new file mode 100644 index 0000000..c2cf4e5 --- /dev/null +++ b/node_modules/moment/src/lib/parse/regex.js @@ -0,0 +1,84 @@ +var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99 + match1to2HasZero = /^([1-9]\d|\d)/, // 0-99 + regexes; + +export { + match1, + match2, + match3, + match4, + match6, + match1to2, + match3to4, + match5to6, + match1to3, + match1to4, + match1to6, + matchUnsigned, + matchSigned, + matchOffset, + matchShortOffset, + matchTimestamp, + matchWord, + match1to2NoLeadingZero, + match1to2HasZero, +}; + +import hasOwnProp from '../utils/has-own-prop'; +import isFunction from '../utils/is-function'; + +regexes = {}; + +export function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; +} + +export function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); +} + +// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript +function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); +} + +export function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); +} diff --git a/node_modules/moment/src/lib/parse/token.js b/node_modules/moment/src/lib/parse/token.js new file mode 100644 index 0000000..ede3578 --- /dev/null +++ b/node_modules/moment/src/lib/parse/token.js @@ -0,0 +1,36 @@ +import hasOwnProp from '../utils/has-own-prop'; +import isNumber from '../utils/is-number'; +import toInt from '../utils/to-int'; + +var tokens = {}; + +export function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } +} + +export function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); +} + +export function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } +} diff --git a/node_modules/moment/src/lib/units/aliases.js b/node_modules/moment/src/lib/units/aliases.js new file mode 100644 index 0000000..469a4de --- /dev/null +++ b/node_modules/moment/src/lib/units/aliases.js @@ -0,0 +1,75 @@ +import hasOwnProp from '../utils/has-own-prop'; + +var aliases = { + D: 'date', + dates: 'date', + date: 'date', + d: 'day', + days: 'day', + day: 'day', + e: 'weekday', + weekdays: 'weekday', + weekday: 'weekday', + E: 'isoWeekday', + isoweekdays: 'isoWeekday', + isoweekday: 'isoWeekday', + DDD: 'dayOfYear', + dayofyears: 'dayOfYear', + dayofyear: 'dayOfYear', + h: 'hour', + hours: 'hour', + hour: 'hour', + ms: 'millisecond', + milliseconds: 'millisecond', + millisecond: 'millisecond', + m: 'minute', + minutes: 'minute', + minute: 'minute', + M: 'month', + months: 'month', + month: 'month', + Q: 'quarter', + quarters: 'quarter', + quarter: 'quarter', + s: 'second', + seconds: 'second', + second: 'second', + gg: 'weekYear', + weekyears: 'weekYear', + weekyear: 'weekYear', + GG: 'isoWeekYear', + isoweekyears: 'isoWeekYear', + isoweekyear: 'isoWeekYear', + w: 'week', + weeks: 'week', + week: 'week', + W: 'isoWeek', + isoweeks: 'isoWeek', + isoweek: 'isoWeek', + y: 'year', + years: 'year', + year: 'year', +}; + +export function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; +} + +export function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; +} diff --git a/node_modules/moment/src/lib/units/constants.js b/node_modules/moment/src/lib/units/constants.js new file mode 100644 index 0000000..da36dbd --- /dev/null +++ b/node_modules/moment/src/lib/units/constants.js @@ -0,0 +1,9 @@ +export var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; diff --git a/node_modules/moment/src/lib/units/day-of-month.js b/node_modules/moment/src/lib/units/day-of-month.js new file mode 100644 index 0000000..41b3193 --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-month.js @@ -0,0 +1,35 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + match1to2NoLeadingZero, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { DATE } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('D', ['DD', 2], 'Do', 'date'); + +// PARSING + +addRegexToken('D', match1to2, match1to2NoLeadingZero); +addRegexToken('DD', match1to2, match2); +addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; +}); + +addParseToken(['D', 'DD'], DATE); +addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); +}); + +// MOMENTS + +export var getSetDayOfMonth = makeGetSet('Date', true); diff --git a/node_modules/moment/src/lib/units/day-of-week.js b/node_modules/moment/src/lib/units/day-of-week.js new file mode 100644 index 0000000..4cdc4d4 --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-week.js @@ -0,0 +1,432 @@ +import { get } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + matchWord, + regexEscape, +} from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; +import isArray from '../utils/is-array'; +import indexOf from '../utils/index-of'; +import hasOwnProp from '../utils/has-own-prop'; +import { createUTC } from '../create/utc'; +import getParsingFlags from '../create/parsing-flags'; + +// FORMATTING + +addFormatToken('d', 0, 'do', 'day'); + +addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); +}); + +addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); +}); + +addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); +}); + +addFormatToken('e', 0, 0, 'weekday'); +addFormatToken('E', 0, 0, 'isoWeekday'); + +// PARSING + +addRegexToken('d', match1to2); +addRegexToken('e', match1to2); +addRegexToken('E', match1to2); +addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); +}); +addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); +}); +addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); +}); + +addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } +}); + +addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); +}); + +// HELPERS + +function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; +} + +function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; +} + +// LOCALES +function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); +} + +var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + +export { + defaultLocaleWeekdays, + defaultLocaleWeekdaysShort, + defaultLocaleWeekdaysMin, +}; + +export function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; +} + +export function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; +} + +export function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; +} + +function handleStrictParse(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +export function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } +} + +// MOMENTS + +export function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + var day = get(this, 'Day'); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } +} + +export function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); +} + +export function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } +} + +export function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } +} + +export function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } +} + +export function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } +} + +function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/day-of-year.js b/node_modules/moment/src/lib/units/day-of-year.js new file mode 100644 index 0000000..4fae6f4 --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-year.js @@ -0,0 +1,28 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, match3, match1to3 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + +// PARSING + +addRegexToken('DDD', match1to3); +addRegexToken('DDDD', match3); +addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); +}); + +// HELPERS + +// MOMENTS + +export function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); +} diff --git a/node_modules/moment/src/lib/units/era.js b/node_modules/moment/src/lib/units/era.js new file mode 100644 index 0000000..bc05622 --- /dev/null +++ b/node_modules/moment/src/lib/units/era.js @@ -0,0 +1,293 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchUnsigned, regexEscape } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { YEAR } from './constants'; +import { hooks as moment } from '../utils/hooks'; +import { getLocale } from '../locale/locales'; +import getParsingFlags from '../create/parsing-flags'; +import hasOwnProp from '../utils/has-own-prop'; + +addFormatToken('N', 0, 0, 'eraAbbr'); +addFormatToken('NN', 0, 0, 'eraAbbr'); +addFormatToken('NNN', 0, 0, 'eraAbbr'); +addFormatToken('NNNN', 0, 0, 'eraName'); +addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + +addFormatToken('y', ['y', 1], 'yo', 'eraYear'); +addFormatToken('y', ['yy', 2], 0, 'eraYear'); +addFormatToken('y', ['yyy', 3], 0, 'eraYear'); +addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + +addRegexToken('N', matchEraAbbr); +addRegexToken('NN', matchEraAbbr); +addRegexToken('NNN', matchEraAbbr); +addRegexToken('NNNN', matchEraName); +addRegexToken('NNNNN', matchEraNarrow); + +addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } +); + +addRegexToken('y', matchUnsigned); +addRegexToken('yy', matchUnsigned); +addRegexToken('yyy', matchUnsigned); +addRegexToken('yyyy', matchUnsigned); +addRegexToken('yo', matchEraYearOrdinal); + +addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); +addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } +}); + +export function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = moment(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = moment(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; +} + +export function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } +} + +export function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return moment(era.since).year(); + } else { + return moment(era.since).year() + (year - era.offset) * dir; + } +} + +export function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; +} + +export function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; +} + +export function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; +} + +export function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - moment(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); +} + +export function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; +} + +export function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; +} + +export function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; +} + +function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); +} + +function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); +} + +function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); +} + +function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; +} + +function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + erasName, + erasAbbr, + erasNarrow, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + erasName = regexEscape(eras[i].name); + erasAbbr = regexEscape(eras[i].abbr); + erasNarrow = regexEscape(eras[i].narrow); + + namePieces.push(erasName); + abbrPieces.push(erasAbbr); + narrowPieces.push(erasNarrow); + mixedPieces.push(erasName); + mixedPieces.push(erasAbbr); + mixedPieces.push(erasNarrow); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/hour.js b/node_modules/moment/src/lib/units/hour.js new file mode 100644 index 0000000..f24815f --- /dev/null +++ b/node_modules/moment/src/lib/units/hour.js @@ -0,0 +1,152 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + match3to4, + match5to6, + match1to2NoLeadingZero, + match1to2HasZero, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { HOUR, MINUTE, SECOND } from './constants'; +import toInt from '../utils/to-int'; +import zeroFill from '../utils/zero-fill'; +import getParsingFlags from '../create/parsing-flags'; + +// FORMATTING + +function hFormat() { + return this.hours() % 12 || 12; +} + +function kFormat() { + return this.hours() || 24; +} + +addFormatToken('H', ['HH', 2], 0, 'hour'); +addFormatToken('h', ['hh', 2], 0, hFormat); +addFormatToken('k', ['kk', 2], 0, kFormat); + +addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); +}); + +addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); +}); + +addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); +} + +meridiem('a', true); +meridiem('A', false); + +// PARSING + +function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; +} + +addRegexToken('a', matchMeridiem); +addRegexToken('A', matchMeridiem); +addRegexToken('H', match1to2, match1to2HasZero); +addRegexToken('h', match1to2, match1to2NoLeadingZero); +addRegexToken('k', match1to2, match1to2NoLeadingZero); +addRegexToken('HH', match1to2, match2); +addRegexToken('hh', match1to2, match2); +addRegexToken('kk', match1to2, match2); + +addRegexToken('hmm', match3to4); +addRegexToken('hmmss', match5to6); +addRegexToken('Hmm', match3to4); +addRegexToken('Hmmss', match5to6); + +addParseToken(['H', 'HH'], HOUR); +addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; +}); +addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; +}); +addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); +}); +addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); +}); + +// LOCALES + +export function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; +} + +export var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + +export function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } +} diff --git a/node_modules/moment/src/lib/units/millisecond.js b/node_modules/moment/src/lib/units/millisecond.js new file mode 100644 index 0000000..4008c9b --- /dev/null +++ b/node_modules/moment/src/lib/units/millisecond.js @@ -0,0 +1,66 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1, + match2, + match3, + match1to3, + matchUnsigned, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MILLISECOND } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); +}); + +addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); +}); + +addFormatToken(0, ['SSS', 3], 0, 'millisecond'); +addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; +}); +addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; +}); +addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; +}); +addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; +}); +addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; +}); +addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; +}); + +// PARSING + +addRegexToken('S', match1to3, match1); +addRegexToken('SS', match1to3, match2); +addRegexToken('SSS', match1to3, match3); + +var token, getSetMillisecond; +for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); +} + +function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); +} + +for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); +} + +getSetMillisecond = makeGetSet('Milliseconds', false); + +export { getSetMillisecond }; diff --git a/node_modules/moment/src/lib/units/minute.js b/node_modules/moment/src/lib/units/minute.js new file mode 100644 index 0000000..72f163f --- /dev/null +++ b/node_modules/moment/src/lib/units/minute.js @@ -0,0 +1,24 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + match1to2HasZero, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MINUTE } from './constants'; + +// FORMATTING + +addFormatToken('m', ['mm', 2], 0, 'minute'); + +// PARSING + +addRegexToken('m', match1to2, match1to2HasZero); +addRegexToken('mm', match1to2, match2); +addParseToken(['m', 'mm'], MINUTE); + +// MOMENTS + +export var getSetMinute = makeGetSet('Minutes', false); diff --git a/node_modules/moment/src/lib/units/month.js b/node_modules/moment/src/lib/units/month.js new file mode 100644 index 0000000..9a326aa --- /dev/null +++ b/node_modules/moment/src/lib/units/month.js @@ -0,0 +1,340 @@ +import { get } from '../moment/get-set'; +import hasOwnProp from '../utils/has-own-prop'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + matchWord, + regexEscape, + match1to2NoLeadingZero, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { hooks } from '../utils/hooks'; +import { MONTH } from './constants'; +import toInt from '../utils/to-int'; +import isArray from '../utils/is-array'; +import isNumber from '../utils/is-number'; +import mod from '../utils/mod'; +import indexOf from '../utils/index-of'; +import { createUTC } from '../create/utc'; +import getParsingFlags from '../create/parsing-flags'; +import { isLeapYear } from '../utils/is-leap-year'; + +export function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); +} + +// FORMATTING + +addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; +}); + +addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); +}); + +addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); +}); + +// PARSING + +addRegexToken('M', match1to2, match1to2NoLeadingZero); +addRegexToken('MM', match1to2, match2); +addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); +}); +addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); +}); + +addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; +}); + +addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } +}); + +// LOCALES + +var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + +export { defaultLocaleMonths, defaultLocaleMonthsShort }; + +export function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; +} + +export function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; +} + +function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +export function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp( + '^' + this.months(mom, '').replace('.', '') + '$', + 'i' + ); + this._shortMonthsParse[i] = new RegExp( + '^' + this.monthsShort(mom, '').replace('.', '') + '$', + 'i' + ); + } + if (!strict && !this._monthsParse[i]) { + regex = + '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'MMMM' && + this._longMonthsParse[i].test(monthName) + ) { + return i; + } else if ( + strict && + format === 'MMM' && + this._shortMonthsParse[i].test(monthName) + ) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } +} + +// MOMENTS + +export function setMonth(mom, value) { + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + var month = value, + date = mom.date(); + + date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month)); + void (mom._isUTC + ? mom._d.setUTCMonth(month, date) + : mom._d.setMonth(month, date)); + return mom; +} + +export function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } +} + +export function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); +} + +export function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } +} + +export function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } +} + +function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + shortP, + longP; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortP = regexEscape(this.monthsShort(mom, '')); + longP = regexEscape(this.months(mom, '')); + shortPieces.push(shortP); + longPieces.push(longP); + mixedPieces.push(longP); + mixedPieces.push(shortP); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/offset.js b/node_modules/moment/src/lib/units/offset.js new file mode 100644 index 0000000..668ebb9 --- /dev/null +++ b/node_modules/moment/src/lib/units/offset.js @@ -0,0 +1,249 @@ +import zeroFill from '../utils/zero-fill'; +import { createDuration } from '../duration/create'; +import { addSubtract } from '../moment/add-subtract'; +import { isMoment, copyConfig } from '../moment/constructor'; +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { createLocal } from '../create/local'; +import { prepareConfig } from '../create/from-anything'; +import { createUTC } from '../create/utc'; +import isDate from '../utils/is-date'; +import toInt from '../utils/to-int'; +import isUndefined from '../utils/is-undefined'; +import compareArrays from '../utils/compare-arrays'; +import { hooks } from '../utils/hooks'; + +// FORMATTING + +function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); +} + +offset('Z', ':'); +offset('ZZ', ''); + +// PARSING + +addRegexToken('Z', matchShortOffset); +addRegexToken('ZZ', matchShortOffset); +addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); +}); + +// HELPERS + +// timezone chunker +// '+10:00' > ['10', '00'] +// '-1530' > ['-15', '30'] +var chunkOffset = /([\+\-]|\d\d)/gi; + +function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; +} + +// Return a moment from input, that is local/utc/zone equivalent to model. +export function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } +} + +function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); +} + +// HOOKS + +// This function will be called whenever a moment is mutated. +// It is intended to keep the offset in sync with the timezone. +hooks.updateOffset = function () {}; + +// MOMENTS + +// keepLocalTime = true means only change the timezone, without +// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> +// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset +// +0200, so we adjust the time as needed, to be valid. +// +// Keeping the time actually adds/subtracts (one hour) +// from the actual represented time. That is why we call updateOffset +// a second time. In case it wants us to change the offset again +// _changeInProgress == true case, then we have to adjust, because +// there is no such time in the given timezone. +export function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } +} + +export function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } +} + +export function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); +} + +export function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; +} + +export function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; +} + +export function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; +} + +export function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); +} + +export function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; +} + +export function isLocal() { + return this.isValid() ? !this._isUTC : false; +} + +export function isUtcOffset() { + return this.isValid() ? this._isUTC : false; +} + +export function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; +} diff --git a/node_modules/moment/src/lib/units/priorities.js b/node_modules/moment/src/lib/units/priorities.js new file mode 100644 index 0000000..b42d2fc --- /dev/null +++ b/node_modules/moment/src/lib/units/priorities.js @@ -0,0 +1,34 @@ +import hasOwnProp from '../utils/has-own-prop'; + +var priorities = { + date: 9, + day: 11, + weekday: 11, + isoWeekday: 11, + dayOfYear: 4, + hour: 13, + millisecond: 16, + minute: 14, + month: 8, + quarter: 7, + second: 15, + weekYear: 1, + isoWeekYear: 1, + week: 5, + isoWeek: 5, + year: 1, +}; + +export function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; +} diff --git a/node_modules/moment/src/lib/units/quarter.js b/node_modules/moment/src/lib/units/quarter.js new file mode 100644 index 0000000..4638609 --- /dev/null +++ b/node_modules/moment/src/lib/units/quarter.js @@ -0,0 +1,24 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, match1 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MONTH } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('Q', 0, 'Qo', 'quarter'); + +// PARSING + +addRegexToken('Q', match1); +addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; +}); + +// MOMENTS + +export function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); +} diff --git a/node_modules/moment/src/lib/units/second.js b/node_modules/moment/src/lib/units/second.js new file mode 100644 index 0000000..8142317 --- /dev/null +++ b/node_modules/moment/src/lib/units/second.js @@ -0,0 +1,24 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + match1to2HasZero, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { SECOND } from './constants'; + +// FORMATTING + +addFormatToken('s', ['ss', 2], 0, 'second'); + +// PARSING + +addRegexToken('s', match1to2, match1to2HasZero); +addRegexToken('ss', match1to2, match2); +addParseToken(['s', 'ss'], SECOND); + +// MOMENTS + +export var getSetSecond = makeGetSet('Seconds', false); diff --git a/node_modules/moment/src/lib/units/timestamp.js b/node_modules/moment/src/lib/units/timestamp.js new file mode 100644 index 0000000..50c6b87 --- /dev/null +++ b/node_modules/moment/src/lib/units/timestamp.js @@ -0,0 +1,20 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('X', 0, 0, 'unix'); +addFormatToken('x', 0, 0, 'valueOf'); + +// PARSING + +addRegexToken('x', matchSigned); +addRegexToken('X', matchTimestamp); +addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); +}); +addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); +}); diff --git a/node_modules/moment/src/lib/units/timezone.js b/node_modules/moment/src/lib/units/timezone.js new file mode 100644 index 0000000..3831fd3 --- /dev/null +++ b/node_modules/moment/src/lib/units/timezone.js @@ -0,0 +1,16 @@ +import { addFormatToken } from '../format/format'; + +// FORMATTING + +addFormatToken('z', 0, 0, 'zoneAbbr'); +addFormatToken('zz', 0, 0, 'zoneName'); + +// MOMENTS + +export function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; +} + +export function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; +} diff --git a/node_modules/moment/src/lib/units/units.js b/node_modules/moment/src/lib/units/units.js new file mode 100644 index 0000000..6f45f1c --- /dev/null +++ b/node_modules/moment/src/lib/units/units.js @@ -0,0 +1,20 @@ +// Side effect imports +import './day-of-month'; +import './day-of-week'; +import './day-of-year'; +import './hour'; +import './millisecond'; +import './minute'; +import './month'; +import './offset'; +import './quarter'; +import './second'; +import './timestamp'; +import './timezone'; +import './week-year'; +import './week'; +import './year'; + +import { normalizeUnits } from './aliases'; + +export { normalizeUnits }; diff --git a/node_modules/moment/src/lib/units/week-calendar-utils.js b/node_modules/moment/src/lib/units/week-calendar-utils.js new file mode 100644 index 0000000..be67184 --- /dev/null +++ b/node_modules/moment/src/lib/units/week-calendar-utils.js @@ -0,0 +1,66 @@ +import { daysInYear } from './year'; +import { createUTCDate } from '../create/date-from-array'; + +// start-of-first-week - start-of-year +function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; +} + +// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday +export function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; +} + +export function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; +} + +export function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; +} diff --git a/node_modules/moment/src/lib/units/week-year.js b/node_modules/moment/src/lib/units/week-year.js new file mode 100644 index 0000000..585362c --- /dev/null +++ b/node_modules/moment/src/lib/units/week-year.js @@ -0,0 +1,128 @@ +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match1to4, + match1to6, + match2, + match4, + match6, + matchSigned, +} from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import { + weekOfYear, + weeksInYear, + dayOfYearFromWeeks, +} from './week-calendar-utils'; +import toInt from '../utils/to-int'; +import { hooks } from '../utils/hooks'; +import { createUTCDate } from '../create/date-from-array'; + +// FORMATTING + +addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; +}); + +addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; +}); + +function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); +} + +addWeekYearFormatToken('gggg', 'weekYear'); +addWeekYearFormatToken('ggggg', 'weekYear'); +addWeekYearFormatToken('GGGG', 'isoWeekYear'); +addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + +// ALIASES + +// PARSING + +addRegexToken('G', matchSigned); +addRegexToken('g', matchSigned); +addRegexToken('GG', match1to2, match2); +addRegexToken('gg', match1to2, match2); +addRegexToken('GGGG', match1to4, match4); +addRegexToken('gggg', match1to4, match4); +addRegexToken('GGGGG', match1to6, match6); +addRegexToken('ggggg', match1to6, match6); + +addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } +); + +addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); +}); + +// MOMENTS + +export function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday() + this.localeData()._week.dow, + this.localeData()._week.dow, + this.localeData()._week.doy + ); +} + +export function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); +} + +export function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); +} + +export function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); +} + +export function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); +} + +export function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); +} + +function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } +} + +function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; +} diff --git a/node_modules/moment/src/lib/units/week.js b/node_modules/moment/src/lib/units/week.js new file mode 100644 index 0000000..2675e56 --- /dev/null +++ b/node_modules/moment/src/lib/units/week.js @@ -0,0 +1,62 @@ +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match2, + match1to2NoLeadingZero, +} from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; +import { weekOfYear } from './week-calendar-utils'; + +// FORMATTING + +addFormatToken('w', ['ww', 2], 'wo', 'week'); +addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + +// PARSING + +addRegexToken('w', match1to2, match1to2NoLeadingZero); +addRegexToken('ww', match1to2, match2); +addRegexToken('W', match1to2, match1to2NoLeadingZero); +addRegexToken('WW', match1to2, match2); + +addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } +); + +// HELPERS + +// LOCALES + +export function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; +} + +export var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. +}; + +export function localeFirstDayOfWeek() { + return this._week.dow; +} + +export function localeFirstDayOfYear() { + return this._week.doy; +} + +// MOMENTS + +export function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +export function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); +} diff --git a/node_modules/moment/src/lib/units/year.js b/node_modules/moment/src/lib/units/year.js new file mode 100644 index 0000000..60c38bf --- /dev/null +++ b/node_modules/moment/src/lib/units/year.js @@ -0,0 +1,75 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { + addRegexToken, + match1to2, + match1to4, + match1to6, + match2, + match4, + match6, + matchSigned, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { isLeapYear } from '../utils/is-leap-year'; +import { hooks } from '../utils/hooks'; +import { YEAR } from './constants'; +import toInt from '../utils/to-int'; +import zeroFill from '../utils/zero-fill'; + +// FORMATTING + +addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; +}); + +addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; +}); + +addFormatToken(0, ['YYYY', 4], 0, 'year'); +addFormatToken(0, ['YYYYY', 5], 0, 'year'); +addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + +// PARSING + +addRegexToken('Y', matchSigned); +addRegexToken('YY', match1to2, match2); +addRegexToken('YYYY', match1to4, match4); +addRegexToken('YYYYY', match1to6, match6); +addRegexToken('YYYYYY', match1to6, match6); + +addParseToken(['YYYYY', 'YYYYYY'], YEAR); +addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); +}); +addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); +}); +addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); +}); + +// HELPERS + +export function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; +} + +export { isLeapYear }; + +// HOOKS + +hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); +}; + +// MOMENTS + +export var getSetYear = makeGetSet('FullYear', true); + +export function getIsLeapYear() { + return isLeapYear(this.year()); +} diff --git a/node_modules/moment/src/lib/utils/abs-ceil.js b/node_modules/moment/src/lib/utils/abs-ceil.js new file mode 100644 index 0000000..e4c7bc2 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-ceil.js @@ -0,0 +1,7 @@ +export default function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } +} diff --git a/node_modules/moment/src/lib/utils/abs-floor.js b/node_modules/moment/src/lib/utils/abs-floor.js new file mode 100644 index 0000000..7c2ed24 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-floor.js @@ -0,0 +1,8 @@ +export default function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } +} diff --git a/node_modules/moment/src/lib/utils/abs-round.js b/node_modules/moment/src/lib/utils/abs-round.js new file mode 100644 index 0000000..175fea2 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-round.js @@ -0,0 +1,7 @@ +export default function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } +} diff --git a/node_modules/moment/src/lib/utils/compare-arrays.js b/node_modules/moment/src/lib/utils/compare-arrays.js new file mode 100644 index 0000000..3e37b53 --- /dev/null +++ b/node_modules/moment/src/lib/utils/compare-arrays.js @@ -0,0 +1,18 @@ +import toInt from './to-int'; + +// compare two arrays, return the number of differences +export default function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; +} diff --git a/node_modules/moment/src/lib/utils/defaults.js b/node_modules/moment/src/lib/utils/defaults.js new file mode 100644 index 0000000..45c5e87 --- /dev/null +++ b/node_modules/moment/src/lib/utils/defaults.js @@ -0,0 +1,10 @@ +// Pick the first defined of two or three arguments. +export default function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; +} diff --git a/node_modules/moment/src/lib/utils/deprecate.js b/node_modules/moment/src/lib/utils/deprecate.js new file mode 100644 index 0000000..6f28236 --- /dev/null +++ b/node_modules/moment/src/lib/utils/deprecate.js @@ -0,0 +1,69 @@ +import extend from './extend'; +import { hooks } from './hooks'; +import hasOwnProp from './has-own-prop'; + +function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } +} + +export function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); +} + +var deprecations = {}; + +export function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } +} + +hooks.suppressDeprecationWarnings = false; +hooks.deprecationHandler = null; diff --git a/node_modules/moment/src/lib/utils/extend.js b/node_modules/moment/src/lib/utils/extend.js new file mode 100644 index 0000000..ba74a0b --- /dev/null +++ b/node_modules/moment/src/lib/utils/extend.js @@ -0,0 +1,19 @@ +import hasOwnProp from './has-own-prop'; + +export default function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; +} diff --git a/node_modules/moment/src/lib/utils/has-own-prop.js b/node_modules/moment/src/lib/utils/has-own-prop.js new file mode 100644 index 0000000..4d2403c --- /dev/null +++ b/node_modules/moment/src/lib/utils/has-own-prop.js @@ -0,0 +1,3 @@ +export default function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); +} diff --git a/node_modules/moment/src/lib/utils/hooks.js b/node_modules/moment/src/lib/utils/hooks.js new file mode 100644 index 0000000..2e86836 --- /dev/null +++ b/node_modules/moment/src/lib/utils/hooks.js @@ -0,0 +1,13 @@ +export { hooks, setHookCallback }; + +var hookCallback; + +function hooks() { + return hookCallback.apply(null, arguments); +} + +// This is done to register the method called with moment() +// without creating circular dependencies. +function setHookCallback(callback) { + hookCallback = callback; +} diff --git a/node_modules/moment/src/lib/utils/index-of.js b/node_modules/moment/src/lib/utils/index-of.js new file mode 100644 index 0000000..92298cf --- /dev/null +++ b/node_modules/moment/src/lib/utils/index-of.js @@ -0,0 +1,18 @@ +var indexOf; + +if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; +} else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; +} + +export { indexOf as default }; diff --git a/node_modules/moment/src/lib/utils/is-array.js b/node_modules/moment/src/lib/utils/is-array.js new file mode 100644 index 0000000..d57c875 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-array.js @@ -0,0 +1,6 @@ +export default function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-calendar-spec.js b/node_modules/moment/src/lib/utils/is-calendar-spec.js new file mode 100644 index 0000000..e8b6d38 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-calendar-spec.js @@ -0,0 +1,25 @@ +import isObjectEmpty from './is-object-empty'; +import hasOwnProp from './has-own-prop'; +import isObject from './is-object'; + +export default function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} diff --git a/node_modules/moment/src/lib/utils/is-date.js b/node_modules/moment/src/lib/utils/is-date.js new file mode 100644 index 0000000..378924b --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-date.js @@ -0,0 +1,6 @@ +export default function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-function.js b/node_modules/moment/src/lib/utils/is-function.js new file mode 100644 index 0000000..4549686 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-function.js @@ -0,0 +1,6 @@ +export default function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-leap-year.js b/node_modules/moment/src/lib/utils/is-leap-year.js new file mode 100644 index 0000000..e399d93 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-leap-year.js @@ -0,0 +1,3 @@ +export function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +} diff --git a/node_modules/moment/src/lib/utils/is-moment-input.js b/node_modules/moment/src/lib/utils/is-moment-input.js new file mode 100644 index 0000000..7543bde --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-moment-input.js @@ -0,0 +1,75 @@ +import isObjectEmpty from './is-object-empty'; +import hasOwnProp from './has-own-prop'; +import isObject from './is-object'; +import isDate from './is-date'; +import isNumber from './is-number'; +import isString from './is-string'; +import { isMoment } from '../moment/constructor'; +import isArray from './is-array'; + +// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined +export function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); +} + +export function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; +} diff --git a/node_modules/moment/src/lib/utils/is-number.js b/node_modules/moment/src/lib/utils/is-number.js new file mode 100644 index 0000000..4a73753 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-number.js @@ -0,0 +1,6 @@ +export default function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-object-empty.js b/node_modules/moment/src/lib/utils/is-object-empty.js new file mode 100644 index 0000000..62f4e69 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-object-empty.js @@ -0,0 +1,15 @@ +import hasOwnProp from './has-own-prop'; + +export default function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } +} diff --git a/node_modules/moment/src/lib/utils/is-object.js b/node_modules/moment/src/lib/utils/is-object.js new file mode 100644 index 0000000..a1b2d42 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-object.js @@ -0,0 +1,8 @@ +export default function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-string.js b/node_modules/moment/src/lib/utils/is-string.js new file mode 100644 index 0000000..34b8dcc --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-string.js @@ -0,0 +1,3 @@ +export default function isString(input) { + return typeof input === 'string' || input instanceof String; +} diff --git a/node_modules/moment/src/lib/utils/is-undefined.js b/node_modules/moment/src/lib/utils/is-undefined.js new file mode 100644 index 0000000..de57a8b --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-undefined.js @@ -0,0 +1,3 @@ +export default function isUndefined(input) { + return input === void 0; +} diff --git a/node_modules/moment/src/lib/utils/keys.js b/node_modules/moment/src/lib/utils/keys.js new file mode 100644 index 0000000..1996e64 --- /dev/null +++ b/node_modules/moment/src/lib/utils/keys.js @@ -0,0 +1,20 @@ +import hasOwnProp from './has-own-prop'; + +var keys; + +if (Object.keys) { + keys = Object.keys; +} else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; +} + +export { keys as default }; diff --git a/node_modules/moment/src/lib/utils/map.js b/node_modules/moment/src/lib/utils/map.js new file mode 100644 index 0000000..14245fe --- /dev/null +++ b/node_modules/moment/src/lib/utils/map.js @@ -0,0 +1,9 @@ +export default function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; +} diff --git a/node_modules/moment/src/lib/utils/mod.js b/node_modules/moment/src/lib/utils/mod.js new file mode 100644 index 0000000..8046cda --- /dev/null +++ b/node_modules/moment/src/lib/utils/mod.js @@ -0,0 +1,3 @@ +export default function mod(n, x) { + return ((n % x) + x) % x; +} diff --git a/node_modules/moment/src/lib/utils/some.js b/node_modules/moment/src/lib/utils/some.js new file mode 100644 index 0000000..7c0dd39 --- /dev/null +++ b/node_modules/moment/src/lib/utils/some.js @@ -0,0 +1,20 @@ +var some; +if (Array.prototype.some) { + some = Array.prototype.some; +} else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; +} + +export { some as default }; diff --git a/node_modules/moment/src/lib/utils/to-int.js b/node_modules/moment/src/lib/utils/to-int.js new file mode 100644 index 0000000..fb48941 --- /dev/null +++ b/node_modules/moment/src/lib/utils/to-int.js @@ -0,0 +1,12 @@ +import absFloor from './abs-floor'; + +export default function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; +} diff --git a/node_modules/moment/src/lib/utils/zero-fill.js b/node_modules/moment/src/lib/utils/zero-fill.js new file mode 100644 index 0000000..e2d2f6e --- /dev/null +++ b/node_modules/moment/src/lib/utils/zero-fill.js @@ -0,0 +1,10 @@ +export default function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); +} diff --git a/node_modules/moment/src/locale/af.js b/node_modules/moment/src/locale/af.js new file mode 100644 index 0000000..374d853 --- /dev/null +++ b/node_modules/moment/src/locale/af.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +import moment from '../moment'; + +export default moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[Môre om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, +}); diff --git a/node_modules/moment/src/locale/ar-dz.js b/node_modules/moment/src/locale/ar-dz.js new file mode 100644 index 0000000..61a41e7 --- /dev/null +++ b/node_modules/moment/src/locale/ar-dz.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +import moment from '../moment'; + +var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'جانفي', + 'فيفري', + 'مارس', + 'أفريل', + 'ماي', + 'جوان', + 'جويلية', + 'أوت', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-kw.js b/node_modules/moment/src/locale/ar-kw.js new file mode 100644 index 0000000..c2b0f87 --- /dev/null +++ b/node_modules/moment/src/locale/ar-kw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +import moment from '../moment'; + +export default moment.defineLocale('ar-kw', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-ly.js b/node_modules/moment/src/locale/ar-ly.js new file mode 100644 index 0000000..88d5ef5 --- /dev/null +++ b/node_modules/moment/src/locale/ar-ly.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +import moment from '../moment'; + +var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-ma.js b/node_modules/moment/src/locale/ar-ma.js new file mode 100644 index 0000000..4010aa0 --- /dev/null +++ b/node_modules/moment/src/locale/ar-ma.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('ar-ma', { + months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-ps.js b/node_modules/moment/src/locale/ar-ps.js new file mode 100644 index 0000000..143da7d --- /dev/null +++ b/node_modules/moment/src/locale/ar-ps.js @@ -0,0 +1,112 @@ +//! moment.js locale configuration +//! locale : Arabic (Palestine) [ar-ps] +//! author : Majd Al-Shihabi : https://github.com/majdal + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + +export default moment.defineLocale('ar-ps', { + months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split( + '_' + ), + monthsShort: + 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .split('') // reversed since negative lookbehind not supported everywhere + .reverse() + .join('') + .replace(/[١٢](?![\u062a\u0643])/g, function (match) { + return numberMap[match]; + }) + .split('') + .reverse() + .join('') + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-sa.js b/node_modules/moment/src/locale/ar-sa.js new file mode 100644 index 0000000..4505ea1 --- /dev/null +++ b/node_modules/moment/src/locale/ar-sa.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }; + +export default moment.defineLocale('ar-sa', { + months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-tn.js b/node_modules/moment/src/locale/ar-tn.js new file mode 100644 index 0000000..0f416ae --- /dev/null +++ b/node_modules/moment/src/locale/ar-tn.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +import moment from '../moment'; + +export default moment.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + monthsShort: + 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split( + '_' + ), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + ss: '%d ثانية', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar.js b/node_modules/moment/src/locale/ar.js new file mode 100644 index 0000000..846e491 --- /dev/null +++ b/node_modules/moment/src/locale/ar.js @@ -0,0 +1,189 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + 'أقل من ثانية', + 'ثانية واحدة', + ['ثانيتان', 'ثانيتين'], + '%d ثوان', + '%d ثانية', + '%d ثانية', + ], + m: [ + 'أقل من دقيقة', + 'دقيقة واحدة', + ['دقيقتان', 'دقيقتين'], + '%d دقائق', + '%d دقيقة', + '%d دقيقة', + ], + h: [ + 'أقل من ساعة', + 'ساعة واحدة', + ['ساعتان', 'ساعتين'], + '%d ساعات', + '%d ساعة', + '%d ساعة', + ], + d: [ + 'أقل من يوم', + 'يوم واحد', + ['يومان', 'يومين'], + '%d أيام', + '%d يومًا', + '%d يوم', + ], + M: [ + 'أقل من شهر', + 'شهر واحد', + ['شهران', 'شهرين'], + '%d أشهر', + '%d شهرا', + '%d شهر', + ], + y: [ + 'أقل من عام', + 'عام واحد', + ['عامان', 'عامين'], + '%d أعوام', + '%d عامًا', + '%d عام', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ]; + +export default moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ص|م/, + isPM: function (input) { + return 'م' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar: { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'بعد %s', + past: 'منذ %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/az.js b/node_modules/moment/src/locale/az.js new file mode 100644 index 0000000..2e06aa1 --- /dev/null +++ b/node_modules/moment/src/locale/az.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +import moment from '../moment'; + +var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı', +}; + +export default moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[gələn həftə] dddd [saat] LT', + lastDay: '[dünən] LT', + lastWeek: '[keçən həftə] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s əvvəl', + s: 'bir neçə saniyə', + ss: '%d saniyə', + m: 'bir dəqiqə', + mm: '%d dəqiqə', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM: function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/be.js b/node_modules/moment/src/locale/be.js new file mode 100644 index 0000000..39e97a2 --- /dev/null +++ b/node_modules/moment/src/locale/be.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + dd: 'дзень_дні_дзён', + MM: 'месяц_месяцы_месяцаў', + yy: 'год_гады_гадоў', + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } else { + return number + ' ' + plural(format[key], +number); + } +} + +export default moment.defineLocale('be', { + months: { + format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split( + '_' + ), + standalone: + 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split( + '_' + ), + }, + monthsShort: + 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays: { + format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split( + '_' + ), + standalone: + 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split( + '_' + ), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/, + }, + weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., HH:mm', + LLLL: 'dddd, D MMMM YYYY г., HH:mm', + }, + calendar: { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'праз %s', + past: '%s таму', + s: 'некалькі секунд', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: 'дзень', + dd: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-і' + : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bg.js b/node_modules/moment/src/locale/bg.js new file mode 100644 index 0000000..e8b060f --- /dev/null +++ b/node_modules/moment/src/locale/bg.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +import moment from '../moment'; + +export default moment.defineLocale('bg', { + months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Днес в] LT', + nextDay: '[Утре в] LT', + nextWeek: 'dddd [в] LT', + lastDay: '[Вчера в] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Миналата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Миналия] dddd [в] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'след %s', + past: 'преди %s', + s: 'няколко секунди', + ss: '%d секунди', + m: 'минута', + mm: '%d минути', + h: 'час', + hh: '%d часа', + d: 'ден', + dd: '%d дена', + w: 'седмица', + ww: '%d седмици', + M: 'месец', + MM: '%d месеца', + y: 'година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bm.js b/node_modules/moment/src/locale/bm.js new file mode 100644 index 0000000..037d018 --- /dev/null +++ b/node_modules/moment/src/locale/bm.js @@ -0,0 +1,52 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment +// Language contact person : Abdoufata Kane : https://github.com/abdoufata + +import moment from '../moment'; + +export default moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), + weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', + }, + calendar: { + sameDay: '[Bi lɛrɛ] LT', + nextDay: '[Sini lɛrɛ] LT', + nextWeek: 'dddd [don lɛrɛ] LT', + lastDay: '[Kunu lɛrɛ] LT', + lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s kɔnɔ', + past: 'a bɛ %s bɔ', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'lɛrɛ kelen', + hh: 'lɛrɛ %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bn-bd.js b/node_modules/moment/src/locale/bn-bd.js new file mode 100644 index 0000000..054f44f --- /dev/null +++ b/node_modules/moment/src/locale/bn-bd.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +import moment from '../moment'; + +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + +export default moment.defineLocale('bn-bd', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'রাত') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ভোর') { + return hour; + } else if (meridiem === 'সকাল') { + return hour; + } else if (meridiem === 'দুপুর') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === 'বিকাল') { + return hour + 12; + } else if (meridiem === 'সন্ধ্যা') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 6) { + return 'ভোর'; + } else if (hour < 12) { + return 'সকাল'; + } else if (hour < 15) { + return 'দুপুর'; + } else if (hour < 18) { + return 'বিকাল'; + } else if (hour < 20) { + return 'সন্ধ্যা'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bn.js b/node_modules/moment/src/locale/bn.js new file mode 100644 index 0000000..14ba050 --- /dev/null +++ b/node_modules/moment/src/locale/bn.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +import moment from '../moment'; + +var symbolMap = { + 1: '১', + 2: '২', + 3: '৩', + 4: '৪', + 5: '৫', + 6: '৬', + 7: '৭', + 8: '৮', + 9: '৯', + 0: '০', + }, + numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0', + }; + +export default moment.defineLocale('bn', { + months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split( + '_' + ), + monthsShort: + 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split( + '_' + ), + weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split( + '_' + ), + weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), + weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'), + longDateFormat: { + LT: 'A h:mm সময়', + LTS: 'A h:mm:ss সময়', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm সময়', + LLLL: 'dddd, D MMMM YYYY, A h:mm সময়', + }, + calendar: { + sameDay: '[আজ] LT', + nextDay: '[আগামীকাল] LT', + nextWeek: 'dddd, LT', + lastDay: '[গতকাল] LT', + lastWeek: '[গত] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s পরে', + past: '%s আগে', + s: 'কয়েক সেকেন্ড', + ss: '%d সেকেন্ড', + m: 'এক মিনিট', + mm: '%d মিনিট', + h: 'এক ঘন্টা', + hh: '%d ঘন্টা', + d: 'এক দিন', + dd: '%d দিন', + M: 'এক মাস', + MM: '%d মাস', + y: 'এক বছর', + yy: '%d বছর', + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'রাত' && hour >= 4) || + (meridiem === 'দুপুর' && hour < 5) || + meridiem === 'বিকাল' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকাল'; + } else { + return 'রাত'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bo.js b/node_modules/moment/src/locale/bo.js new file mode 100644 index 0000000..4fbca2e --- /dev/null +++ b/node_modules/moment/src/locale/bo.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +import moment from '../moment'; + +var symbolMap = { + 1: '༡', + 2: '༢', + 3: '༣', + 4: '༤', + 5: '༥', + 6: '༦', + 7: '༧', + 8: '༨', + 9: '༩', + 0: '༠', + }, + numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0', + }; + +export default moment.defineLocale('bo', { + months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split( + '_' + ), + monthsShort: + 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split( + '_' + ), + monthsShortRegex: /^(ཟླ་\d{1,2})/, + monthsParseExact: true, + weekdays: + 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split( + '_' + ), + weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split( + '_' + ), + weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[དི་རིང] LT', + nextDay: '[སང་ཉིན] LT', + nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay: '[ཁ་སང] LT', + lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ལ་', + past: '%s སྔན་ལ', + s: 'ལམ་སང', + ss: '%d སྐར་ཆ།', + m: 'སྐར་མ་གཅིག', + mm: '%d སྐར་མ', + h: 'ཆུ་ཚོད་གཅིག', + hh: '%d ཆུ་ཚོད', + d: 'ཉིན་གཅིག', + dd: '%d ཉིན་', + M: 'ཟླ་བ་གཅིག', + MM: '%d ཟླ་བ', + y: 'ལོ་གཅིག', + yy: '%d ལོ', + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'མཚན་མོ' && hour >= 4) || + (meridiem === 'ཉིན་གུང' && hour < 5) || + meridiem === 'དགོང་དག' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/br.js b/node_modules/moment/src/locale/br.js new file mode 100644 index 0000000..a7dda49 --- /dev/null +++ b/node_modules/moment/src/locale/br.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +import moment from '../moment'; + +function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); +} +function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } +} +function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; +} +function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; +} +function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); +} + +var monthsParse = [ + /^gen/i, + /^c[ʼ\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[ʼ\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + +export default moment.defineLocale('br', { + months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warcʼhoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Decʼh da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s ʼzo', + s: 'un nebeud segondennoù', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'añ' : 'vet'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, +}); diff --git a/node_modules/moment/src/locale/bs.js b/node_modules/moment/src/locale/bs.js new file mode 100644 index 0000000..5235fe9 --- /dev/null +++ b/node_modules/moment/src/locale/bs.js @@ -0,0 +1,160 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! author : Rasid Redzic : https://github.com/rasidre +//! based on (hr) translation by Bojan Marković + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + switch (key) { + case 'm': + return withoutSuffix + ? 'jedna minuta' + : isFuture + ? 'jednu minutu' + : 'jedne minute'; + } +} + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jedan sat'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('bs', { + months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: processRelativeTime, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ca.js b/node_modules/moment/src/locale/ca.js new file mode 100644 index 0000000..c356211 --- /dev/null +++ b/node_modules/moment/src/locale/ca.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/cs.js b/node_modules/moment/src/locale/cs.js new file mode 100644 index 0000000..bf5dd09 --- /dev/null +++ b/node_modules/moment/src/locale/cs.js @@ -0,0 +1,181 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = { + standalone: + 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split( + '_' + ), + format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split( + '_' + ), + isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/, + }, + monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^úno/i, + /^bře/i, + /^dub/i, + /^kvě/i, + /^(čvn|červen$|června)/i, + /^(čvc|červenec|července)/i, + /^srp/i, + /^zář/i, + /^říj/i, + /^lis/i, + /^pro/i, + ], + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsRegex = + /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } +} + +export default moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched. + // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'před %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/cv.js b/node_modules/moment/src/locale/cv.js new file mode 100644 index 0000000..06c196a --- /dev/null +++ b/node_modules/moment/src/locale/cv.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +import moment from '../moment'; + +export default moment.defineLocale('cv', { + months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split( + '_' + ), + monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays: + 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split( + '_' + ), + weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + }, + calendar: { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /сехет$/i.exec(output) + ? 'рен' + : /ҫул$/i.exec(output) + ? 'тан' + : 'ран'; + return output + affix; + }, + past: '%s каялла', + s: 'пӗр-ик ҫеккунт', + ss: '%d ҫеккунт', + m: 'пӗр минут', + mm: '%d минут', + h: 'пӗр сехет', + hh: '%d сехет', + d: 'пӗр кун', + dd: '%d кун', + M: 'пӗр уйӑх', + MM: '%d уйӑх', + y: 'пӗр ҫул', + yy: '%d ҫул', + }, + dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, + ordinal: '%d-мӗш', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/cy.js b/node_modules/moment/src/locale/cy.js new file mode 100644 index 0000000..e12344a --- /dev/null +++ b/node_modules/moment/src/locale/cy.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +import moment from '../moment'; + +export default moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/da.js b/node_modules/moment/src/locale/da.js new file mode 100644 index 0000000..d1fc181 --- /dev/null +++ b/node_modules/moment/src/locale/da.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +import moment from '../moment'; + +export default moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'på dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'få sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en måned', + MM: '%d måneder', + y: 'et år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/de-at.js b/node_modules/moment/src/locale/de-at.js new file mode 100644 index 0000000..8318fec --- /dev/null +++ b/node_modules/moment/src/locale/de-at.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-at', { + months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/de-ch.js b/node_modules/moment/src/locale/de-ch.js new file mode 100644 index 0000000..4e67507 --- /dev/null +++ b/node_modules/moment/src/locale/de-ch.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-ch', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/de.js b/node_modules/moment/src/locale/de.js new file mode 100644 index 0000000..cb9c8d5 --- /dev/null +++ b/node_modules/moment/src/locale/de.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de', { + months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]', + }, + relativeTime: { + future: 'in %s', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/dv.js b/node_modules/moment/src/locale/dv.js new file mode 100644 index 0000000..26520d4 --- /dev/null +++ b/node_modules/moment/src/locale/dv.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +import moment from '../moment'; + +var months = [ + 'ޖެނުއަރީ', + 'ފެބްރުއަރީ', + 'މާރިޗު', + 'އޭޕްރީލު', + 'މޭ', + 'ޖޫން', + 'ޖުލައި', + 'އޯގަސްޓު', + 'ސެޕްޓެމްބަރު', + 'އޮކްޓޯބަރު', + 'ނޮވެމްބަރު', + 'ޑިސެމްބަރު', + ], + weekdays = [ + 'އާދިއްތަ', + 'ހޯމަ', + 'އަންގާރަ', + 'ބުދަ', + 'ބުރާސްފަތި', + 'ހުކުރު', + 'ހޮނިހިރު', + ]; + +export default moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /މކ|މފ/, + isPM: function (input) { + return 'މފ' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'މކ'; + } else { + return 'މފ'; + } + }, + calendar: { + sameDay: '[މިއަދު] LT', + nextDay: '[މާދަމާ] LT', + nextWeek: 'dddd LT', + lastDay: '[އިއްޔެ] LT', + lastWeek: '[ފާއިތުވި] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ތެރޭގައި %s', + past: 'ކުރިން %s', + s: 'ސިކުންތުކޮޅެއް', + ss: 'd% ސިކުންތު', + m: 'މިނިޓެއް', + mm: 'މިނިޓު %d', + h: 'ގަޑިއިރެއް', + hh: 'ގަޑިއިރު %d', + d: 'ދުވަހެއް', + dd: 'ދުވަސް %d', + M: 'މަހެއް', + MM: 'މަސް %d', + y: 'އަހަރެއް', + yy: 'އަހަރު %d', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/el.js b/node_modules/moment/src/locale/el.js new file mode 100644 index 0000000..8a596f1 --- /dev/null +++ b/node_modules/moment/src/locale/el.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +import moment from '../moment'; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +export default moment.defineLocale('el', { + monthsNominativeEl: + 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split( + '_' + ), + monthsGenitiveEl: + 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split( + '_' + ), + weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === 'μ'; + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[Σήμερα {}] LT', + nextDay: '[Αύριο {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[Χθες {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις'); + }, + relativeTime: { + future: 'σε %s', + past: '%s πριν', + s: 'λίγα δευτερόλεπτα', + ss: '%d δευτερόλεπτα', + m: 'ένα λεπτό', + mm: '%d λεπτά', + h: 'μία ώρα', + hh: '%d ώρες', + d: 'μία μέρα', + dd: '%d μέρες', + M: 'ένας μήνας', + MM: '%d μήνες', + y: 'ένας χρόνος', + yy: '%d χρόνια', + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: '%dη', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-au.js b/node_modules/moment/src/locale/en-au.js new file mode 100644 index 0000000..301e9db --- /dev/null +++ b/node_modules/moment/src/locale/en-au.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +import moment from '../moment'; + +export default moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-ca.js b/node_modules/moment/src/locale/en-ca.js new file mode 100644 index 0000000..8099e04 --- /dev/null +++ b/node_modules/moment/src/locale/en-ca.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/locale/en-gb.js b/node_modules/moment/src/locale/en-gb.js new file mode 100644 index 0000000..acd544a --- /dev/null +++ b/node_modules/moment/src/locale/en-gb.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-ie.js b/node_modules/moment/src/locale/en-ie.js new file mode 100644 index 0000000..8e79f63 --- /dev/null +++ b/node_modules/moment/src/locale/en-ie.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +import moment from '../moment'; + +export default moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-il.js b/node_modules/moment/src/locale/en-il.js new file mode 100644 index 0000000..94908df --- /dev/null +++ b/node_modules/moment/src/locale/en-il.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/locale/en-in.js b/node_modules/moment/src/locale/en-in.js new file mode 100644 index 0000000..f685176 --- /dev/null +++ b/node_modules/moment/src/locale/en-in.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +import moment from '../moment'; + +export default moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-nz.js b/node_modules/moment/src/locale/en-nz.js new file mode 100644 index 0000000..66c9bfc --- /dev/null +++ b/node_modules/moment/src/locale/en-nz.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +import moment from '../moment'; + +export default moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-sg.js b/node_modules/moment/src/locale/en-sg.js new file mode 100644 index 0000000..b36bda4 --- /dev/null +++ b/node_modules/moment/src/locale/en-sg.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +import moment from '../moment'; + +export default moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/eo.js b/node_modules/moment/src/locale/eo.js new file mode 100644 index 0000000..38d494a --- /dev/null +++ b/node_modules/moment/src/locale/eo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +import moment from '../moment'; + +export default moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'), + weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodiaŭ je] LT', + nextDay: '[Morgaŭ je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hieraŭ je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'antaŭ %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/es-do.js b/node_modules/moment/src/locale/es-do.js new file mode 100644 index 0000000..8c3ccfd --- /dev/null +++ b/node_modules/moment/src/locale/es-do.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/es-mx.js b/node_modules/moment/src/locale/es-mx.js new file mode 100644 index 0000000..43dd7cc --- /dev/null +++ b/node_modules/moment/src/locale/es-mx.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', +}); diff --git a/node_modules/moment/src/locale/es-us.js b/node_modules/moment/src/locale/es-us.js new file mode 100644 index 0000000..bac8cd8 --- /dev/null +++ b/node_modules/moment/src/locale/es-us.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/es.js b/node_modules/moment/src/locale/es.js new file mode 100644 index 0000000..a3428ad --- /dev/null +++ b/node_modules/moment/src/locale/es.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napurí : https://github.com/julionc + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un año', + yy: '%d años', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inválida', +}); diff --git a/node_modules/moment/src/locale/et.js b/node_modules/moment/src/locale/et.js new file mode 100644 index 0000000..5da4ec4 --- /dev/null +++ b/node_modules/moment/src/locale/et.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['ühe minuti', 'üks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['ühe tunni', 'tund aega', 'üks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['ühe päeva', 'üks päev'], + M: ['kuu aja', 'kuu aega', 'üks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['ühe aasta', 'aasta', 'üks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('et', { + months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Täna,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[Järgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s pärast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d päeva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/eu.js b/node_modules/moment/src/locale/eu.js new file mode 100644 index 0000000..261a17b --- /dev/null +++ b/node_modules/moment/src/locale/eu.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +import moment from '../moment'; + +export default moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fa.js b/node_modules/moment/src/locale/fa.js new file mode 100644 index 0000000..52ffb72 --- /dev/null +++ b/node_modules/moment/src/locale/fa.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +import moment from '../moment'; + +var symbolMap = { + 1: '۱', + 2: '۲', + 3: '۳', + 4: '۴', + 5: '۵', + 6: '۶', + 7: '۷', + 8: '۸', + 9: '۹', + 0: '۰', + }, + numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0', + }; + +export default moment.defineLocale('fa', { + months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + monthsShort: + 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split( + '_' + ), + weekdays: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysShort: + 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split( + '_' + ), + weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar: { + sameDay: '[امروز ساعت] LT', + nextDay: '[فردا ساعت] LT', + nextWeek: 'dddd [ساعت] LT', + lastDay: '[دیروز ساعت] LT', + lastWeek: 'dddd [پیش] [ساعت] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'در %s', + past: '%s پیش', + s: 'چند ثانیه', + ss: '%d ثانیه', + m: 'یک دقیقه', + mm: '%d دقیقه', + h: 'یک ساعت', + hh: '%d ساعت', + d: 'یک روز', + dd: '%d روز', + M: 'یک ماه', + MM: '%d ماه', + y: 'یک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string + .replace(/[۰-۹]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: '%dم', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fi.js b/node_modules/moment/src/locale/fi.js new file mode 100644 index 0000000..2e20bff --- /dev/null +++ b/node_modules/moment/src/locale/fi.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +import moment from '../moment'; + +var numbersPast = + 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'neljän', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; +function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; +} +function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; +} + +export default moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[ta] YYYY', + LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[tänään] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s päästä', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fil.js b/node_modules/moment/src/locale/fil.js new file mode 100644 index 0000000..e0447aa --- /dev/null +++ b/node_modules/moment/src/locale/fil.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +import moment from '../moment'; + +export default moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fo.js b/node_modules/moment/src/locale/fo.js new file mode 100644 index 0000000..c8fd0bc --- /dev/null +++ b/node_modules/moment/src/locale/fo.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +import moment from '../moment'; + +export default moment.defineLocale('fo', { + months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[Í dag kl.] LT', + nextDay: '[Í morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[Í gjár kl.] LT', + lastWeek: '[síðstu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s síðani', + s: 'fá sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein tími', + hh: '%d tímar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein mánaður', + MM: '%d mánaðir', + y: 'eitt ár', + yy: '%d ár', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fr-ca.js b/node_modules/moment/src/locale/fr-ca.js new file mode 100644 index 0000000..6187291 --- /dev/null +++ b/node_modules/moment/src/locale/fr-ca.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('fr-ca', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, +}); diff --git a/node_modules/moment/src/locale/fr-ch.js b/node_modules/moment/src/locale/fr-ch.js new file mode 100644 index 0000000..2cc90d8 --- /dev/null +++ b/node_modules/moment/src/locale/fr-ch.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +import moment from '../moment'; + +export default moment.defineLocale('fr-ch', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fr.js b/node_modules/moment/src/locale/fr.js new file mode 100644 index 0000000..a3afb4b --- /dev/null +++ b/node_modules/moment/src/locale/fr.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +import moment from '../moment'; + +var monthsStrictRegex = + /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsRegex = + /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsParse = [ + /^janv/i, + /^févr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^août/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^déc/i, + ]; + +export default moment.defineLocale('fr', { + months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( + '_' + ), + monthsShort: + 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd’hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fy.js b/node_modules/moment/src/locale/fy.js new file mode 100644 index 0000000..4844587 --- /dev/null +++ b/node_modules/moment/src/locale/fy.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + +export default moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien minút', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ga.js b/node_modules/moment/src/locale/ga.js new file mode 100644 index 0000000..7f36fb6 --- /dev/null +++ b/node_modules/moment/src/locale/ga.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : André Silva : https://github.com/askpt + +import moment from '../moment'; + +var months = [ + 'Eanáir', + 'Feabhra', + 'Márta', + 'Aibreán', + 'Bealtaine', + 'Meitheamh', + 'Iúil', + 'Lúnasa', + 'Meán Fómhair', + 'Deireadh Fómhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'Márt', + 'Aib', + 'Beal', + 'Meith', + 'Iúil', + 'Lún', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'Dé Domhnaigh', + 'Dé Luain', + 'Dé Máirt', + 'Dé Céadaoin', + 'Déardaoin', + 'Dé hAoine', + 'Dé Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; + +export default moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Amárach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inné ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s ó shin', + s: 'cúpla soicind', + ss: '%d soicind', + m: 'nóiméad', + mm: '%d nóiméad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'lá', + dd: '%d lá', + M: 'mí', + MM: '%d míonna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/gd.js b/node_modules/moment/src/locale/gd.js new file mode 100644 index 0000000..81f735b --- /dev/null +++ b/node_modules/moment/src/locale/gd.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +import moment from '../moment'; + +var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am Màrt', + 'An Giblean', + 'An Cèitean', + 'An t-Ògmhios', + 'An t-Iuchar', + 'An Lùnastal', + 'An t-Sultain', + 'An Dàmhair', + 'An t-Samhain', + 'An Dùbhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'Màrt', + 'Gibl', + 'Cèit', + 'Ògmh', + 'Iuch', + 'Lùn', + 'Sult', + 'Dàmh', + 'Samh', + 'Dùbh', + ], + weekdays = [ + 'Didòmhnaich', + 'Diluain', + 'Dimàirt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; + +export default moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-màireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-dè aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'mìos', + MM: '%d mìosan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/gl.js b/node_modules/moment/src/locale/gl.js new file mode 100644 index 0000000..980591c --- /dev/null +++ b/node_modules/moment/src/locale/gl.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), + weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), + weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextDay: function () { + return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un día', + dd: '%d días', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/gom-deva.js b/node_modules/moment/src/locale/gom-deva.js new file mode 100644 index 0000000..294e358 --- /dev/null +++ b/node_modules/moment/src/locale/gom-deva.js @@ -0,0 +1,126 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'], + ss: [number + ' सॅकंडांनी', number + ' सॅकंड'], + m: ['एका मिणटान', 'एक मिनूट'], + mm: [number + ' मिणटांनी', number + ' मिणटां'], + h: ['एका वरान', 'एक वर'], + hh: [number + ' वरांनी', number + ' वरां'], + d: ['एका दिसान', 'एक दीस'], + dd: [number + ' दिसांनी', number + ' दीस'], + M: ['एका म्हयन्यान', 'एक म्हयनो'], + MM: [number + ' म्हयन्यानी', number + ' म्हयने'], + y: ['एका वर्सान', 'एक वर्स'], + yy: [number + ' वर्सांनी', number + ' वर्सां'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-deva', { + months: { + standalone: + 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'), + weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'), + weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [वाजतां]', + LTS: 'A h:mm:ss [वाजतां]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [वाजतां]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]', + llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]', + }, + calendar: { + sameDay: '[आयज] LT', + nextDay: '[फाल्यां] LT', + nextWeek: '[फुडलो] dddd[,] LT', + lastDay: '[काल] LT', + lastWeek: '[फाटलो] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s आदीं', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'वेर' only applies to day of the month + case 'D': + return number + 'वेर'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळीं') { + return hour; + } else if (meridiem === 'दनपारां') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'सांजे') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'राती'; + } else if (hour < 12) { + return 'सकाळीं'; + } else if (hour < 16) { + return 'दनपारां'; + } else if (hour < 20) { + return 'सांजे'; + } else { + return 'राती'; + } + }, +}); diff --git a/node_modules/moment/src/locale/gom-latn.js b/node_modules/moment/src/locale/gom-latn.js new file mode 100644 index 0000000..d237161 --- /dev/null +++ b/node_modules/moment/src/locale/gom-latn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, +}); diff --git a/node_modules/moment/src/locale/gu.js b/node_modules/moment/src/locale/gu.js new file mode 100644 index 0000000..d432d2c --- /dev/null +++ b/node_modules/moment/src/locale/gu.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +import moment from '../moment'; + +var symbolMap = { + 1: '૧', + 2: '૨', + 3: '૩', + 4: '૪', + 5: '૫', + 6: '૬', + 7: '૭', + 8: '૮', + 9: '૯', + 0: '૦', + }, + numberMap = { + '૧': '1', + '૨': '2', + '૩': '3', + '૪': '4', + '૫': '5', + '૬': '6', + '૭': '7', + '૮': '8', + '૯': '9', + '૦': '0', + }; + +export default moment.defineLocale('gu', { + months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split( + '_' + ), + monthsShort: + 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split( + '_' + ), + weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'), + weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'), + longDateFormat: { + LT: 'A h:mm વાગ્યે', + LTS: 'A h:mm:ss વાગ્યે', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm વાગ્યે', + LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે', + }, + calendar: { + sameDay: '[આજ] LT', + nextDay: '[કાલે] LT', + nextWeek: 'dddd, LT', + lastDay: '[ગઇકાલે] LT', + lastWeek: '[પાછલા] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s મા', + past: '%s પહેલા', + s: 'અમુક પળો', + ss: '%d સેકંડ', + m: 'એક મિનિટ', + mm: '%d મિનિટ', + h: 'એક કલાક', + hh: '%d કલાક', + d: 'એક દિવસ', + dd: '%d દિવસ', + M: 'એક મહિનો', + MM: '%d મહિનો', + y: 'એક વર્ષ', + yy: '%d વર્ષ', + }, + preparse: function (string) { + return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /રાત|બપોર|સવાર|સાંજ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'રાત') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'સવાર') { + return hour; + } else if (meridiem === 'બપોર') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'સાંજ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'રાત'; + } else if (hour < 10) { + return 'સવાર'; + } else if (hour < 17) { + return 'બપોર'; + } else if (hour < 20) { + return 'સાંજ'; + } else { + return 'રાત'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/he.js b/node_modules/moment/src/locale/he.js new file mode 100644 index 0000000..08add2c --- /dev/null +++ b/node_modules/moment/src/locale/he.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +import moment from '../moment'; + +export default moment.defineLocale('he', { + months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split( + '_' + ), + monthsShort: + 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [ב]MMMM YYYY', + LLL: 'D [ב]MMMM YYYY HH:mm', + LLLL: 'dddd, D [ב]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[היום ב־]LT', + nextDay: '[מחר ב־]LT', + nextWeek: 'dddd [בשעה] LT', + lastDay: '[אתמול ב־]LT', + lastWeek: '[ביום] dddd [האחרון בשעה] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'בעוד %s', + past: 'לפני %s', + s: 'מספר שניות', + ss: '%d שניות', + m: 'דקה', + mm: '%d דקות', + h: 'שעה', + hh: function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d: 'יום', + dd: function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M: 'חודש', + MM: function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y: 'שנה', + yy: function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + }, + }, + meridiemParse: + /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function (input) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return 'לפנות בוקר'; + } else if (hour < 10) { + return 'בבוקר'; + } else if (hour < 12) { + return isLower ? 'לפנה"צ' : 'לפני הצהריים'; + } else if (hour < 18) { + return isLower ? 'אחה"צ' : 'אחרי הצהריים'; + } else { + return 'בערב'; + } + }, +}); diff --git a/node_modules/moment/src/locale/hi.js b/node_modules/moment/src/locale/hi.js new file mode 100644 index 0000000..2e3a973 --- /dev/null +++ b/node_modules/moment/src/locale/hi.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }, + monthsParse = [ + /^जन/i, + /^फ़र|फर/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सितं|सित/i, + /^अक्टू/i, + /^नव|नवं/i, + /^दिसं|दिस/i, + ], + shortMonthsParse = [ + /^जन/i, + /^फ़र/i, + /^मार्च/i, + /^अप्रै/i, + /^मई/i, + /^जून/i, + /^जुल/i, + /^अग/i, + /^सित/i, + /^अक्टू/i, + /^नव/i, + /^दिस/i, + ]; + +export default moment.defineLocale('hi', { + months: { + format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split( + '_' + ), + standalone: + 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split( + '_' + ), + }, + monthsShort: + 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm बजे', + LTS: 'A h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, A h:mm बजे', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsShortRegex: + /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, + + monthsStrictRegex: + /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, + + monthsShortStrictRegex: + /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, + + calendar: { + sameDay: '[आज] LT', + nextDay: '[कल] LT', + nextWeek: 'dddd, LT', + lastDay: '[कल] LT', + lastWeek: '[पिछले] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s में', + past: '%s पहले', + s: 'कुछ ही क्षण', + ss: '%d सेकंड', + m: 'एक मिनट', + mm: '%d मिनट', + h: 'एक घंटा', + hh: '%d घंटे', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महीने', + MM: '%d महीने', + y: 'एक वर्ष', + yy: '%d वर्ष', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/hr.js b/node_modules/moment/src/locale/hr.js new file mode 100644 index 0000000..48c1e9e --- /dev/null +++ b/node_modules/moment/src/locale/hr.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Marković : https://github.com/bmarkovic + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('hr', { + months: { + format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[jučer u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prošlu] [nedjelju] [u] LT'; + case 3: + return '[prošlu] [srijedu] [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/hu.js b/node_modules/moment/src/locale/hu.js new file mode 100644 index 0000000..f2f5981 --- /dev/null +++ b/node_modules/moment/src/locale/hu.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +import moment from '../moment'; + +var weekEndings = + 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); +function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'néhány másodperc' + : 'néhány másodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' másodperc' + : ' másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; +} +function week(isFuture) { + return ( + (isFuture ? '' : '[múlt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); +} + +export default moment.defineLocale('hu', { + months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s múlva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/hy-am.js b/node_modules/moment/src/locale/hy-am.js new file mode 100644 index 0000000..283cfbd --- /dev/null +++ b/node_modules/moment/src/locale/hy-am.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +import moment from '../moment'; + +export default moment.defineLocale('hy-am', { + months: { + format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split( + '_' + ), + standalone: + 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split( + '_' + ), + }, + monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'), + weekdays: + 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split( + '_' + ), + weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY թ.', + LLL: 'D MMMM YYYY թ., HH:mm', + LLLL: 'dddd, D MMMM YYYY թ., HH:mm', + }, + calendar: { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s հետո', + past: '%s առաջ', + s: 'մի քանի վայրկյան', + ss: '%d վայրկյան', + m: 'րոպե', + mm: '%d րոպե', + h: 'ժամ', + hh: '%d ժամ', + d: 'օր', + dd: '%d օր', + M: 'ամիս', + MM: '%d ամիս', + y: 'տարի', + yy: '%d տարի', + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/id.js b/node_modules/moment/src/locale/id.js new file mode 100644 index 0000000..3260e1c --- /dev/null +++ b/node_modules/moment/src/locale/id.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +import moment from '../moment'; + +export default moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/is.js b/node_modules/moment/src/locale/is.js new file mode 100644 index 0000000..d2c6f47 --- /dev/null +++ b/node_modules/moment/src/locale/is.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik + +import moment from '../moment'; + +function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sekúndur' + : 'nokkrum sekúndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') + ); + } + return result + 'sekúnda'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum') + ); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } +} + +export default moment.defineLocale('is', { + months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays: + 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[í dag kl.] LT', + nextDay: '[á morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[í gær kl.] LT', + lastWeek: '[síðasta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s síðan', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/it-ch.js b/node_modules/moment/src/locale/it-ch.js new file mode 100644 index 0000000..3437453 --- /dev/null +++ b/node_modules/moment/src/locale/it-ch.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +import moment from '../moment'; + +export default moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/it.js b/node_modules/moment/src/locale/it.js new file mode 100644 index 0000000..0aa5721 --- /dev/null +++ b/node_modules/moment/src/locale/it.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +import moment from '../moment'; + +export default moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ja.js b/node_modules/moment/src/locale/ja.js new file mode 100644 index 0000000..abe921a --- /dev/null +++ b/node_modules/moment/src/locale/ja.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +import moment from '../moment'; + +export default moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '令和', + narrow: '㋿', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '平成', + narrow: '㍻', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '昭和', + narrow: '㍼', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '大正', + narrow: '㍽', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '明治', + narrow: '㍾', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '西暦', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '紀元前', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '元' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort: '日_月_火_水_木_金_土'.split('_'), + weekdaysMin: '日_月_火_水_木_金_土'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日(ddd) HH:mm', + }, + meridiemParse: /午前|午後/i, + isPM: function (input) { + return input === '午後'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar: { + sameDay: '[今日] LT', + nextDay: '[明日] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[来週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[昨日] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[先週]dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '元年' : number + '年'; + case 'd': + case 'D': + case 'DDD': + return number + '日'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '数秒', + ss: '%d秒', + m: '1分', + mm: '%d分', + h: '1時間', + hh: '%d時間', + d: '1日', + dd: '%d日', + M: '1ヶ月', + MM: '%dヶ月', + y: '1年', + yy: '%d年', + }, +}); diff --git a/node_modules/moment/src/locale/jv.js b/node_modules/moment/src/locale/jv.js new file mode 100644 index 0000000..b52f48d --- /dev/null +++ b/node_modules/moment/src/locale/jv.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +import moment from '../moment'; + +export default moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ka.js b/node_modules/moment/src/locale/ka.js new file mode 100644 index 0000000..15b6ead --- /dev/null +++ b/node_modules/moment/src/locale/ka.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +import moment from '../moment'; + +export default moment.defineLocale('ka', { + months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split( + '_' + ), + monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays: { + standalone: + 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split( + '_' + ), + format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split( + '_' + ), + isFormat: /(წინა|შემდეგ)/, + }, + weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[დღეს] LT[-ზე]', + nextDay: '[ხვალ] LT[-ზე]', + lastDay: '[გუშინ] LT[-ზე]', + nextWeek: '[შემდეგ] dddd LT[-ზე]', + lastWeek: '[წინა] dddd LT-ზე', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, + function ($0, $1, $2) { + return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში'; + } + ); + }, + past: function (s) { + if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if (/წელი/.test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + return s; + }, + s: 'რამდენიმე წამი', + ss: '%d წამი', + m: 'წუთი', + mm: '%d წუთი', + h: 'საათი', + hh: '%d საათი', + d: 'დღე', + dd: '%d დღე', + M: 'თვე', + MM: '%d თვე', + y: 'წელი', + yy: '%d წელი', + }, + dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week: { + dow: 1, + doy: 7, + }, +}); diff --git a/node_modules/moment/src/locale/kk.js b/node_modules/moment/src/locale/kk.js new file mode 100644 index 0000000..9cab152 --- /dev/null +++ b/node_modules/moment/src/locale/kk.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +import moment from '../moment'; + +var suffixes = { + 0: '-ші', + 1: '-ші', + 2: '-ші', + 3: '-ші', + 4: '-ші', + 5: '-ші', + 6: '-шы', + 7: '-ші', + 8: '-ші', + 9: '-шы', + 10: '-шы', + 20: '-шы', + 30: '-шы', + 40: '-шы', + 50: '-ші', + 60: '-шы', + 70: '-ші', + 80: '-ші', + 90: '-шы', + 100: '-ші', +}; + +export default moment.defineLocale('kk', { + months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split( + '_' + ), + monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), + weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split( + '_' + ), + weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), + weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгін сағат] LT', + nextDay: '[Ертең сағат] LT', + nextWeek: 'dddd [сағат] LT', + lastDay: '[Кеше сағат] LT', + lastWeek: '[Өткен аптаның] dddd [сағат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ішінде', + past: '%s бұрын', + s: 'бірнеше секунд', + ss: '%d секунд', + m: 'бір минут', + mm: '%d минут', + h: 'бір сағат', + hh: '%d сағат', + d: 'бір күн', + dd: '%d күн', + M: 'бір ай', + MM: '%d ай', + y: 'бір жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/km.js b/node_modules/moment/src/locale/km.js new file mode 100644 index 0000000..984c4dc --- /dev/null +++ b/node_modules/moment/src/locale/km.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +import moment from '../moment'; + +var symbolMap = { + 1: '១', + 2: '២', + 3: '៣', + 4: '៤', + 5: '៥', + 6: '៦', + 7: '៧', + 8: '៨', + 9: '៩', + 0: '០', + }, + numberMap = { + '១': '1', + '២': '2', + '៣': '3', + '៤': '4', + '៥': '5', + '៦': '6', + '៧': '7', + '៨': '8', + '៩': '9', + '០': '0', + }; + +export default moment.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + monthsShort: + 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split( + '_' + ), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ព្រឹក|ល្ងាច/, + isPM: function (input) { + return input === 'ល្ងាច'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ព្រឹក'; + } else { + return 'ល្ងាច'; + } + }, + calendar: { + sameDay: '[ថ្ងៃនេះ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + ss: '%d វិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ', + }, + dayOfMonthOrdinalParse: /ទី\d{1,2}/, + ordinal: 'ទី%d', + preparse: function (string) { + return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/kn.js b/node_modules/moment/src/locale/kn.js new file mode 100644 index 0000000..e7cb354 --- /dev/null +++ b/node_modules/moment/src/locale/kn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +import moment from '../moment'; + +var symbolMap = { + 1: '೧', + 2: '೨', + 3: '೩', + 4: '೪', + 5: '೫', + 6: '೬', + 7: '೭', + 8: '೮', + 9: '೯', + 0: '೦', + }, + numberMap = { + '೧': '1', + '೨': '2', + '೩': '3', + '೪': '4', + '೫': '5', + '೬': '6', + '೭': '7', + '೮': '8', + '೯': '9', + '೦': '0', + }; + +export default moment.defineLocale('kn', { + months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split( + '_' + ), + monthsShort: + 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split( + '_' + ), + weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), + weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[ಇಂದು] LT', + nextDay: '[ನಾಳೆ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ನಿನ್ನೆ] LT', + lastWeek: '[ಕೊನೆಯ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ನಂತರ', + past: '%s ಹಿಂದೆ', + s: 'ಕೆಲವು ಕ್ಷಣಗಳು', + ss: '%d ಸೆಕೆಂಡುಗಳು', + m: 'ಒಂದು ನಿಮಿಷ', + mm: '%d ನಿಮಿಷ', + h: 'ಒಂದು ಗಂಟೆ', + hh: '%d ಗಂಟೆ', + d: 'ಒಂದು ದಿನ', + dd: '%d ದಿನ', + M: 'ಒಂದು ತಿಂಗಳು', + MM: '%d ತಿಂಗಳು', + y: 'ಒಂದು ವರ್ಷ', + yy: '%d ವರ್ಷ', + }, + preparse: function (string) { + return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ರಾತ್ರಿ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { + return hour; + } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ಸಂಜೆ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ರಾತ್ರಿ'; + } else if (hour < 10) { + return 'ಬೆಳಿಗ್ಗೆ'; + } else if (hour < 17) { + return 'ಮಧ್ಯಾಹ್ನ'; + } else if (hour < 20) { + return 'ಸಂಜೆ'; + } else { + return 'ರಾತ್ರಿ'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, + ordinal: function (number) { + return number + 'ನೇ'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ko.js b/node_modules/moment/src/locale/ko.js new file mode 100644 index 0000000..c45f3e3 --- /dev/null +++ b/node_modules/moment/src/locale/ko.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +import moment from '../moment'; + +export default moment.defineLocale('ko', { + months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split( + '_' + ), + weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort: '일_월_화_수_목_금_토'.split('_'), + weekdaysMin: '일_월_화_수_목_금_토'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY년 MMMM D일', + LLL: 'YYYY년 MMMM D일 A h:mm', + LLLL: 'YYYY년 MMMM D일 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY년 MMMM D일', + lll: 'YYYY년 MMMM D일 A h:mm', + llll: 'YYYY년 MMMM D일 dddd A h:mm', + }, + calendar: { + sameDay: '오늘 LT', + nextDay: '내일 LT', + nextWeek: 'dddd LT', + lastDay: '어제 LT', + lastWeek: '지난주 dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 후', + past: '%s 전', + s: '몇 초', + ss: '%d초', + m: '1분', + mm: '%d분', + h: '한 시간', + hh: '%d시간', + d: '하루', + dd: '%d일', + M: '한 달', + MM: '%d달', + y: '일 년', + yy: '%d년', + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '일'; + case 'M': + return number + '월'; + case 'w': + case 'W': + return number + '주'; + default: + return number; + } + }, + meridiemParse: /오전|오후/, + isPM: function (token) { + return token === '오후'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + }, +}); diff --git a/node_modules/moment/src/locale/ku-kmr.js b/node_modules/moment/src/locale/ku-kmr.js new file mode 100644 index 0000000..87ad603 --- /dev/null +++ b/node_modules/moment/src/locale/ku-kmr.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Northern Kurdish [ku-kmr] +//! authors : Mazlum Özdogan : https://github.com/mergehez + +// All rules except for month names are according to +// the spelling rules which are defined in the book 'Rêbera Rastnivîsînê' from Komxebata Kurmancîyê. +// Komxebata Kurmancîyê is a work group that studied different uses in Kurdish language (Kurmanji/Northern Kurdish), +// chose one of alternatives as standard and publish them via their book. +// There are 18 Kurdish linguists in the group. +// The group was formed by Mesopotamia Foundation + +import moment from '../moment'; + +function processRelativeTime(num, withoutSuffix, key, isFuture) { + var format = { + s: ['çend sanîye', 'çend sanîyeyan'], + ss: [num + ' sanîye', num + ' sanîyeyan'], + m: ['deqîqeyek', 'deqîqeyekê'], + mm: [num + ' deqîqe', num + ' deqîqeyan'], + h: ['saetek', 'saetekê'], + hh: [num + ' saet', num + ' saetan'], + d: ['rojek', 'rojekê'], + dd: [num + ' roj', num + ' rojan'], + w: ['hefteyek', 'hefteyekê'], + ww: [num + ' hefte', num + ' hefteyan'], + M: ['mehek', 'mehekê'], + MM: [num + ' meh', num + ' mehan'], + y: ['salek', 'salekê'], + yy: [num + ' sal', num + ' salan'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +// function obliqueNumSuffix(num) { +// if(num.includes(':')) +// num = parseInt(num.split(':')[0]); +// else +// num = parseInt(num); +// return num == 0 || num % 10 == 1 ? 'ê' +// : (num > 10 && num % 10 == 0 ? 'î' : 'an'); +// } +function ezafeNumSuffix(num) { + num = '' + num; + var l = num.substring(num.length - 1), + ll = num.length > 1 ? num.substring(num.length - 2) : ''; + if ( + !(ll == 12 || ll == 13) && + (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80') + ) + return 'yê'; + return 'ê'; +} + +export default moment.defineLocale('ku-kmr', { + // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation) + // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn' + // But the names below are more well known and handy + months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split( + '_' + ), + monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'), + monthsParseExact: true, + weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'), + weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'), + weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'bn' : 'BN'; + } else { + return isLower ? 'pn' : 'PN'; + } + }, + meridiemParse: /bn|BN|pn|PN/, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM[a] YYYY[an]', + LLL: 'Do MMMM[a] YYYY[an] HH:mm', + LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm', + ll: 'Do MMM[.] YYYY[an]', + lll: 'Do MMM[.] YYYY[an] HH:mm', + llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm', + }, + calendar: { + sameDay: '[Îro di saet] LT [de]', + nextDay: '[Sibê di saet] LT [de]', + nextWeek: 'dddd [di saet] LT [de]', + lastDay: '[Duh di saet] LT [de]', + lastWeek: 'dddd[a borî di saet] LT [de]', + sameElse: 'L', + }, + relativeTime: { + future: 'di %s de', + past: 'berî %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(?:yê|ê|\.)/, + ordinal: function (num, period) { + var p = period.toLowerCase(); + if (p.includes('w') || p.includes('m')) return num + '.'; + + return num + ezafeNumSuffix(num); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ku.js b/node_modules/moment/src/locale/ku.js new file mode 100644 index 0000000..e705f01 --- /dev/null +++ b/node_modules/moment/src/locale/ku.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +import moment from '../moment'; + +var symbolMap = { + 1: '١', + 2: '٢', + 3: '٣', + 4: '٤', + 5: '٥', + 6: '٦', + 7: '٧', + 8: '٨', + 9: '٩', + 0: '٠', + }, + numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0', + }, + months = [ + 'کانونی دووەم', + 'شوبات', + 'ئازار', + 'نیسان', + 'ئایار', + 'حوزەیران', + 'تەمموز', + 'ئاب', + 'ئەیلوول', + 'تشرینی یەكەم', + 'تشرینی دووەم', + 'كانونی یەکەم', + ]; + +export default moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split( + '_' + ), + weekdaysShort: + 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), + weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /ئێواره‌|به‌یانی/, + isPM: function (input) { + return /ئێواره‌/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'به‌یانی'; + } else { + return 'ئێواره‌'; + } + }, + calendar: { + sameDay: '[ئه‌مرۆ كاتژمێر] LT', + nextDay: '[به‌یانی كاتژمێر] LT', + nextWeek: 'dddd [كاتژمێر] LT', + lastDay: '[دوێنێ كاتژمێر] LT', + lastWeek: 'dddd [كاتژمێر] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'له‌ %s', + past: '%s', + s: 'چه‌ند چركه‌یه‌ك', + ss: 'چركه‌ %d', + m: 'یه‌ك خوله‌ك', + mm: '%d خوله‌ك', + h: 'یه‌ك كاتژمێر', + hh: '%d كاتژمێر', + d: 'یه‌ك ڕۆژ', + dd: '%d ڕۆژ', + M: 'یه‌ك مانگ', + MM: '%d مانگ', + y: 'یه‌ك ساڵ', + yy: '%d ساڵ', + }, + preparse: function (string) { + return string + .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return numberMap[match]; + }) + .replace(/،/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '،'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ky.js b/node_modules/moment/src/locale/ky.js new file mode 100644 index 0000000..2108d09 --- /dev/null +++ b/node_modules/moment/src/locale/ky.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +import moment from '../moment'; + +var suffixes = { + 0: '-чү', + 1: '-чи', + 2: '-чи', + 3: '-чү', + 4: '-чү', + 5: '-чи', + 6: '-чы', + 7: '-чи', + 8: '-чи', + 9: '-чу', + 10: '-чу', + 20: '-чы', + 30: '-чу', + 40: '-чы', + 50: '-чү', + 60: '-чы', + 70: '-чи', + 80: '-чи', + 90: '-чу', + 100: '-чү', +}; + +export default moment.defineLocale('ky', { + months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split( + '_' + ), + weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split( + '_' + ), + weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), + weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Бүгүн саат] LT', + nextDay: '[Эртең саат] LT', + nextWeek: 'dddd [саат] LT', + lastDay: '[Кечээ саат] LT', + lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ичинде', + past: '%s мурун', + s: 'бирнече секунд', + ss: '%d секунд', + m: 'бир мүнөт', + mm: '%d мүнөт', + h: 'бир саат', + hh: '%d саат', + d: 'бир күн', + dd: '%d күн', + M: 'бир ай', + MM: '%d ай', + y: 'бир жыл', + yy: '%d жыл', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/lb.js b/node_modules/moment/src/locale/lb.js new file mode 100644 index 0000000..f01e662 --- /dev/null +++ b/node_modules/moment/src/locale/lb.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; +} +function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; +} +/** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ +function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } +} + +export default moment.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d Méint', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/lo.js b/node_modules/moment/src/locale/lo.js new file mode 100644 index 0000000..cd6cc20 --- /dev/null +++ b/node_modules/moment/src/locale/lo.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +import moment from '../moment'; + +export default moment.defineLocale('lo', { + months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + monthsShort: + 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split( + '_' + ), + weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), + weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'ວັນdddd D MMMM YYYY HH:mm', + }, + meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, + isPM: function (input) { + return input === 'ຕອນແລງ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ຕອນເຊົ້າ'; + } else { + return 'ຕອນແລງ'; + } + }, + calendar: { + sameDay: '[ມື້ນີ້ເວລາ] LT', + nextDay: '[ມື້ອື່ນເວລາ] LT', + nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT', + lastDay: '[ມື້ວານນີ້ເວລາ] LT', + lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ອີກ %s', + past: '%sຜ່ານມາ', + s: 'ບໍ່ເທົ່າໃດວິນາທີ', + ss: '%d ວິນາທີ', + m: '1 ນາທີ', + mm: '%d ນາທີ', + h: '1 ຊົ່ວໂມງ', + hh: '%d ຊົ່ວໂມງ', + d: '1 ມື້', + dd: '%d ມື້', + M: '1 ເດືອນ', + MM: '%d ເດືອນ', + y: '1 ປີ', + yy: '%d ປີ', + }, + dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, + ordinal: function (number) { + return 'ທີ່' + number; + }, +}); diff --git a/node_modules/moment/src/locale/lt.js b/node_modules/moment/src/locale/lt.js new file mode 100644 index 0000000..83c1595 --- /dev/null +++ b/node_modules/moment/src/locale/lt.js @@ -0,0 +1,125 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Mozūras : https://github.com/mmozuras + +import moment from '../moment'; + +var units = { + ss: 'sekundė_sekundžių_sekundes', + m: 'minutė_minutės_minutę', + mm: 'minutės_minučių_minutes', + h: 'valanda_valandos_valandą', + hh: 'valandos_valandų_valandas', + d: 'diena_dienos_dieną', + dd: 'dienos_dienų_dienas', + M: 'mėnuo_mėnesio_mėnesį', + MM: 'mėnesiai_mėnesių_mėnesius', + y: 'metai_metų_metus', + yy: 'metai_metų_metus', +}; +function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } +} +function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; +} +function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); +} +function forms(key) { + return units[key].split('_'); +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } +} +export default moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[Šiandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Praėjusį] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prieš %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/lv.js b/node_modules/moment/src/locale/lv.js new file mode 100644 index 0000000..3a89653 --- /dev/null +++ b/node_modules/moment/src/locale/lv.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : Jānis Elmeris : https://github.com/JanisE + +import moment from '../moment'; + +var units = { + ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'), + m: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'), + h: 'stundas_stundām_stunda_stundas'.split('_'), + hh: 'stundas_stundām_stunda_stundas'.split('_'), + d: 'dienas_dienām_diena_dienas'.split('_'), + dd: 'dienas_dienām_diena_dienas'.split('_'), + M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), +}; +/** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ +function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); +} +function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); +} +function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; +} + +export default moment.defineLocale('lv', { + months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[Šodien pulksten] LT', + nextDay: '[Rīt pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pagājušā] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'pēc %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/me.js b/node_modules/moment/src/locale/me.js new file mode 100644 index 0000000..e22c8d9 --- /dev/null +++ b/node_modules/moment/src/locale/me.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nikač : https://github.com/miodragnikac + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, +}; + +export default moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/mi.js b/node_modules/moment/src/locale/mi.js new file mode 100644 index 0000000..635a56a --- /dev/null +++ b/node_modules/moment/src/locale/mi.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +import moment from '../moment'; + +export default moment.defineLocale('mi', { + months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'), + weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te hēkona ruarua', + ss: '%d hēkona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/mk.js b/node_modules/moment/src/locale/mk.js new file mode 100644 index 0000000..f3ecad7 --- /dev/null +++ b/node_modules/moment/src/locale/mk.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh +import moment from '../moment'; + +export default moment.defineLocale('mk', { + months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split( + '_' + ), + monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split( + '_' + ), + weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[Денес во] LT', + nextDay: '[Утре во] LT', + nextWeek: '[Во] dddd [во] LT', + lastDay: '[Вчера во] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Изминатиот] dddd [во] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пред %s', + s: 'неколку секунди', + ss: '%d секунди', + m: 'една минута', + mm: '%d минути', + h: 'еден час', + hh: '%d часа', + d: 'еден ден', + dd: '%d дена', + M: 'еден месец', + MM: '%d месеци', + y: 'една година', + yy: '%d години', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ml.js b/node_modules/moment/src/locale/ml.js new file mode 100644 index 0000000..5df6ae4 --- /dev/null +++ b/node_modules/moment/src/locale/ml.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +import moment from '../moment'; + +export default moment.defineLocale('ml', { + months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split( + '_' + ), + monthsShort: + 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split( + '_' + ), + weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat: { + LT: 'A h:mm -നു', + LTS: 'A h:mm:ss -നു', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -നു', + LLLL: 'dddd, D MMMM YYYY, A h:mm -നു', + }, + calendar: { + sameDay: '[ഇന്ന്] LT', + nextDay: '[നാളെ] LT', + nextWeek: 'dddd, LT', + lastDay: '[ഇന്നലെ] LT', + lastWeek: '[കഴിഞ്ഞ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s കഴിഞ്ഞ്', + past: '%s മുൻപ്', + s: 'അൽപ നിമിഷങ്ങൾ', + ss: '%d സെക്കൻഡ്', + m: 'ഒരു മിനിറ്റ്', + mm: '%d മിനിറ്റ്', + h: 'ഒരു മണിക്കൂർ', + hh: '%d മണിക്കൂർ', + d: 'ഒരു ദിവസം', + dd: '%d ദിവസം', + M: 'ഒരു മാസം', + MM: '%d മാസം', + y: 'ഒരു വർഷം', + yy: '%d വർഷം', + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === 'രാത്രി' && hour >= 4) || + meridiem === 'ഉച്ച കഴിഞ്ഞ്' || + meridiem === 'വൈകുന്നേരം' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + }, +}); diff --git a/node_modules/moment/src/locale/mn.js b/node_modules/moment/src/locale/mn.js new file mode 100644 index 0000000..36cf69f --- /dev/null +++ b/node_modules/moment/src/locale/mn.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; + case 'ss': + return number + (withoutSuffix ? ' секунд' : ' секундын'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' минут' : ' минутын'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' цаг' : ' цагийн'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' сар' : ' сарын'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' жил' : ' жилийн'); + default: + return number; + } +} + +export default moment.defineLocale('mn', { + months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split( + '_' + ), + monthsShort: + '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), + weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), + weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY оны MMMMын D', + LLL: 'YYYY оны MMMMын D HH:mm', + LLLL: 'dddd, YYYY оны MMMMын D HH:mm', + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function (input) { + return input === 'ҮХ'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ҮӨ'; + } else { + return 'ҮХ'; + } + }, + calendar: { + sameDay: '[Өнөөдөр] LT', + nextDay: '[Маргааш] LT', + nextWeek: '[Ирэх] dddd LT', + lastDay: '[Өчигдөр] LT', + lastWeek: '[Өнгөрсөн] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s дараа', + past: '%s өмнө', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' өдөр'; + default: + return number; + } + }, +}); diff --git a/node_modules/moment/src/locale/mr.js b/node_modules/moment/src/locale/mr.js new file mode 100644 index 0000000..d174909 --- /dev/null +++ b/node_modules/moment/src/locale/mr.js @@ -0,0 +1,203 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + +function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = 'काही सेकंद'; + break; + case 'ss': + output = '%d सेकंद'; + break; + case 'm': + output = 'एक मिनिट'; + break; + case 'mm': + output = '%d मिनिटे'; + break; + case 'h': + output = 'एक तास'; + break; + case 'hh': + output = '%d तास'; + break; + case 'd': + output = 'एक दिवस'; + break; + case 'dd': + output = '%d दिवस'; + break; + case 'M': + output = 'एक महिना'; + break; + case 'MM': + output = '%d महिने'; + break; + case 'y': + output = 'एक वर्ष'; + break; + case 'yy': + output = '%d वर्षे'; + break; + } + } else { + switch (string) { + case 's': + output = 'काही सेकंदां'; + break; + case 'ss': + output = '%d सेकंदां'; + break; + case 'm': + output = 'एका मिनिटा'; + break; + case 'mm': + output = '%d मिनिटां'; + break; + case 'h': + output = 'एका तासा'; + break; + case 'hh': + output = '%d तासां'; + break; + case 'd': + output = 'एका दिवसा'; + break; + case 'dd': + output = '%d दिवसां'; + break; + case 'M': + output = 'एका महिन्या'; + break; + case 'MM': + output = '%d महिन्यां'; + break; + case 'y': + output = 'एका वर्षा'; + break; + case 'yy': + output = '%d वर्षां'; + break; + } + } + return output.replace(/%d/i, number); +} + +export default moment.defineLocale('mr', { + months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split( + '_' + ), + monthsShort: + 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat: { + LT: 'A h:mm वाजता', + LTS: 'A h:mm:ss वाजता', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm वाजता', + LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता', + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[उद्या] LT', + nextWeek: 'dddd, LT', + lastDay: '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमध्ये', + past: '%sपूर्वी', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'पहाटे' || meridiem === 'सकाळी') { + return hour; + } else if ( + meridiem === 'दुपारी' || + meridiem === 'सायंकाळी' || + meridiem === 'रात्री' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return 'पहाटे'; + } else if (hour < 12) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ms-my.js b/node_modules/moment/src/locale/ms-my.js new file mode 100644 index 0000000..f8adf98 --- /dev/null +++ b/node_modules/moment/src/locale/ms-my.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ms.js b/node_modules/moment/src/locale/ms.js new file mode 100644 index 0000000..335cc90 --- /dev/null +++ b/node_modules/moment/src/locale/ms.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/mt.js b/node_modules/moment/src/locale/mt.js new file mode 100644 index 0000000..850cf6a --- /dev/null +++ b/node_modules/moment/src/locale/mt.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +import moment from '../moment'; + +export default moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), + weekdays: + 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split( + '_' + ), + weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), + weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[Għada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-bieraħ fil-]LT', + lastWeek: 'dddd [li għadda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f’ %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'siegħa', + hh: '%d siegħat', + d: 'ġurnata', + dd: '%d ġranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/my.js b/node_modules/moment/src/locale/my.js new file mode 100644 index 0000000..034b221 --- /dev/null +++ b/node_modules/moment/src/locale/my.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +import moment from '../moment'; + +var symbolMap = { + 1: '၁', + 2: '၂', + 3: '၃', + 4: '၄', + 5: '၅', + 6: '၆', + 7: '၇', + 8: '၈', + 9: '၉', + 0: '၀', + }, + numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0', + }; + +export default moment.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split( + '_' + ), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split( + '_' + ), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L', + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + ss: '%d စက္ကန့်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်', + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/nb.js b/node_modules/moment/src/locale/nb.js new file mode 100644 index 0000000..cce3aaa --- /dev/null +++ b/node_modules/moment/src/locale/nb.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokmål [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), + weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'én time', + hh: '%d timer', + d: 'én dag', + dd: '%d dager', + w: 'én uke', + ww: '%d uker', + M: 'én måned', + MM: '%d måneder', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ne.js b/node_modules/moment/src/locale/ne.js new file mode 100644 index 0000000..1f0a0ed --- /dev/null +++ b/node_modules/moment/src/locale/ne.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +import moment from '../moment'; + +var symbolMap = { + 1: '१', + 2: '२', + 3: '३', + 4: '४', + 5: '५', + 6: '६', + 7: '७', + 8: '८', + 9: '९', + 0: '०', + }, + numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0', + }; + +export default moment.defineLocale('ne', { + months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split( + '_' + ), + monthsShort: + 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split( + '_' + ), + weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'Aको h:mm बजे', + LTS: 'Aको h:mm:ss बजे', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, Aको h:mm बजे', + LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे', + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /राति|बिहान|दिउँसो|साँझ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राति') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return 'राति'; + } else if (hour < 12) { + return 'बिहान'; + } else if (hour < 16) { + return 'दिउँसो'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राति'; + } + }, + calendar: { + sameDay: '[आज] LT', + nextDay: '[भोलि] LT', + nextWeek: '[आउँदो] dddd[,] LT', + lastDay: '[हिजो] LT', + lastWeek: '[गएको] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%sमा', + past: '%s अगाडि', + s: 'केही क्षण', + ss: '%d सेकेण्ड', + m: 'एक मिनेट', + mm: '%d मिनेट', + h: 'एक घण्टा', + hh: '%d घण्टा', + d: 'एक दिन', + dd: '%d दिन', + M: 'एक महिना', + MM: '%d महिना', + y: 'एक बर्ष', + yy: '%d बर्ष', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/nl-be.js b/node_modules/moment/src/locale/nl-be.js new file mode 100644 index 0000000..e495ff1 --- /dev/null +++ b/node_modules/moment/src/locale/nl-be.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/nl.js b/node_modules/moment/src/locale/nl.js new file mode 100644 index 0000000..b6d83c3 --- /dev/null +++ b/node_modules/moment/src/locale/nl.js @@ -0,0 +1,104 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris Röling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^(maart|mrt\.?)$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: 'één minuut', + mm: '%d minuten', + h: 'één uur', + hh: '%d uur', + d: 'één dag', + dd: '%d dagen', + w: 'één week', + ww: '%d weken', + M: 'één maand', + MM: '%d maanden', + y: 'één jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/nn.js b/node_modules/moment/src/locale/nn.js new file mode 100644 index 0000000..0da1150 --- /dev/null +++ b/node_modules/moment/src/locale/nn.js @@ -0,0 +1,59 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein månad', + MM: '%d månader', + y: 'eit år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/oc-lnc.js b/node_modules/moment/src/locale/oc-lnc.js new file mode 100644 index 0000000..2e67d73 --- /dev/null +++ b/node_modules/moment/src/locale/oc-lnc.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAGÈS : https://github.com/Quenty31 + +import moment from '../moment'; + +export default moment.defineLocale('oc-lnc', { + months: { + standalone: + 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( + '_' + ), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[uèi a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[ièr a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aquí %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function (number, period) { + var output = + number === 1 + ? 'r' + : number === 2 + ? 'n' + : number === 3 + ? 'r' + : number === 4 + ? 't' + : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, + }, +}); diff --git a/node_modules/moment/src/locale/pa-in.js b/node_modules/moment/src/locale/pa-in.js new file mode 100644 index 0000000..e39dbd5 --- /dev/null +++ b/node_modules/moment/src/locale/pa-in.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +import moment from '../moment'; + +var symbolMap = { + 1: '੧', + 2: '੨', + 3: '੩', + 4: '੪', + 5: '੫', + 6: '੬', + 7: '੭', + 8: '੮', + 9: '੯', + 0: '੦', + }, + numberMap = { + '੧': '1', + '੨': '2', + '੩': '3', + '੪': '4', + '੫': '5', + '੬': '6', + '੭': '7', + '੮': '8', + '੯': '9', + '੦': '0', + }; + +export default moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + monthsShort: + 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( + '_' + ), + weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split( + '_' + ), + weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), + longDateFormat: { + LT: 'A h:mm ਵਜੇ', + LTS: 'A h:mm:ss ਵਜੇ', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm ਵਜੇ', + LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ', + }, + calendar: { + sameDay: '[ਅਜ] LT', + nextDay: '[ਕਲ] LT', + nextWeek: '[ਅਗਲਾ] dddd, LT', + lastDay: '[ਕਲ] LT', + lastWeek: '[ਪਿਛਲੇ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s ਵਿੱਚ', + past: '%s ਪਿਛਲੇ', + s: 'ਕੁਝ ਸਕਿੰਟ', + ss: '%d ਸਕਿੰਟ', + m: 'ਇਕ ਮਿੰਟ', + mm: '%d ਮਿੰਟ', + h: 'ਇੱਕ ਘੰਟਾ', + hh: '%d ਘੰਟੇ', + d: 'ਇੱਕ ਦਿਨ', + dd: '%d ਦਿਨ', + M: 'ਇੱਕ ਮਹੀਨਾ', + MM: '%d ਮਹੀਨੇ', + y: 'ਇੱਕ ਸਾਲ', + yy: '%d ਸਾਲ', + }, + preparse: function (string) { + return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ਰਾਤ') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ਸਵੇਰ') { + return hour; + } else if (meridiem === 'ਦੁਪਹਿਰ') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'ਸ਼ਾਮ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ਰਾਤ'; + } else if (hour < 10) { + return 'ਸਵੇਰ'; + } else if (hour < 17) { + return 'ਦੁਪਹਿਰ'; + } else if (hour < 20) { + return 'ਸ਼ਾਮ'; + } else { + return 'ਰਾਤ'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/pl.js b/node_modules/moment/src/locale/pl.js new file mode 100644 index 0000000..0608c0d --- /dev/null +++ b/node_modules/moment/src/locale/pl.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +import moment from '../moment'; + +var monthsNominative = + 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^paź/i, + /^lis/i, + /^gru/i, + ]; +function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; +} +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } +} + +export default moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedzielę o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W środę o] LT'; + + case 6: + return '[W sobotę o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzień', + dd: '%d dni', + w: 'tydzień', + ww: translate, + M: 'miesiąc', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/pt-br.js b/node_modules/moment/src/locale/pt-br.js new file mode 100644 index 0000000..eb9aa64 --- /dev/null +++ b/node_modules/moment/src/locale/pt-br.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +import moment from '../moment'; + +export default moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), + weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + invalidDate: 'Data inválida', +}); diff --git a/node_modules/moment/src/locale/pt.js b/node_modules/moment/src/locale/pt.js new file mode 100644 index 0000000..d9b6055 --- /dev/null +++ b/node_modules/moment/src/locale/pt.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +import moment from '../moment'; + +export default moment.defineLocale('pt', { + months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[Último] dddd [às] LT' // Saturday + Sunday + : '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'há %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um mês', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: '%dº', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ro.js b/node_modules/moment/src/locale/ro.js new file mode 100644 index 0000000..d5bc5ea --- /dev/null +++ b/node_modules/moment/src/locale/ro.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +import moment from '../moment'; + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 'săptămâni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; +} + +export default moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s în urmă', + s: 'câteva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o oră', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o săptămână', + ww: relativeTimeWithPlural, + M: 'o lună', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ru.js b/node_modules/moment/src/locale/ru.js new file mode 100644 index 0000000..d214850 --- /dev/null +++ b/node_modules/moment/src/locale/ru.js @@ -0,0 +1,213 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Коренберг Марк : https://github.com/socketpair + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд', + mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + hh: 'час_часа_часов', + dd: 'день_дня_дней', + ww: 'неделя_недели_недель', + MM: 'месяц_месяца_месяцев', + yy: 'год_года_лет', + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +var monthsParse = [ + /^янв/i, + /^фев/i, + /^мар/i, + /^апр/i, + /^ма[йя]/i, + /^июн/i, + /^июл/i, + /^авг/i, + /^сен/i, + /^окт/i, + /^ноя/i, + /^дек/i, +]; + +// http://new.gramota.ru/spravka/rules/139-prop : § 103 +// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 +// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 +export default moment.defineLocale('ru', { + months: { + format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split( + '_' + ), + standalone: + 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split( + '_' + ), + }, + monthsShort: { + // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку? + format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split( + '_' + ), + standalone: + 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split( + '_' + ), + }, + weekdays: { + standalone: + 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split( + '_' + ), + format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split( + '_' + ), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/, + }, + weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки + monthsRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // копия предыдущего + monthsShortRegex: + /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + + // полные названия с падежами + monthsStrictRegex: + /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + + // Выражение, которое соответствует только сокращённым формам + monthsShortStrictRegex: + /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY г.', + LLL: 'D MMMM YYYY г., H:mm', + LLLL: 'dddd, D MMMM YYYY г., H:mm', + }, + calendar: { + sameDay: '[Сегодня, в] LT', + nextDay: '[Завтра, в] LT', + lastDay: '[Вчера, в] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В следующее] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В следующий] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В следующую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd, [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd, [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd, [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd, [в] LT'; + } else { + return '[В] dddd, [в] LT'; + } + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'через %s', + past: '%s назад', + s: 'несколько секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'час', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + w: 'неделя', + ww: relativeTimeWithPlural, + M: 'месяц', + MM: relativeTimeWithPlural, + y: 'год', + yy: relativeTimeWithPlural, + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sd.js b/node_modules/moment/src/locale/sd.js new file mode 100644 index 0000000..20f1059 --- /dev/null +++ b/node_modules/moment/src/locale/sd.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +import moment from '../moment'; + +var months = [ + 'جنوري', + 'فيبروري', + 'مارچ', + 'اپريل', + 'مئي', + 'جون', + 'جولاءِ', + 'آگسٽ', + 'سيپٽمبر', + 'آڪٽوبر', + 'نومبر', + 'ڊسمبر', + ], + days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر']; + +export default moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[اڄ] LT', + nextDay: '[سڀاڻي] LT', + nextWeek: 'dddd [اڳين هفتي تي] LT', + lastDay: '[ڪالهه] LT', + lastWeek: '[گزريل هفتي] dddd [تي] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s پوء', + past: '%s اڳ', + s: 'چند سيڪنڊ', + ss: '%d سيڪنڊ', + m: 'هڪ منٽ', + mm: '%d منٽ', + h: 'هڪ ڪلاڪ', + hh: '%d ڪلاڪ', + d: 'هڪ ڏينهن', + dd: '%d ڏينهن', + M: 'هڪ مهينو', + MM: '%d مهينا', + y: 'هڪ سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/se.js b/node_modules/moment/src/locale/se.js new file mode 100644 index 0000000..e8eec58 --- /dev/null +++ b/node_modules/moment/src/locale/se.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : Bård Rolstad Henriksen : https://github.com/karamell + +import moment from '../moment'; + +export default moment.defineLocale('se', { + months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split( + '_' + ), + monthsShort: + 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s geažes', + past: 'maŋit %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta mánnu', + MM: '%d mánut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/si.js b/node_modules/moment/src/locale/si.js new file mode 100644 index 0000000..0f2498c --- /dev/null +++ b/node_modules/moment/src/locale/si.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +import moment from '../moment'; + +/*jshint -W100*/ +export default moment.defineLocale('si', { + months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split( + '_' + ), + monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split( + '_' + ), + weekdays: + 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split( + '_' + ), + weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[අද] LT[ට]', + nextDay: '[හෙට] LT[ට]', + nextWeek: 'dddd LT[ට]', + lastDay: '[ඊයේ] LT[ට]', + lastWeek: '[පසුගිය] dddd LT[ට]', + sameElse: 'L', + }, + relativeTime: { + future: '%sකින්', + past: '%sකට පෙර', + s: 'තත්පර කිහිපය', + ss: 'තත්පර %d', + m: 'මිනිත්තුව', + mm: 'මිනිත්තු %d', + h: 'පැය', + hh: 'පැය %d', + d: 'දිනය', + dd: 'දින %d', + M: 'මාසය', + MM: 'මාස %d', + y: 'වසර', + yy: 'වසර %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} වැනි/, + ordinal: function (number) { + return number + ' වැනි'; + }, + meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, + isPM: function (input) { + return input === 'ප.ව.' || input === 'පස් වරු'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + }, +}); diff --git a/node_modules/moment/src/locale/sk.js b/node_modules/moment/src/locale/sk.js new file mode 100644 index 0000000..7162ed6 --- /dev/null +++ b/node_modules/moment/src/locale/sk.js @@ -0,0 +1,145 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = + 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); +function plural(n) { + return n > 1 && n < 5; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekúnd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } +} + +export default moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sl.js b/node_modules/moment/src/locale/sl.js new file mode 100644 index 0000000..0290a8e --- /dev/null +++ b/node_modules/moment/src/locale/sl.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedovšek : https://github.com/sedovsek + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } +} + +export default moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[včeraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'čez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sq.js b/node_modules/moment/src/locale/sq.js new file mode 100644 index 0000000..3b3bcfa --- /dev/null +++ b/node_modules/moment/src/locale/sq.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flakërim Ismani : https://github.com/flakerimi +//! author : Menelion Elensúle : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +import moment from '../moment'; + +export default moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( + '_' + ), + weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot në] LT', + nextDay: '[Nesër në] LT', + nextWeek: 'dddd [në] LT', + lastDay: '[Dje në] LT', + lastWeek: 'dddd [e kaluar në] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'në %s', + past: '%s më parë', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'një minutë', + mm: '%d minuta', + h: 'një orë', + hh: '%d orë', + d: 'një ditë', + dd: '%d ditë', + M: 'një muaj', + MM: '%d muaj', + y: 'një vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sr-cyrl.js b/node_modules/moment/src/locale/sr-cyrl.js new file mode 100644 index 0000000..5e05810 --- /dev/null +++ b/node_modules/moment/src/locale/sr-cyrl.js @@ -0,0 +1,127 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['секунда', 'секунде', 'секунди'], + m: ['један минут', 'једног минута'], + mm: ['минут', 'минута', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + d: ['један дан', 'једног дана'], + dd: ['дан', 'дана', 'дана'], + M: ['један месец', 'једног месеца'], + MM: ['месец', 'месеца', 'месеци'], + y: ['једну годину', 'једне године'], + yy: ['годину', 'године', 'година'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'једна година'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'годину') { + return number + ' година'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr-cyrl', { + months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split( + '_' + ), + monthsShort: + 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'), + monthsParseExact: true, + weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'), + weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'), + weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay: '[јуче у] LT', + lastWeek: function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: 'пре %s', + s: 'неколико секунди', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sr.js b/node_modules/moment/src/locale/sr.js new file mode 100644 index 0000000..a407ec7 --- /dev/null +++ b/node_modules/moment/src/locale/sr.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Janačković : https://github.com/milan-j +//! author : Stefan Crnjaković : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[juče u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ss.js b/node_modules/moment/src/locale/ss.js new file mode 100644 index 0000000..60db499 --- /dev/null +++ b/node_modules/moment/src/locale/ss.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +import moment from '../moment'; + +export default moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sv.js b/node_modules/moment/src/locale/sv.js new file mode 100644 index 0000000..4a37cdb --- /dev/null +++ b/node_modules/moment/src/locale/sv.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +import moment from '../moment'; + +export default moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'för %s sedan', + s: 'några sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en månad', + MM: '%d månader', + y: 'ett år', + yy: '%d år', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sw.js b/node_modules/moment/src/locale/sw.js new file mode 100644 index 0000000..35a2668 --- /dev/null +++ b/node_modules/moment/src/locale/sw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +import moment from '../moment'; + +export default moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ta.js b/node_modules/moment/src/locale/ta.js new file mode 100644 index 0000000..fdfa1ba --- /dev/null +++ b/node_modules/moment/src/locale/ta.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +import moment from '../moment'; + +var symbolMap = { + 1: '௧', + 2: '௨', + 3: '௩', + 4: '௪', + 5: '௫', + 6: '௬', + 7: '௭', + 8: '௮', + 9: '௯', + 0: '௦', + }, + numberMap = { + '௧': '1', + '௨': '2', + '௩': '3', + '௪': '4', + '௫': '5', + '௬': '6', + '௭': '7', + '௮': '8', + '௯': '9', + '௦': '0', + }; + +export default moment.defineLocale('ta', { + months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + monthsShort: + 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split( + '_' + ), + weekdays: + 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split( + '_' + ), + weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split( + '_' + ), + weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[இன்று] LT', + nextDay: '[நாளை] LT', + nextWeek: 'dddd, LT', + lastDay: '[நேற்று] LT', + lastWeek: '[கடந்த வாரம்] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s இல்', + past: '%s முன்', + s: 'ஒரு சில விநாடிகள்', + ss: '%d விநாடிகள்', + m: 'ஒரு நிமிடம்', + mm: '%d நிமிடங்கள்', + h: 'ஒரு மணி நேரம்', + hh: '%d மணி நேரம்', + d: 'ஒரு நாள்', + dd: '%d நாட்கள்', + M: 'ஒரு மாதம்', + MM: '%d மாதங்கள்', + y: 'ஒரு வருடம்', + yy: '%d ஆண்டுகள்', + }, + dayOfMonthOrdinalParse: /\d{1,2}வது/, + ordinal: function (number) { + return number + 'வது'; + }, + preparse: function (string) { + return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/te.js b/node_modules/moment/src/locale/te.js new file mode 100644 index 0000000..56f9f16 --- /dev/null +++ b/node_modules/moment/src/locale/te.js @@ -0,0 +1,88 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +import moment from '../moment'; + +export default moment.defineLocale('te', { + months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split( + '_' + ), + monthsShort: + 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split( + '_' + ), + weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), + weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[నేడు] LT', + nextDay: '[రేపు] LT', + nextWeek: 'dddd, LT', + lastDay: '[నిన్న] LT', + lastWeek: '[గత] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s లో', + past: '%s క్రితం', + s: 'కొన్ని క్షణాలు', + ss: '%d సెకన్లు', + m: 'ఒక నిమిషం', + mm: '%d నిమిషాలు', + h: 'ఒక గంట', + hh: '%d గంటలు', + d: 'ఒక రోజు', + dd: '%d రోజులు', + M: 'ఒక నెల', + MM: '%d నెలలు', + y: 'ఒక సంవత్సరం', + yy: '%d సంవత్సరాలు', + }, + dayOfMonthOrdinalParse: /\d{1,2}వ/, + ordinal: '%dవ', + meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'రాత్రి') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'ఉదయం') { + return hour; + } else if (meridiem === 'మధ్యాహ్నం') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'సాయంత్రం') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'రాత్రి'; + } else if (hour < 10) { + return 'ఉదయం'; + } else if (hour < 17) { + return 'మధ్యాహ్నం'; + } else if (hour < 20) { + return 'సాయంత్రం'; + } else { + return 'రాత్రి'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tet.js b/node_modules/moment/src/locale/tet.js new file mode 100644 index 0000000..5f7d95c --- /dev/null +++ b/node_modules/moment/src/locale/tet.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +import moment from '../moment'; + +export default moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tg.js b/node_modules/moment/src/locale/tg.js new file mode 100644 index 0000000..60d33c7 --- /dev/null +++ b/node_modules/moment/src/locale/tg.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +import moment from '../moment'; + +var suffixes = { + 0: '-ум', + 1: '-ум', + 2: '-юм', + 3: '-юм', + 4: '-ум', + 5: '-ум', + 6: '-ум', + 7: '-ум', + 8: '-ум', + 9: '-ум', + 10: '-ум', + 12: '-ум', + 13: '-ум', + 20: '-ум', + 30: '-юм', + 40: '-ум', + 50: '-ум', + 60: '-ум', + 70: '-ум', + 80: '-ум', + 90: '-ум', + 100: '-ум', +}; + +export default moment.defineLocale('tg', { + months: { + format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split( + '_' + ), + standalone: + 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + }, + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split( + '_' + ), + weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), + weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Имрӯз соати] LT', + nextDay: '[Фардо соати] LT', + lastDay: '[Дирӯз соати] LT', + nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT', + lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'баъди %s', + past: '%s пеш', + s: 'якчанд сония', + m: 'як дақиқа', + mm: '%d дақиқа', + h: 'як соат', + hh: '%d соат', + d: 'як рӯз', + dd: '%d рӯз', + M: 'як моҳ', + MM: '%d моҳ', + y: 'як сол', + yy: '%d сол', + }, + meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'шаб') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'субҳ') { + return hour; + } else if (meridiem === 'рӯз') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'бегоҳ') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'шаб'; + } else if (hour < 11) { + return 'субҳ'; + } else if (hour < 16) { + return 'рӯз'; + } else if (hour < 19) { + return 'бегоҳ'; + } else { + return 'шаб'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/th.js b/node_modules/moment/src/locale/th.js new file mode 100644 index 0000000..b3a5560 --- /dev/null +++ b/node_modules/moment/src/locale/th.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +import moment from '../moment'; + +export default moment.defineLocale('th', { + months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split( + '_' + ), + monthsShort: + 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY เวลา H:mm', + LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm', + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar: { + sameDay: '[วันนี้ เวลา] LT', + nextDay: '[พรุ่งนี้ เวลา] LT', + nextWeek: 'dddd[หน้า เวลา] LT', + lastDay: '[เมื่อวานนี้ เวลา] LT', + lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'อีก %s', + past: '%sที่แล้ว', + s: 'ไม่กี่วินาที', + ss: '%d วินาที', + m: '1 นาที', + mm: '%d นาที', + h: '1 ชั่วโมง', + hh: '%d ชั่วโมง', + d: '1 วัน', + dd: '%d วัน', + w: '1 สัปดาห์', + ww: '%d สัปดาห์', + M: '1 เดือน', + MM: '%d เดือน', + y: '1 ปี', + yy: '%d ปี', + }, +}); diff --git a/node_modules/moment/src/locale/tk.js b/node_modules/moment/src/locale/tk.js new file mode 100644 index 0000000..b26f99e --- /dev/null +++ b/node_modules/moment/src/locale/tk.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +import moment from '../moment'; + +var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'ünji", + 4: "'ünji", + 100: "'ünji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", +}; + +export default moment.defineLocale('tk', { + months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( + '_' + ), + monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), + weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split( + '_' + ), + weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'), + weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[düýn] LT', + lastWeek: '[geçen] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s soň', + past: '%s öň', + s: 'birnäçe sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir gün', + dd: '%d gün', + M: 'bir aý', + MM: '%d aý', + y: 'bir ýyl', + yy: '%d ýyl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tl-ph.js b/node_modules/moment/src/locale/tl-ph.js new file mode 100644 index 0000000..581d74a --- /dev/null +++ b/node_modules/moment/src/locale/tl-ph.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +import moment from '../moment'; + +export default moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tlh.js b/node_modules/moment/src/locale/tlh.js new file mode 100644 index 0000000..ccc5d29 --- /dev/null +++ b/node_modules/moment/src/locale/tlh.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +import moment from '../moment'; + +var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + +function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; +} + +function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu’' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; +} + +function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } +} + +function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; +} + +export default moment.defineLocale('tlh', { + months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split( + '_' + ), + monthsShort: + 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa’leS] LT', + nextWeek: 'LLL', + lastDay: '[wa’Hu’] LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa’ tup', + mm: translate, + h: 'wa’ rep', + hh: translate, + d: 'wa’ jaj', + dd: translate, + M: 'wa’ jar', + MM: translate, + y: 'wa’ DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tr.js b/node_modules/moment/src/locale/tr.js new file mode 100644 index 0000000..c5abbdc --- /dev/null +++ b/node_modules/moment/src/locale/tr.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yiğit Kaya: https://github.com/BYK + +import moment from '../moment'; + +var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı", +}; + +export default moment.defineLocale('tr', { + months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split( + '_' + ), + monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'öö' : 'ÖÖ'; + } else { + return isLower ? 'ös' : 'ÖS'; + } + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function (input) { + return input === 'ös' || input === 'ÖS'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bugün saat] LT', + nextDay: '[yarın saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[dün] LT', + lastWeek: '[geçen] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s önce', + s: 'birkaç saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir gün', + dd: '%d gün', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir yıl', + yy: '%d yıl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'ıncı"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tzl.js b/node_modules/moment/src/locale/tzl.js new file mode 100644 index 0000000..5447082 --- /dev/null +++ b/node_modules/moment/src/locale/tzl.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iustì Canun + +import moment from '../moment'; + +// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. +// This is currently too difficult (maybe even impossible) to add. +export default moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi à] LT', + nextDay: '[demà à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[ieiri à] LT', + lastWeek: '[sür el] dddd [lasteu à] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n míut", "'iens míut"], + mm: [number + ' míuts', '' + number + ' míuts'], + h: ["'n þora", "'iensa þora"], + hh: [number + ' þoras', '' + number + ' þoras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; +} diff --git a/node_modules/moment/src/locale/tzm-latn.js b/node_modules/moment/src/locale/tzm-latn.js new file mode 100644 index 0000000..6a427d8 --- /dev/null +++ b/node_modules/moment/src/locale/tzm-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm-latn', { + months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minuḍ', + mm: '%d minuḍ', + h: 'saɛa', + hh: '%d tassaɛin', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tzm.js b/node_modules/moment/src/locale/tzm.js new file mode 100644 index 0000000..1e5d597 --- /dev/null +++ b/node_modules/moment/src/locale/tzm.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm', { + months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + monthsShort: + 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split( + '_' + ), + weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past: 'ⵢⴰⵏ %s', + s: 'ⵉⵎⵉⴽ', + ss: '%d ⵉⵎⵉⴽ', + m: 'ⵎⵉⵏⵓⴺ', + mm: '%d ⵎⵉⵏⵓⴺ', + h: 'ⵙⴰⵄⴰ', + hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d: 'ⴰⵙⵙ', + dd: '%d oⵙⵙⴰⵏ', + M: 'ⴰⵢoⵓⵔ', + MM: '%d ⵉⵢⵢⵉⵔⵏ', + y: 'ⴰⵙⴳⴰⵙ', + yy: '%d ⵉⵙⴳⴰⵙⵏ', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ug-cn.js b/node_modules/moment/src/locale/ug-cn.js new file mode 100644 index 0000000..ad6fa94 --- /dev/null +++ b/node_modules/moment/src/locale/ug-cn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +import moment from '../moment'; + +export default moment.defineLocale('ug-cn', { + months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + monthsShort: + 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split( + '_' + ), + weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split( + '_' + ), + weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى', + LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm', + }, + meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === 'يېرىم كېچە' || + meridiem === 'سەھەر' || + meridiem === 'چۈشتىن بۇرۇن' + ) { + return hour; + } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return 'يېرىم كېچە'; + } else if (hm < 900) { + return 'سەھەر'; + } else if (hm < 1130) { + return 'چۈشتىن بۇرۇن'; + } else if (hm < 1230) { + return 'چۈش'; + } else if (hm < 1800) { + return 'چۈشتىن كېيىن'; + } else { + return 'كەچ'; + } + }, + calendar: { + sameDay: '[بۈگۈن سائەت] LT', + nextDay: '[ئەتە سائەت] LT', + nextWeek: '[كېلەركى] dddd [سائەت] LT', + lastDay: '[تۆنۈگۈن] LT', + lastWeek: '[ئالدىنقى] dddd [سائەت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s كېيىن', + past: '%s بۇرۇن', + s: 'نەچچە سېكونت', + ss: '%d سېكونت', + m: 'بىر مىنۇت', + mm: '%d مىنۇت', + h: 'بىر سائەت', + hh: '%d سائەت', + d: 'بىر كۈن', + dd: '%d كۈن', + M: 'بىر ئاي', + MM: '%d ئاي', + y: 'بىر يىل', + yy: '%d يىل', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-كۈنى'; + case 'w': + case 'W': + return number + '-ھەپتە'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/uk.js b/node_modules/moment/src/locale/uk.js new file mode 100644 index 0000000..670ffcc --- /dev/null +++ b/node_modules/moment/src/locale/uk.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', + mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', + hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин', + dd: 'день_дні_днів', + MM: 'місяць_місяці_місяців', + yy: 'рік_роки_років', + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split( + '_' + ), + accusative: + 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split( + '_' + ), + genitive: + 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[ВвУу]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; +} +function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; +} + +export default moment.defineLocale('uk', { + months: { + format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split( + '_' + ), + standalone: + 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split( + '_' + ), + }, + monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY р.', + LLL: 'D MMMM YYYY р., HH:mm', + LLLL: 'dddd, D MMMM YYYY р., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'за %s', + past: '%s тому', + s: 'декілька секунд', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: 'годину', + hh: relativeTimeWithPlural, + d: 'день', + dd: relativeTimeWithPlural, + M: 'місяць', + MM: relativeTimeWithPlural, + y: 'рік', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ur.js b/node_modules/moment/src/locale/ur.js new file mode 100644 index 0000000..ca5e252 --- /dev/null +++ b/node_modules/moment/src/locale/ur.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +import moment from '../moment'; + +var months = [ + 'جنوری', + 'فروری', + 'مارچ', + 'اپریل', + 'مئی', + 'جون', + 'جولائی', + 'اگست', + 'ستمبر', + 'اکتوبر', + 'نومبر', + 'دسمبر', + ], + days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ']; + +export default moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd، D MMMM YYYY HH:mm', + }, + meridiemParse: /صبح|شام/, + isPM: function (input) { + return 'شام' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return 'صبح'; + } + return 'شام'; + }, + calendar: { + sameDay: '[آج بوقت] LT', + nextDay: '[کل بوقت] LT', + nextWeek: 'dddd [بوقت] LT', + lastDay: '[گذشتہ روز بوقت] LT', + lastWeek: '[گذشتہ] dddd [بوقت] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s بعد', + past: '%s قبل', + s: 'چند سیکنڈ', + ss: '%d سیکنڈ', + m: 'ایک منٹ', + mm: '%d منٹ', + h: 'ایک گھنٹہ', + hh: '%d گھنٹے', + d: 'ایک دن', + dd: '%d دن', + M: 'ایک ماہ', + MM: '%d ماہ', + y: 'ایک سال', + yy: '%d سال', + }, + preparse: function (string) { + return string.replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '،'); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/uz-latn.js b/node_modules/moment/src/locale/uz-latn.js new file mode 100644 index 0000000..a2d577e --- /dev/null +++ b/node_modules/moment/src/locale/uz-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +import moment from '../moment'; + +export default moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/uz.js b/node_modules/moment/src/locale/uz.js new file mode 100644 index 0000000..03914dd --- /dev/null +++ b/node_modules/moment/src/locale/uz.js @@ -0,0 +1,51 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +import moment from '../moment'; + +export default moment.defineLocale('uz', { + months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split( + '_' + ), + monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Бугун соат] LT [да]', + nextDay: '[Эртага] LT [да]', + nextWeek: 'dddd [куни соат] LT [да]', + lastDay: '[Кеча соат] LT [да]', + lastWeek: '[Утган] dddd [куни соат] LT [да]', + sameElse: 'L', + }, + relativeTime: { + future: 'Якин %s ичида', + past: 'Бир неча %s олдин', + s: 'фурсат', + ss: '%d фурсат', + m: 'бир дакика', + mm: '%d дакика', + h: 'бир соат', + hh: '%d соат', + d: 'бир кун', + dd: '%d кун', + M: 'бир ой', + MM: '%d ой', + y: 'бир йил', + yy: '%d йил', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/vi.js b/node_modules/moment/src/locale/vi.js new file mode 100644 index 0000000..2b11cf6 --- /dev/null +++ b/node_modules/moment/src/locale/vi.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +import moment from '../moment'; + +export default moment.defineLocale('vi', { + months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [năm] YYYY', + LLL: 'D MMMM [năm] YYYY HH:mm', + LLLL: 'dddd, D MMMM [năm] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần trước lúc] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s tới', + past: '%s trước', + s: 'vài giây', + ss: '%d giây', + m: 'một phút', + mm: '%d phút', + h: 'một giờ', + hh: '%d giờ', + d: 'một ngày', + dd: '%d ngày', + w: 'một tuần', + ww: '%d tuần', + M: 'một tháng', + MM: '%d tháng', + y: 'một năm', + yy: '%d năm', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/x-pseudo.js b/node_modules/moment/src/locale/x-pseudo.js new file mode 100644 index 0000000..90df555 --- /dev/null +++ b/node_modules/moment/src/locale/x-pseudo.js @@ -0,0 +1,73 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +import moment from '../moment'; + +export default moment.defineLocale('x-pseudo', { + months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split( + '_' + ), + monthsShort: + 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split( + '_' + ), + weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), + weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~ódá~ý át] LT', + nextDay: '[T~ómó~rró~w át] LT', + nextWeek: 'dddd [át] LT', + lastDay: '[Ý~ést~érdá~ý át] LT', + lastWeek: '[L~ást] dddd [át] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'í~ñ %s', + past: '%s á~gó', + s: 'á ~féw ~sécó~ñds', + ss: '%d s~écóñ~ds', + m: 'á ~míñ~úté', + mm: '%d m~íñú~tés', + h: 'á~ñ hó~úr', + hh: '%d h~óúrs', + d: 'á ~dáý', + dd: '%d d~áýs', + M: 'á ~móñ~th', + MM: '%d m~óñt~hs', + y: 'á ~ýéár', + yy: '%d ý~éárs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/yo.js b/node_modules/moment/src/locale/yo.js new file mode 100644 index 0000000..2fcb6e4 --- /dev/null +++ b/node_modules/moment/src/locale/yo.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +import moment from '../moment'; + +export default moment.defineLocale('yo', { + months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split( + '_' + ), + monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), + weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), + weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), + weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Ònì ni] LT', + nextDay: '[Ọ̀la ni] LT', + nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", + lastDay: '[Àna ni] LT', + lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ní %s', + past: '%s kọjá', + s: 'ìsẹjú aayá die', + ss: 'aayá %d', + m: 'ìsẹjú kan', + mm: 'ìsẹjú %d', + h: 'wákati kan', + hh: 'wákati %d', + d: 'ọjọ́ kan', + dd: 'ọjọ́ %d', + M: 'osù kan', + MM: 'osù %d', + y: 'ọdún kan', + yy: 'ọdún %d', + }, + dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, + ordinal: 'ọjọ́ %d', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/zh-cn.js b/node_modules/moment/src/locale/zh-cn.js new file mode 100644 index 0000000..2345ee6 --- /dev/null +++ b/node_modules/moment/src/locale/zh-cn.js @@ -0,0 +1,120 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +import moment from '../moment'; + +export default moment.defineLocale('zh-cn', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日Ah点mm分', + LLLL: 'YYYY年M月D日ddddAh点mm分', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[下]dddLT'; + } else { + return '[本]dddLT'; + } + }, + lastDay: '[昨天]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[上]dddLT'; + } else { + return '[本]dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime: { + future: '%s后', + past: '%s前', + s: '几秒', + ss: '%d 秒', + m: '1 分钟', + mm: '%d 分钟', + h: '1 小时', + hh: '%d 小时', + d: '1 天', + dd: '%d 天', + w: '1 周', + ww: '%d 周', + M: '1 个月', + MM: '%d 个月', + y: '1 年', + yy: '%d 年', + }, + week: { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow: 1, // Monday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/zh-hk.js b/node_modules/moment/src/locale/zh-hk.js new file mode 100644 index 0000000..78a1019 --- /dev/null +++ b/node_modules/moment/src/locale/zh-hk.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +import moment from '../moment'; + +export default moment.defineLocale('zh-hk', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1200) { + return '上午'; + } else if (hm === 1200) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天]LT', + nextDay: '[明天]LT', + nextWeek: '[下]ddddLT', + lastDay: '[昨天]LT', + lastWeek: '[上]ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/src/locale/zh-mo.js b/node_modules/moment/src/locale/zh-mo.js new file mode 100644 index 0000000..9ed795d --- /dev/null +++ b/node_modules/moment/src/locale/zh-mo.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +import moment from '../moment'; + +export default moment.defineLocale('zh-mo', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s內', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/src/locale/zh-tw.js b/node_modules/moment/src/locale/zh-tw.js new file mode 100644 index 0000000..aa98ab1 --- /dev/null +++ b/node_modules/moment/src/locale/zh-tw.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +import moment from '../moment'; + +export default moment.defineLocale('zh-tw', { + months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split( + '_' + ), + monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split( + '_' + ), + weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin: '日_一_二_三_四_五_六'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY年M月D日', + LLL: 'YYYY年M月D日 HH:mm', + LLLL: 'YYYY年M月D日dddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY年M月D日', + lll: 'YYYY年M月D日 HH:mm', + llll: 'YYYY年M月D日dddd HH:mm', + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar: { + sameDay: '[今天] LT', + nextDay: '[明天] LT', + nextWeek: '[下]dddd LT', + lastDay: '[昨天] LT', + lastWeek: '[上]dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '週'; + default: + return number; + } + }, + relativeTime: { + future: '%s後', + past: '%s前', + s: '幾秒', + ss: '%d 秒', + m: '1 分鐘', + mm: '%d 分鐘', + h: '1 小時', + hh: '%d 小時', + d: '1 天', + dd: '%d 天', + M: '1 個月', + MM: '%d 個月', + y: '1 年', + yy: '%d 年', + }, +}); diff --git a/node_modules/moment/src/moment.js b/node_modules/moment/src/moment.js new file mode 100644 index 0000000..f2ec350 --- /dev/null +++ b/node_modules/moment/src/moment.js @@ -0,0 +1,93 @@ +//! moment.js +//! version : 2.30.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +import { hooks as moment, setHookCallback } from './lib/utils/hooks'; + +moment.version = '2.30.1'; + +import { + min, + max, + now, + isMoment, + momentPrototype as fn, + createUTC as utc, + createUnix as unix, + createLocal as local, + createInvalid as invalid, + createInZone as parseZone, +} from './lib/moment/moment'; + +import { getCalendarFormat } from './lib/moment/calendar'; + +import { + defineLocale, + updateLocale, + getSetGlobalLocale as locale, + getLocale as localeData, + listLocales as locales, + listMonths as months, + listMonthsShort as monthsShort, + listWeekdays as weekdays, + listWeekdaysMin as weekdaysMin, + listWeekdaysShort as weekdaysShort, +} from './lib/locale/locale'; + +import { + isDuration, + createDuration as duration, + getSetRelativeTimeRounding as relativeTimeRounding, + getSetRelativeTimeThreshold as relativeTimeThreshold, +} from './lib/duration/duration'; + +import { normalizeUnits } from './lib/units/units'; + +import isDate from './lib/utils/is-date'; + +setHookCallback(local); + +moment.fn = fn; +moment.min = min; +moment.max = max; +moment.now = now; +moment.utc = utc; +moment.unix = unix; +moment.months = months; +moment.isDate = isDate; +moment.locale = locale; +moment.invalid = invalid; +moment.duration = duration; +moment.isMoment = isMoment; +moment.weekdays = weekdays; +moment.parseZone = parseZone; +moment.localeData = localeData; +moment.isDuration = isDuration; +moment.monthsShort = monthsShort; +moment.weekdaysMin = weekdaysMin; +moment.defineLocale = defineLocale; +moment.updateLocale = updateLocale; +moment.locales = locales; +moment.weekdaysShort = weekdaysShort; +moment.normalizeUnits = normalizeUnits; +moment.relativeTimeRounding = relativeTimeRounding; +moment.relativeTimeThreshold = relativeTimeThreshold; +moment.calendarFormat = getCalendarFormat; +moment.prototype = fn; + +// currently HTML5 input type only supports 24-hour formats +moment.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // +}; + +export default moment; diff --git a/node_modules/moment/ts3.1-typings/moment.d.ts b/node_modules/moment/ts3.1-typings/moment.d.ts new file mode 100644 index 0000000..51fe8c2 --- /dev/null +++ b/node_modules/moment/ts3.1-typings/moment.d.ts @@ -0,0 +1,785 @@ +/** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ +declare function moment(inp?: moment.MomentInput, strict?: boolean): moment.Moment; +/** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ +declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, strict?: boolean): moment.Moment; +/** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ +declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, language?: string, strict?: boolean): moment.Moment; + +declare namespace moment { + type RelativeTimeKey = 's' | 'ss' | 'm' | 'mm' | 'h' | 'hh' | 'd' | 'dd' | 'w' | 'ww' | 'M' | 'MM' | 'y' | 'yy'; + type CalendarKey = 'sameDay' | 'nextDay' | 'lastDay' | 'nextWeek' | 'lastWeek' | 'sameElse' | string; + type LongDateFormatKey = 'LTS' | 'LT' | 'L' | 'LL' | 'LLL' | 'LLLL' | 'lts' | 'lt' | 'l' | 'll' | 'lll' | 'llll'; + + interface Locale { + calendar(key?: CalendarKey, m?: Moment, now?: Moment): string; + + longDateFormat(key: LongDateFormatKey): string; + invalidDate(): string; + ordinal(n: number): string; + + preparse(inp: string): string; + postformat(inp: string): string; + relativeTime(n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean): string; + pastFuture(diff: number, absRelTime: string): string; + set(config: Object): void; + + months(): string[]; + months(m: Moment, format?: string): string; + monthsShort(): string[]; + monthsShort(m: Moment, format?: string): string; + monthsParse(monthName: string, format: string, strict: boolean): number; + monthsRegex(strict: boolean): RegExp; + monthsShortRegex(strict: boolean): RegExp; + + week(m: Moment): number; + firstDayOfYear(): number; + firstDayOfWeek(): number; + + weekdays(): string[]; + weekdays(m: Moment, format?: string): string; + weekdaysMin(): string[]; + weekdaysMin(m: Moment): string; + weekdaysShort(): string[]; + weekdaysShort(m: Moment): string; + weekdaysParse(weekdayName: string, format: string, strict: boolean): number; + weekdaysRegex(strict: boolean): RegExp; + weekdaysShortRegex(strict: boolean): RegExp; + weekdaysMinRegex(strict: boolean): RegExp; + + isPM(input: string): boolean; + meridiem(hour: number, minute: number, isLower: boolean): string; + } + + interface StandaloneFormatSpec { + format: string[]; + standalone: string[]; + isFormat?: RegExp; + } + + interface WeekSpec { + dow: number; + doy?: number; + } + + type CalendarSpecVal = string | ((m?: MomentInput, now?: Moment) => string); + interface CalendarSpec { + sameDay?: CalendarSpecVal; + nextDay?: CalendarSpecVal; + lastDay?: CalendarSpecVal; + nextWeek?: CalendarSpecVal; + lastWeek?: CalendarSpecVal; + sameElse?: CalendarSpecVal; + + // any additional properties might be used with moment.calendarFormat + [x: string]: CalendarSpecVal | undefined; + } + + type RelativeTimeSpecVal = ( + string | + ((n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean) => string) + ); + type RelativeTimeFuturePastVal = string | ((relTime: string) => string); + + interface RelativeTimeSpec { + future?: RelativeTimeFuturePastVal; + past?: RelativeTimeFuturePastVal; + s?: RelativeTimeSpecVal; + ss?: RelativeTimeSpecVal; + m?: RelativeTimeSpecVal; + mm?: RelativeTimeSpecVal; + h?: RelativeTimeSpecVal; + hh?: RelativeTimeSpecVal; + d?: RelativeTimeSpecVal; + dd?: RelativeTimeSpecVal; + w?: RelativeTimeSpecVal; + ww?: RelativeTimeSpecVal; + M?: RelativeTimeSpecVal; + MM?: RelativeTimeSpecVal; + y?: RelativeTimeSpecVal; + yy?: RelativeTimeSpecVal; + } + + interface LongDateFormatSpec { + LTS: string; + LT: string; + L: string; + LL: string; + LLL: string; + LLLL: string; + + // lets forget for a sec that any upper/lower permutation will also work + lts?: string; + lt?: string; + l?: string; + ll?: string; + lll?: string; + llll?: string; + } + + type MonthWeekdayFn = (momentToFormat: Moment, format?: string) => string; + type WeekdaySimpleFn = (momentToFormat: Moment) => string; + + interface LocaleSpecification { + months?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + monthsShort?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + + weekdays?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + weekdaysShort?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + weekdaysMin?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + + meridiemParse?: RegExp; + meridiem?: (hour: number, minute:number, isLower: boolean) => string; + + isPM?: (input: string) => boolean; + + longDateFormat?: LongDateFormatSpec; + calendar?: CalendarSpec; + relativeTime?: RelativeTimeSpec; + invalidDate?: string; + ordinal?: (n: number) => string; + ordinalParse?: RegExp; + + week?: WeekSpec; + + // Allow anything: in general any property that is passed as locale spec is + // put in the locale object so it can be used by locale functions + [x: string]: any; + } + + interface MomentObjectOutput { + years: number; + /* One digit */ + months: number; + /* Day of the month */ + date: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; + } + interface argThresholdOpts { + ss?: number; + s?: number; + m?: number; + h?: number; + d?: number; + w?: number | null; + M?: number; + } + + interface Duration { + clone(): Duration; + + humanize(argWithSuffix?: boolean, argThresholds?: argThresholdOpts): string; + + humanize(argThresholds?: argThresholdOpts): string; + + abs(): Duration; + + as(units: unitOfTime.Base): number; + get(units: unitOfTime.Base): number; + + milliseconds(): number; + asMilliseconds(): number; + + seconds(): number; + asSeconds(): number; + + minutes(): number; + asMinutes(): number; + + hours(): number; + asHours(): number; + + days(): number; + asDays(): number; + + weeks(): number; + asWeeks(): number; + + months(): number; + asMonths(): number; + + years(): number; + asYears(): number; + + add(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + subtract(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + locale(): string; + locale(locale: LocaleSpecifier): Duration; + localeData(): Locale; + + toISOString(): string; + toJSON(): string; + + isValid(): boolean; + + /** + * @deprecated since version 2.8.0 + */ + lang(locale: LocaleSpecifier): Moment; + /** + * @deprecated since version 2.8.0 + */ + lang(): Locale; + /** + * @deprecated + */ + toIsoString(): string; + } + + interface MomentRelativeTime { + future: any; + past: any; + s: any; + ss: any; + m: any; + mm: any; + h: any; + hh: any; + d: any; + dd: any; + M: any; + MM: any; + y: any; + yy: any; + } + + interface MomentLongDateFormat { + L: string; + LL: string; + LLL: string; + LLLL: string; + LT: string; + LTS: string; + + l?: string; + ll?: string; + lll?: string; + llll?: string; + lt?: string; + lts?: string; + } + + interface MomentParsingFlags { + empty: boolean; + unusedTokens: string[]; + unusedInput: string[]; + overflow: number; + charsLeftOver: number; + nullInput: boolean; + invalidMonth: string | null; + invalidFormat: boolean; + userInvalidated: boolean; + iso: boolean; + parsedDateParts: any[]; + meridiem: string | null; + } + + interface MomentParsingFlagsOpt { + empty?: boolean; + unusedTokens?: string[]; + unusedInput?: string[]; + overflow?: number; + charsLeftOver?: number; + nullInput?: boolean; + invalidMonth?: string; + invalidFormat?: boolean; + userInvalidated?: boolean; + iso?: boolean; + parsedDateParts?: any[]; + meridiem?: string | null; + } + + interface MomentBuiltinFormat { + __momentBuiltinFormatBrand: any; + } + + type MomentFormatSpecification = string | MomentBuiltinFormat | (string | MomentBuiltinFormat)[]; + + namespace unitOfTime { + type Base = ( + "year" | "years" | "y" | + "month" | "months" | "M" | + "week" | "weeks" | "w" | + "day" | "days" | "d" | + "hour" | "hours" | "h" | + "minute" | "minutes" | "m" | + "second" | "seconds" | "s" | + "millisecond" | "milliseconds" | "ms" + ); + + type _quarter = "quarter" | "quarters" | "Q"; + type _isoWeek = "isoWeek" | "isoWeeks" | "W"; + type _date = "date" | "dates" | "D"; + type DurationConstructor = Base | _quarter; + + type DurationAs = Base; + + type StartOf = Base | _quarter | _isoWeek | _date | null; + + type Diff = Base | _quarter; + + type MomentConstructor = Base | _date; + + type All = Base | _quarter | _isoWeek | _date | + "weekYear" | "weekYears" | "gg" | + "isoWeekYear" | "isoWeekYears" | "GG" | + "dayOfYear" | "dayOfYears" | "DDD" | + "weekday" | "weekdays" | "e" | + "isoWeekday" | "isoWeekdays" | "E"; + } + + interface MomentInputObject { + years?: number; + year?: number; + y?: number; + + months?: number; + month?: number; + M?: number; + + days?: number; + day?: number; + d?: number; + + dates?: number; + date?: number; + D?: number; + + hours?: number; + hour?: number; + h?: number; + + minutes?: number; + minute?: number; + m?: number; + + seconds?: number; + second?: number; + s?: number; + + milliseconds?: number; + millisecond?: number; + ms?: number; + } + + interface DurationInputObject extends MomentInputObject { + quarters?: number; + quarter?: number; + Q?: number; + + weeks?: number; + week?: number; + w?: number; + } + + interface MomentSetObject extends MomentInputObject { + weekYears?: number; + weekYear?: number; + gg?: number; + + isoWeekYears?: number; + isoWeekYear?: number; + GG?: number; + + quarters?: number; + quarter?: number; + Q?: number; + + weeks?: number; + week?: number; + w?: number; + + isoWeeks?: number; + isoWeek?: number; + W?: number; + + dayOfYears?: number; + dayOfYear?: number; + DDD?: number; + + weekdays?: number; + weekday?: number; + e?: number; + + isoWeekdays?: number; + isoWeekday?: number; + E?: number; + } + + interface FromTo { + from: MomentInput; + to: MomentInput; + } + + type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | null | undefined; + type DurationInputArg1 = Duration | number | string | FromTo | DurationInputObject | null | undefined; + type DurationInputArg2 = unitOfTime.DurationConstructor; + type LocaleSpecifier = string | Moment | Duration | string[] | boolean; + + interface MomentCreationData { + input: MomentInput; + format?: MomentFormatSpecification; + locale: Locale; + isUTC: boolean; + strict?: boolean; + } + + interface Moment extends Object { + format(format?: string): string; + + startOf(unitOfTime: unitOfTime.StartOf): Moment; + endOf(unitOfTime: unitOfTime.StartOf): Moment; + + add(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + add(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + subtract(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + subtract(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + calendar(): string; + calendar(formats: CalendarSpec): string; + calendar(time?: MomentInput, formats?: CalendarSpec): string; + + clone(): Moment; + + /** + * @return Unix timestamp in milliseconds + */ + valueOf(): number; + + // current date/time in local mode + local(keepLocalTime?: boolean): Moment; + isLocal(): boolean; + + // current date/time in UTC mode + utc(keepLocalTime?: boolean): Moment; + isUTC(): boolean; + /** + * @deprecated use isUTC + */ + isUtc(): boolean; + + parseZone(): Moment; + isValid(): boolean; + invalidAt(): number; + + hasAlignedHourOffset(other?: MomentInput): boolean; + + creationData(): MomentCreationData; + parsingFlags(): MomentParsingFlags; + + year(y: number): Moment; + year(): number; + /** + * @deprecated use year(y) + */ + years(y: number): Moment; + /** + * @deprecated use year() + */ + years(): number; + quarter(): number; + quarter(q: number): Moment; + quarters(): number; + quarters(q: number): Moment; + month(M: number|string): Moment; + month(): number; + /** + * @deprecated use month(M) + */ + months(M: number|string): Moment; + /** + * @deprecated use month() + */ + months(): number; + day(d: number|string): Moment; + day(): number; + days(d: number|string): Moment; + days(): number; + date(d: number): Moment; + date(): number; + /** + * @deprecated use date(d) + */ + dates(d: number): Moment; + /** + * @deprecated use date() + */ + dates(): number; + hour(h: number): Moment; + hour(): number; + hours(h: number): Moment; + hours(): number; + minute(m: number): Moment; + minute(): number; + minutes(m: number): Moment; + minutes(): number; + second(s: number): Moment; + second(): number; + seconds(s: number): Moment; + seconds(): number; + millisecond(ms: number): Moment; + millisecond(): number; + milliseconds(ms: number): Moment; + milliseconds(): number; + weekday(): number; + weekday(d: number): Moment; + isoWeekday(): number; + isoWeekday(d: number|string): Moment; + weekYear(): number; + weekYear(d: number): Moment; + isoWeekYear(): number; + isoWeekYear(d: number): Moment; + week(): number; + week(d: number): Moment; + weeks(): number; + weeks(d: number): Moment; + isoWeek(): number; + isoWeek(d: number): Moment; + isoWeeks(): number; + isoWeeks(d: number): Moment; + weeksInYear(): number; + isoWeeksInYear(): number; + isoWeeksInISOWeekYear(): number; + dayOfYear(): number; + dayOfYear(d: number): Moment; + + from(inp: MomentInput, suffix?: boolean): string; + to(inp: MomentInput, suffix?: boolean): string; + fromNow(withoutSuffix?: boolean): string; + toNow(withoutPrefix?: boolean): string; + + diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; + + toArray(): [number, number, number, number, number, number, number]; + toDate(): Date; + toISOString(keepOffset?: boolean): string; + inspect(): string; + toJSON(): string; + unix(): number; + + isLeapYear(): boolean; + /** + * @deprecated in favor of utcOffset + */ + zone(): number; + zone(b: number|string): Moment; + utcOffset(): number; + utcOffset(b: number|string, keepLocalTime?: boolean): Moment; + isUtcOffset(): boolean; + daysInMonth(): number; + isDST(): boolean; + + zoneAbbr(): string; + zoneName(): string; + + isBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSame(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isBetween(a: MomentInput, b: MomentInput, granularity?: unitOfTime.StartOf, inclusivity?: "()" | "[)" | "(]" | "[]"): boolean; + + /** + * @deprecated as of 2.8.0, use locale + */ + lang(language: LocaleSpecifier): Moment; + /** + * @deprecated as of 2.8.0, use locale + */ + lang(): Locale; + + locale(): string; + locale(locale: LocaleSpecifier): Moment; + + localeData(): Locale; + + /** + * @deprecated no reliable implementation + */ + isDSTShifted(): boolean; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + get(unit: unitOfTime.All): number; + set(unit: unitOfTime.All, value: number): Moment; + set(objectLiteral: MomentSetObject): Moment; + + toObject(): MomentObjectOutput; + } + + export var version: string; + export var fn: Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ + export function utc(inp?: MomentInput, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function unix(timestamp: number): Moment; + + export function invalid(flags?: MomentParsingFlagsOpt): Moment; + export function isMoment(m: any): m is Moment; + export function isDate(m: any): m is Date; + export function isDuration(d: any): d is Duration; + + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string): string; + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string, definition?: Locale): string; + + export function locale(language?: string): string; + export function locale(language?: string[]): string; + export function locale(language?: string, definition?: LocaleSpecification | null | undefined): string; + + export function localeData(key?: string | string[]): Locale; + + export function duration(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + // NOTE(constructor): Same as moment constructor + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function months(): string[]; + export function months(index: number): string; + export function months(format: string): string[]; + export function months(format: string, index: number): string; + export function monthsShort(): string[]; + export function monthsShort(index: number): string; + export function monthsShort(format: string): string[]; + export function monthsShort(format: string, index: number): string; + + export function weekdays(): string[]; + export function weekdays(index: number): string; + export function weekdays(format: string): string[]; + export function weekdays(format: string, index: number): string; + export function weekdays(localeSorted: boolean): string[]; + export function weekdays(localeSorted: boolean, index: number): string; + export function weekdays(localeSorted: boolean, format: string): string[]; + export function weekdays(localeSorted: boolean, format: string, index: number): string; + export function weekdaysShort(): string[]; + export function weekdaysShort(index: number): string; + export function weekdaysShort(format: string): string[]; + export function weekdaysShort(format: string, index: number): string; + export function weekdaysShort(localeSorted: boolean): string[]; + export function weekdaysShort(localeSorted: boolean, index: number): string; + export function weekdaysShort(localeSorted: boolean, format: string): string[]; + export function weekdaysShort(localeSorted: boolean, format: string, index: number): string; + export function weekdaysMin(): string[]; + export function weekdaysMin(index: number): string; + export function weekdaysMin(format: string): string[]; + export function weekdaysMin(format: string, index: number): string; + export function weekdaysMin(localeSorted: boolean): string[]; + export function weekdaysMin(localeSorted: boolean, index: number): string; + export function weekdaysMin(localeSorted: boolean, format: string): string[]; + export function weekdaysMin(localeSorted: boolean, format: string, index: number): string; + + export function min(moments: Moment[]): Moment; + export function min(...moments: Moment[]): Moment; + export function max(moments: Moment[]): Moment; + export function max(...moments: Moment[]): Moment; + + /** + * Returns unix time in milliseconds. Overwrite for profit. + */ + export function now(): number; + + export function defineLocale(language: string, localeSpec: LocaleSpecification | null): Locale; + export function updateLocale(language: string, localeSpec: LocaleSpecification | null): Locale; + + export function locales(): string[]; + + export function normalizeUnits(unit: unitOfTime.All): string; + export function relativeTimeThreshold(threshold: string): number | boolean; + export function relativeTimeThreshold(threshold: string, limit: number): boolean; + export function relativeTimeRounding(fn: (num: number) => number): boolean; + export function relativeTimeRounding(): (num: number) => number; + export function calendarFormat(m: Moment, now: Moment): string; + + export function parseTwoDigitYear(input: string): number; + /** + * Constant used to enable explicit ISO_8601 format parsing. + */ + export var ISO_8601: MomentBuiltinFormat; + export var RFC_2822: MomentBuiltinFormat; + + export var defaultFormat: string; + export var defaultFormatUtc: string; + + export var suppressDeprecationWarnings: boolean; + export var deprecationHandler: ((name: string | null, msg: string) => void) | null | undefined; + + export var HTML5_FMT: { + DATETIME_LOCAL: string, + DATETIME_LOCAL_SECONDS: string, + DATETIME_LOCAL_MS: string, + DATE: string, + TIME: string, + TIME_SECONDS: string, + TIME_MS: string, + WEEK: string, + MONTH: string + }; + +} + +export = moment; +export as namespace moment; diff --git a/package-lock.json b/package-lock.json index 2598a3d..d16473d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,22 @@ "packages": { "": { "dependencies": { - "@escook/request-miniprogram": "^0.2.1" + "@escook/request-miniprogram": "^0.2.1", + "moment": "^2.30.1" } }, "node_modules/@escook/request-miniprogram": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/@escook/request-miniprogram/-/request-miniprogram-0.2.1.tgz", "integrity": "sha512-ueWV5YsaEm/ycQZuEjMiA88GFMhfBQSjy9GrP9omy4xAQajkGTbYIlnhzsDfWzRPmRC1fKmAiKMrCVcgS+SHcQ==" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } } }, "dependencies": { @@ -19,6 +28,11 @@ "version": "0.2.1", "resolved": "https://registry.npmmirror.com/@escook/request-miniprogram/-/request-miniprogram-0.2.1.tgz", "integrity": "sha512-ueWV5YsaEm/ycQZuEjMiA88GFMhfBQSjy9GrP9omy4xAQajkGTbYIlnhzsDfWzRPmRC1fKmAiKMrCVcgS+SHcQ==" + }, + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" } } } diff --git a/package.json b/package.json index 01b8aec..b979ab9 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { - "@escook/request-miniprogram": "^0.2.1" + "@escook/request-miniprogram": "^0.2.1", + "moment": "^2.30.1" } } diff --git a/pages.json b/pages.json index a67b0e0..7793487 100644 --- a/pages.json +++ b/pages.json @@ -1,34 +1,38 @@ { "easycom": { - "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" - }, - "pages": [ + "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [ { - "path" : "pages/rain/rain", - "style" : - { - "navigationBarTitleText": "", - "enablePullDownRefresh": false - } - - }, + "path": "pages/homeIndx/index", + "style": { + "navigationBarTitleText": "" + } + }, { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "" - // "navigationStyle": "custom" - } - } - ], - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "uni-app", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8", - "backgroundColorTop":"transparent", - "navigationStyle": "custom", - "app-plus": { - "background": "#efeff4" - } - } + "path": "pages/rain/rain", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "" + // "navigationStyle": "custom" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8", + "backgroundColorTop": "transparent", + "navigationStyle": "custom", + "app-plus": { + "background": "#efeff4" + } + } } diff --git a/pages/gqzq/index.js b/pages/gqzq/index.js new file mode 100644 index 0000000..e69de29 diff --git a/pages/homeIndx/index.vue b/pages/homeIndx/index.vue new file mode 100644 index 0000000..e7c1103 --- /dev/null +++ b/pages/homeIndx/index.vue @@ -0,0 +1,550 @@ + + + + + diff --git a/pages/index/index.vue b/pages/index/index.vue index 64b9ced..d418542 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,41 +1,388 @@ - diff --git a/pages/rain/rain.vue b/pages/rain/rain.vue index 707ee54..a1d72f9 100644 --- a/pages/rain/rain.vue +++ b/pages/rain/rain.vue @@ -1,10 +1,7 @@ - + - \ No newline at end of file + diff --git a/static/tabs/bigImg.png b/static/tabs/bigImg.png new file mode 100644 index 0000000000000000000000000000000000000000..abd2e84e152dc97d671ee2eabdef51410f30b754 GIT binary patch literal 650922 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Â!|q~0!~8sn3p)v->E1%pXcN*>YoM#4Z4TuZ}eB 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

yEo9+NG%~h(gViem${v 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�ln!<2H&Q!h7Qlk5Kt?F2;>3GU(%PdWbghTgT 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∓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%0DV{58 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 gCg^^QyW~ozS50ZHBtiMZ(Qg8HD}GPm|o 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 literal 0 HcmV?d00001 diff --git a/static/tabs/my2_icon@2x.png b/static/tabs/my2_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..76c1469064f6ee8bcdefe39b3b07182c99fd482b GIT binary patch literal 6242 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 M07*qoM6N<$f_WR)DgXcg literal 0 HcmV?d00001 diff --git a/static/tabs/my_icon@2x.png b/static/tabs/my_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..71a3e5d2ebcfcabad69138c3e0e0d105bede41f8 GIT binary patch literal 19958 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 BefR(X literal 0 HcmV?d00001 diff --git a/static/tabs/phone2_icon@2x.png b/static/tabs/phone2_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0349c2ec63e3ca9f41cee9964fd93d68c148788b GIT binary patch literal 20396 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±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 b5%~WBPHbOvDk7>b00000NkvXXu0mjfDd{4N literal 0 HcmV?d00001 diff --git a/static/tabs/phone_icon@2x.png b/static/tabs/phone_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..683c0e45fe0a6a7879f93616ac266db74ce0133d GIT binary patch literal 3745 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 LNkvXXu0mjf1(6_d literal 0 HcmV?d00001 diff --git a/static/tabs/shouye.png b/static/tabs/shouye.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5f7e0777f901363fd6c19f10c3f46535ad5144 GIT binary patch literal 509 zcmVPx$w@E}nR5(wq)V*s|K@`T}-+PV8k_3~m@dL%6#>CFbLi`8pB#n(0qOsLh1A+*G zu@u|v)y6bw6dP+R!OGUS3K17SvP2|d6Iu3^xx~et+|81WQ(f-NdFITS!-)Sp)XB3w zX!9(rlejEtb-S2tLEB?>^HOkn6MUDz1xZWo(6-=j`>Yx~2M$KT-<&YjE4|4>bHR&?cy6xZc;J`FOqsw5|0z_kcU0WF6{j;C`WpyOP3pHkv_|iu;F(JT+YGbW#7# z3l{o&xgx371b?jga9_d;#F?F7&9&m~MxCks1FB>huGCxxPIQI+J*p@V7j!ZMtLr{b zgGa!rZcxF8Jqb643VPM7;rBI{FxR>P5$S;eO}AXi*VWyDhXy0?%P)t%>n=k`kL-)U z&p&qu9vzOrr4^T)m!W9Lyf*AboWoliUXYHBMBt|Y=3Gi59v>Ug%~0@ zHa%I?lkoq2)mL%$3dIk{!^u&F%{sm)JMQy82Y8YdE(@y=00000NkvXXu0mjfa}w_4 literal 0 HcmV?d00001 diff --git a/static/tabs/spjk.png b/static/tabs/spjk.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb37fa316d9d648d1537e088a29831c708b2921 GIT binary patch literal 4853 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 literal 0 HcmV?d00001 diff --git a/static/tabs/water (1) 拷贝@2x.png b/static/tabs/water (1) 拷贝@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1080a75d90fcabc404ff4c9242206ebff4f24010 GIT binary patch literal 24807 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 LNkvXXu0mjf&#uEJ literal 0 HcmV?d00001 diff --git a/static/tabs/ysgzq.png b/static/tabs/ysgzq.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d41b02a2bfed59f88134a33d7da6ab10db1319 GIT binary patch literal 2753 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 Hu0mjfb_g*) literal 0 HcmV?d00001 diff --git a/static/tabs/头像_icon@2x.png b/static/tabs/头像_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..088f2605920123a52adf13e07818d363546fbad7 GIT binary patch literal 36144 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 literal 0 HcmV?d00001 diff --git a/static/tabs/首页@2x.png b/static/tabs/首页@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..021b1cdee7348eedac08b9538f2ef21370ab699c GIT binary patch literal 4289 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 Y6tlIh<)@oW&YuKeZRvoanqRx~KWc3rxBvhE literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map index 2bb729b..d1c4546 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["uni-app:///main.js",null,"webpack:///D:/xffxkh-app/App.vue?7a23","uni-app:///App.vue","webpack:///D:/xffxkh-app/App.vue?3af4","webpack:///D:/xffxkh-app/App.vue?f132"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","Vue","use","uView","config","productionTip","uni","$http","baseUrl","beforeRequest","options","showLoading","title","url","indexOf","header","Authorization","store","state","address","token","console","log","afterRequest","hideLoading","$showMsg","duration","showToast","icon","App","mpType","app","$mount","onLaunch","onShow","onHide"],"mappings":";;;;;;;;;;;;;;AAAA;AAIA;AACA;AAEA;AACA;AAAmD;AAAA;AAPnD;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAI1DC,YAAG,CAACC,GAAG,CAACC,gBAAK,CAAC;AAIdF,YAAG,CAACG,MAAM,CAACC,aAAa,GAAG,KAAK;AAChCC,GAAG,CAACC,KAAK,GAAEA,yBAAK;AAChBA,yBAAK,CAACC,OAAO,GAAC,kCAAkC;AAChD;AACAD,yBAAK,CAACE,aAAa,GAAC,UAASC,OAAO,EAAC;EACjCJ,GAAG,CAACK,WAAW,CAAC;IACdC,KAAK,EAAC;EACR,CAAC,CAAC;EACF,IAAGF,OAAO,CAACG,GAAG,CAACC,OAAO,CAAC,MAAM,CAAC,KAAI,CAAC,CAAC,EAAC;IACnCJ,OAAO,CAACK,MAAM,GAAC;MACbC,aAAa,EAACC,KAAK,CAACC,KAAK,CAACC,OAAO,CAACC;IACpC,CAAC;IACDC,OAAO,CAACC,GAAG,CAACZ,OAAO,CAACK,MAAM,CAAC;EAC7B;AACJ,CAAC;AACD;AACAR,yBAAK,CAACgB,YAAY,GAAC,UAASb,OAAO,EAAC;EAClCJ,GAAG,CAACkB,WAAW,EAAE;AACnB,CAAC;AACDlB,GAAG,CAACmB,QAAQ,GAAC,YAAuC;EAAA,IAA9Bb,KAAK,uEAAC,SAAS;EAAA,IAACc,QAAQ,uEAAC,IAAI;EACjD,OAAOpB,GAAG,CAACqB,SAAS,CAAC;IACnBf,KAAK,EAALA,KAAK;IACLc,QAAQ,EAARA,QAAQ;IACRE,IAAI,EAAC;EACP,CAAC,CAAC;AACJ,CAAC;AACD3B,YAAG,CAACG,MAAM,CAACC,aAAa,GAAG,KAAK;AAChCwB,YAAG,CAACC,MAAM,GAAG,KAAK;AAElB,IAAMC,GAAG,GAAG,IAAI9B,YAAG,mBACZ4B,YAAG,EACR;AACF,UAAAE,GAAG,EAACC,MAAM,EAAE,C;;;;;;;;;;;;;AC1CZ;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACc;;;AAGhE;AAC0J;AAC1J,gBAAgB,6KAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAmjB,CAAgB,6mBAAG,EAAC,C;;;;;;;;;;;;;;;;;;eCCvkB;EACAC;IACAZ;EACA;EACAa;IACAb;EACA;EACAc;IACAd;EACA;AACA;AAAA,2B;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAA0jC,CAAgB,4lCAAG,EAAC,C;;;;;;;;;;;ACA9kC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';\r\n// @ts-ignore\r\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\r\n\r\nimport Vue from 'vue'\r\nimport uView from '@/uni_modules/uview-ui'\r\nVue.use(uView)\r\nimport App from './App'\r\nimport { $http } from '@escook/request-miniprogram'\r\n\r\nVue.config.productionTip = false\r\nuni.$http= $http\r\n$http.baseUrl=\"http://local.gunshiiot.com:18083\"\r\n// 请求拦截器\r\n$http.beforeRequest=function(options){\r\n uni.showLoading({\r\n title:\"数据加载中\",\r\n })\r\n if(options.url.indexOf('/my/') !==-1){\r\n options.header={\r\n Authorization:store.state.address.token\r\n }\r\n console.log(options.header);\r\n }\r\n}\r\n// 响应拦截器\r\n$http.afterRequest=function(options){\r\n uni.hideLoading()\r\n}\r\nuni.$showMsg=function(title='数据请求失败了',duration=1500){\r\n return uni.showToast({\r\n title,\r\n duration,\r\n icon:\"none\"\r\n })\r\n}\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import mod from \"-!../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1717048234099\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["uni-app:///main.js",null,"webpack:///E:/workspace/xffxkh-app/App.vue?8f88","uni-app:///App.vue","webpack:///E:/workspace/xffxkh-app/App.vue?e83d","webpack:///E:/workspace/xffxkh-app/App.vue?67c1"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","Vue","use","uView","config","productionTip","uni","$http","baseUrl","beforeRequest","options","showLoading","title","url","indexOf","header","Authorization","store","state","address","token","console","log","afterRequest","hideLoading","$showMsg","duration","showToast","icon","App","mpType","app","$mount","onLaunch","onShow","onHide"],"mappings":";;;;;;;;;;;;;;AAAA;AAGA;AACA;AAEA;AACA;AAAmD;AAAA;AANnD;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,YAAG,CAACC,GAAG,CAACC,gBAAK,CAAC;AAIdF,YAAG,CAACG,MAAM,CAACC,aAAa,GAAG,KAAK;AAChCC,GAAG,CAACC,KAAK,GAAGA,yBAAK;AACjBA,yBAAK,CAACC,OAAO,GAAG,kCAAkC;AAClD;AACAD,yBAAK,CAACE,aAAa,GAAG,UAAUC,OAAO,EAAE;EACvCJ,GAAG,CAACK,WAAW,CAAC;IACdC,KAAK,EAAE;EACT,CAAC,CAAC;EACF,IAAIF,OAAO,CAACG,GAAG,CAACC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;IACtCJ,OAAO,CAACK,MAAM,GAAG;MACfC,aAAa,EAAEC,KAAK,CAACC,KAAK,CAACC,OAAO,CAACC;IACrC,CAAC;IACDC,OAAO,CAACC,GAAG,CAACZ,OAAO,CAACK,MAAM,CAAC;EAC7B;EACA,IAAIL,OAAO,CAACG,GAAG,CAACC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE;IAC/CJ,OAAO,CAACK,MAAM,GAAG;MACf,UAAU,EAAE;IACd,CAAC;EACH;AACF,CAAC;AACD;AACAR,yBAAK,CAACgB,YAAY,GAAG,UAAUb,OAAO,EAAE;EACtCJ,GAAG,CAACkB,WAAW,EAAE;AACnB,CAAC;AACDlB,GAAG,CAACmB,QAAQ,GAAG,YAA8C;EAAA,IAApCb,KAAK,uEAAG,SAAS;EAAA,IAAEc,QAAQ,uEAAG,IAAI;EACzD,OAAOpB,GAAG,CAACqB,SAAS,CAAC;IACnBf,KAAK,EAALA,KAAK;IACLc,QAAQ,EAARA,QAAQ;IACRE,IAAI,EAAE;EACR,CAAC,CAAC;AACJ,CAAC;AACD3B,YAAG,CAACG,MAAM,CAACC,aAAa,GAAG,KAAK;AAChCwB,YAAG,CAACC,MAAM,GAAG,KAAK;AAElB,IAAMC,GAAG,GAAG,IAAI9B,YAAG,mBACd4B,YAAG,EACN;AACF,UAAAE,GAAG,EAACC,MAAM,EAAE,C;;;;;;;;;;;;;AC9CZ;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACc;;;AAGhE;AAC4K;AAC5K,gBAAgB,qLAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAgoB,CAAgB,qpBAAG,EAAC,C;;;;;;;;;;;;;;;;;;eCCppB;EACAC;IACAZ;EACA;EACAa;IACAb;EACA;EACAc;IACAd;EACA;AACA;AAAA,2B;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAusC,CAAgB,oqCAAG,EAAC,C;;;;;;;;;;;ACA3tC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport uView from '@/uni_modules/uview-ui'\nVue.use(uView)\nimport App from './App'\nimport { $http } from '@escook/request-miniprogram'\n\nVue.config.productionTip = false\nuni.$http = $http\n$http.baseUrl = 'http://local.gunshiiot.com:18083'\n// 请求拦截器\n$http.beforeRequest = function (options) {\n uni.showLoading({\n title: '数据加载中'\n })\n if (options.url.indexOf('/my/') !== -1) {\n options.header = {\n Authorization: store.state.address.token\n }\n console.log(options.header)\n }\n if (options.url.indexOf('/getLoginInfo') !== -1) {\n options.header = {\n 'Gs-Token': '827C4B2AA67D4724B2677B0A708D5033'\n }\n }\n}\n// 响应拦截器\n$http.afterRequest = function (options) {\n uni.hideLoading()\n}\nuni.$showMsg = function (title = '数据请求失败了', duration = 1500) {\n return uni.showToast({\n title,\n duration,\n icon: 'none'\n })\n}\nVue.config.productionTip = false\nApp.mpType = 'app'\n\nconst app = new Vue({\n ...App\n})\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"","\n\n\n","import mod from \"-!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!C:\\\\myApp\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1717052960012\n var cssReload = require(\"C:/myApp/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"/\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map index d953f25..99ee94a 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -1 +1 @@ -{"version":3,"sources":[null],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,wMAAwM;QAC/N;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/uview-ui/components/u-icon/u-icon\":1,\"uni_modules/uni-link/components/uni-link/uni-link\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/uview-ui/components/u-icon/u-icon\":\"uni_modules/uview-ui/components/u-icon/u-icon\",\"uni_modules/uni-link/components/uni-link/uni-link\":\"uni_modules/uni-link/components/uni-link/uni-link\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["uni-app:///C:/myApp/HBuilderX/plugins/uniapp-cli/webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,gGAAgG;QACvH;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/uview-ui/components/u-icon/u-icon\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/uview-ui/components/u-icon/u-icon\":\"uni_modules/uview-ui/components/u-icon/u-icon\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map index 4cfd113..09ae1e2 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js?bc2e","webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?4ea4","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js?278c","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js?c135","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?9b42","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?6613","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?5a43","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js?c240","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js?9523","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js?a395","webpack:///./node_modules/@babel/runtime/helpers/typeof.js?7037","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js?e50d","webpack:///./node_modules/@babel/runtime/helpers/construct.js?b17c","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js?4a4b","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?6f8f","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?448a","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?2236","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?11b0","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?0676","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js?970b","webpack:///./node_modules/@babel/runtime/helpers/createClass.js?5bc3","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///node_modules/@escook/request-miniprogram/miniprogram_dist/index.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/@babel/runtime/regenerator/index.js?2eee","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js?7ec2","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js?c973","uni-app:///uni_modules/uview-ui/index.js","uni-app:///uni_modules/uview-ui/libs/mixin/mixin.js","uni-app:///uni_modules/uview-ui/libs/mixin/mpMixin.js","uni-app:///uni_modules/uview-ui/libs/luch-request/index.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/Request.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/dispatchRequest.js","uni-app:///uni_modules/uview-ui/libs/luch-request/adapters/index.js","uni-app:///uni_modules/uview-ui/libs/luch-request/helpers/buildURL.js","uni-app:///uni_modules/uview-ui/libs/luch-request/utils.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/buildFullPath.js","uni-app:///uni_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js","uni-app:///uni_modules/uview-ui/libs/luch-request/helpers/combineURLs.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/settle.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/InterceptorManager.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/mergeConfig.js","uni-app:///uni_modules/uview-ui/libs/luch-request/core/defaults.js","uni-app:///uni_modules/uview-ui/libs/luch-request/utils/clone.js","webpack:///./node_modules/buffer/index.js?b639","webpack:///./node_modules/base64-js/index.js?1fb5","webpack:///./node_modules/ieee754/index.js?9152","webpack:///./node_modules/isarray/index.js?e3db","uni-app:///uni_modules/uview-ui/libs/util/route.js","uni-app:///uni_modules/uview-ui/libs/function/colorGradient.js","uni-app:///uni_modules/uview-ui/libs/function/test.js","uni-app:///uni_modules/uview-ui/libs/function/debounce.js","uni-app:///uni_modules/uview-ui/libs/function/throttle.js","uni-app:///uni_modules/uview-ui/libs/function/index.js","uni-app:///uni_modules/uview-ui/libs/function/digit.js","webpack:///./node_modules/@babel/runtime/helpers/toArray.js?480f","uni-app:///uni_modules/uview-ui/libs/config/config.js","uni-app:///uni_modules/uview-ui/libs/config/props.js","uni-app:///uni_modules/uview-ui/libs/config/props/actionSheet.js","uni-app:///uni_modules/uview-ui/libs/config/props/album.js","uni-app:///uni_modules/uview-ui/libs/config/props/alert.js","uni-app:///uni_modules/uview-ui/libs/config/props/avatar.js","uni-app:///uni_modules/uview-ui/libs/config/props/avatarGroup.js","uni-app:///uni_modules/uview-ui/libs/config/props/backtop.js","uni-app:///uni_modules/uview-ui/libs/config/props/badge.js","uni-app:///uni_modules/uview-ui/libs/config/props/button.js","uni-app:///uni_modules/uview-ui/libs/config/props/calendar.js","uni-app:///uni_modules/uview-ui/libs/config/props/carKeyboard.js","uni-app:///uni_modules/uview-ui/libs/config/props/cell.js","uni-app:///uni_modules/uview-ui/libs/config/props/cellGroup.js","uni-app:///uni_modules/uview-ui/libs/config/props/checkbox.js","uni-app:///uni_modules/uview-ui/libs/config/props/checkboxGroup.js","uni-app:///uni_modules/uview-ui/libs/config/props/circleProgress.js","uni-app:///uni_modules/uview-ui/libs/config/props/code.js","uni-app:///uni_modules/uview-ui/libs/config/props/codeInput.js","uni-app:///uni_modules/uview-ui/libs/config/props/col.js","uni-app:///uni_modules/uview-ui/libs/config/props/collapse.js","uni-app:///uni_modules/uview-ui/libs/config/props/collapseItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/columnNotice.js","uni-app:///uni_modules/uview-ui/libs/config/props/countDown.js","uni-app:///uni_modules/uview-ui/libs/config/props/countTo.js","uni-app:///uni_modules/uview-ui/libs/config/props/datetimePicker.js","uni-app:///uni_modules/uview-ui/libs/config/props/divider.js","uni-app:///uni_modules/uview-ui/libs/config/props/empty.js","uni-app:///uni_modules/uview-ui/libs/config/props/form.js","uni-app:///uni_modules/uview-ui/libs/config/props/formItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/gap.js","uni-app:///uni_modules/uview-ui/libs/config/props/grid.js","uni-app:///uni_modules/uview-ui/libs/config/props/gridItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/icon.js","uni-app:///uni_modules/uview-ui/libs/config/props/image.js","uni-app:///uni_modules/uview-ui/libs/config/props/indexAnchor.js","uni-app:///uni_modules/uview-ui/libs/config/props/indexList.js","uni-app:///uni_modules/uview-ui/libs/config/props/input.js","uni-app:///uni_modules/uview-ui/libs/config/props/keyboard.js","uni-app:///uni_modules/uview-ui/libs/config/props/line.js","uni-app:///uni_modules/uview-ui/libs/config/props/lineProgress.js","uni-app:///uni_modules/uview-ui/libs/config/props/link.js","uni-app:///uni_modules/uview-ui/libs/config/props/list.js","uni-app:///uni_modules/uview-ui/libs/config/props/listItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/loadingIcon.js","uni-app:///uni_modules/uview-ui/libs/config/props/loadingPage.js","uni-app:///uni_modules/uview-ui/libs/config/props/loadmore.js","uni-app:///uni_modules/uview-ui/libs/config/props/modal.js","uni-app:///uni_modules/uview-ui/libs/config/props/navbar.js","uni-app:///uni_modules/uview-ui/libs/config/color.js","uni-app:///uni_modules/uview-ui/libs/config/props/noNetwork.js","uni-app:///uni_modules/uview-ui/libs/config/props/noticeBar.js","uni-app:///uni_modules/uview-ui/libs/config/props/notify.js","uni-app:///uni_modules/uview-ui/libs/config/props/numberBox.js","uni-app:///uni_modules/uview-ui/libs/config/props/numberKeyboard.js","uni-app:///uni_modules/uview-ui/libs/config/props/overlay.js","uni-app:///uni_modules/uview-ui/libs/config/props/parse.js","uni-app:///uni_modules/uview-ui/libs/config/props/picker.js","uni-app:///uni_modules/uview-ui/libs/config/props/popup.js","uni-app:///uni_modules/uview-ui/libs/config/props/radio.js","uni-app:///uni_modules/uview-ui/libs/config/props/radioGroup.js","uni-app:///uni_modules/uview-ui/libs/config/props/rate.js","uni-app:///uni_modules/uview-ui/libs/config/props/readMore.js","uni-app:///uni_modules/uview-ui/libs/config/props/row.js","uni-app:///uni_modules/uview-ui/libs/config/props/rowNotice.js","uni-app:///uni_modules/uview-ui/libs/config/props/scrollList.js","uni-app:///uni_modules/uview-ui/libs/config/props/search.js","uni-app:///uni_modules/uview-ui/libs/config/props/section.js","uni-app:///uni_modules/uview-ui/libs/config/props/skeleton.js","uni-app:///uni_modules/uview-ui/libs/config/props/slider.js","uni-app:///uni_modules/uview-ui/libs/config/props/statusBar.js","uni-app:///uni_modules/uview-ui/libs/config/props/steps.js","uni-app:///uni_modules/uview-ui/libs/config/props/stepsItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/sticky.js","uni-app:///uni_modules/uview-ui/libs/config/props/subsection.js","uni-app:///uni_modules/uview-ui/libs/config/props/swipeAction.js","uni-app:///uni_modules/uview-ui/libs/config/props/swipeActionItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/swiper.js","uni-app:///uni_modules/uview-ui/libs/config/props/swipterIndicator.js","uni-app:///uni_modules/uview-ui/libs/config/props/switch.js","uni-app:///uni_modules/uview-ui/libs/config/props/tabbar.js","uni-app:///uni_modules/uview-ui/libs/config/props/tabbarItem.js","uni-app:///uni_modules/uview-ui/libs/config/props/tabs.js","uni-app:///uni_modules/uview-ui/libs/config/props/tag.js","uni-app:///uni_modules/uview-ui/libs/config/props/text.js","uni-app:///uni_modules/uview-ui/libs/config/props/textarea.js","uni-app:///uni_modules/uview-ui/libs/config/props/toast.js","uni-app:///uni_modules/uview-ui/libs/config/props/toolbar.js","uni-app:///uni_modules/uview-ui/libs/config/props/tooltip.js","uni-app:///uni_modules/uview-ui/libs/config/props/transition.js","uni-app:///uni_modules/uview-ui/libs/config/props/upload.js","uni-app:///uni_modules/uview-ui/libs/config/zIndex.js","uni-app:///uni_modules/uview-ui/libs/function/platform.js","uni-app:///uni_modules/uview-ui/components/u-icon/icons.js","uni-app:///uni_modules/uview-ui/components/u-icon/props.js"],"names":["objectKeys","target","globalThis","key","join","oldWx","isWxKey","indexOf","initWx","newWx","realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isObject","obj","isPlainObject","call","hasOwn","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","locale","normalizeLocale","language","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","initVueI18n","t","i18nMixin","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","getApp","app","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$emit","eventApi","tryCatch","e","getApiCallbacks","apiCallbacks","param","cid","cidErrMsg","enabled","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","baseInfo","shareVideoMessage","miniapp","mocks","findVmByVueId","vm","vuePid","$children","childVm","$scope","_$vueId","parentVm","initBehavior","Behavior","isPage","route","initRelation","detail","triggerEvent","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","vueGeneric","scopedComponent","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","includes","delete","initRefs","forComponents","handleLink","event","vueOptions","parent","markMPComponent","IS_MP","configurable","enumerable","OB","SKIP","isExtensible","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","newTriggerEvent","comType","newEvent","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","is","once","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","_interopRequireDefault","__esModule","module","exports","arrayWithHoles","require","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","arrayLikeToArray","_unsupportedIterableToArray","o","minLen","n","from","_arrayLikeToArray","arr2","_nonIterableRest","TypeError","toPropertyKey","_defineProperty","writable","_typeof","toPrimitive","_toPropertyKey","_toPrimitive","input","hint","prim","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","bind","a","Constructor","Function","instance","_setPrototypeOf","p","_isNativeReflectConstruct","sham","valueOf","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","Request","baseUrl","header","beforeRequest","afterRequest","weixin","request","$http","runtime","_regeneratorRuntime","Op","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","pleaseSetTranspileDependencies","babelTest","$u","date","timeFormat","colorGradient","hexToRgb","rgbToHex","colorToRgba","http","config","zIndex","debounce","throttle","mpMixin","color","install","timestamp","timeFrom","customStyle","customClass","linkType","getRect","$uGetRect","created","computed","deepMerge","bem","fixed","change","prefix","classes","openPage","urlKey","all","createSelectorQuery","in","boundingClientRect","rect","exec","getParentData","parentName","children","parentData","preventEvent","onReachBottom","beforeDestroy","array","childrenList","child","clone","defaults","InterceptorManager","response","mergeConfig","dispatchRequest","fulfilled","rejected","middleware","adapter","mergeKeys","config2","prop","isUndefined","buildURL","buildFullPath","baseURL","_config","settle","requestTask","otherConfig","filePath","optionalKeys","uploadFile","downloadFile","getTask","serializedParams","utils","isURLSearchParams","isDate","toISOString","hashmarkIndex","URLSearchParams","l","isBoolean","assignValue","requestedURL","isAbsoluteURL","combineURLs","relativeURL","validateStatus","status","statusCode","handlers","use","eject","h","globalsConfig","custom","defaultToConfig2Keys","uploadKeys","defaultsKeys","dataType","responseType","timeout","_instanceof","nativeMap","Map","nativeSet","nativePromise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","Infinity","_clone","proto","__isArray","__isRegExp","RegExp","source","__getRegExpFlags","lastIndex","__isDate","getTime","isBuffer","copy","keyChild","valueChild","entryChild","attrs","getOwnPropertyDescriptor","objProperty","ReferenceError","getOwnPropertySymbols","symbols","symbol","allPropertyNames","getOwnPropertyNames","propertyName","clonePrototype","__objToStr","re","flags","ignoreCase","multiline","Router","animationType","animationDuration","intercept","addRootPath","queryParams","mixinParam","routeIntercept","isNext","navigateTo","switchTab","reLaunch","navigateBack","startColor","endColor","step","startRGB","startR","startG","startB","endRGB","endR","endG","endB","sR","sG","sB","colorArr","hex","round","sColor","reg","sColorNew","sColorChange","rgb","_this","aColor","strHex","aNum","numHex","alpha","email","mobile","dateISO","string","digits","idCard","carNo","xreg","creg","amount","chinese","letter","enOrNum","contains","range","rangeLength","landline","empty","jsonString","code","func","image","IMAGE_REGEXP","video","VIDEO_REGEXP","regExp","isEmpty","wait","immediate","clearTimeout","callNow","setTimeout","timer","flag","min","max","getPx","unit","sleep","os","sys","gab","guid","firstU","radix","chars","uuid","r","addStyle","styleArray","style","addUnit","deepClone","WeakMap","entries","merged","sourceValue","targetValue","randomArray","padStart","maxLength","fillString","fillLength","times","ceil","dateTime","formatStr","timeSource","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","beginIndex","tips","pos","isPrefix","arrayFormat","_result","_value","commaStr","toast","duration","showToast","icon","type2icon","fill","iconName","priceFormat","decimals","decimalPoint","thousandsSeparator","isFinite","prec","abs","sep","dec","s","getDuration","valueNum","padZero","formValidate","formItem","form","validateField","getProperty","firstObj","setProperty","inFn","_obj","k","getHistoryPage","back","setConfig","_boundaryCheckingState","strip","num","precision","parseFloat","toPrecision","digitLength","eSplit","float2Fixed","dLen","pow","checkBoundary","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","iteratorOperation","operation","num1","num2","others","nums","num1Changed","num2Changed","baseNum","leftValue","plus","minus","divide","ratio","base","enableBoundaryChecking","_toArray","log","actionSheet","album","alert","avatar","avatarGroup","backtop","badge","button","calendar","carKeyboard","cell","cellGroup","checkbox","checkboxGroup","circleProgress","codeInput","col","collapse","collapseItem","columnNotice","countDown","countTo","datetimePicker","divider","gap","grid","gridItem","indexAnchor","indexList","keyboard","line","lineProgress","link","list","listItem","loadingIcon","loadingPage","loadmore","modal","navbar","noNetwork","noticeBar","notify","numberBox","numberKeyboard","overlay","picker","popup","radio","radioGroup","rate","readMore","row","rowNotice","scrollList","search","section","skeleton","slider","statusBar","steps","stepsItem","sticky","subsection","swipeAction","swipeActionItem","swiper","swipterIndicator","_switch","tabbar","tabbarItem","tabs","tag","textarea","toolbar","tooltip","transition","upload","description","actions","cancelText","closeOnClickAction","safeAreaInsetBottom","openType","closeOnClickOverlay","keyName","singleSize","multipleSize","space","singleMode","multipleMode","maxCount","previewFullImage","rowCount","showMore","closable","showIcon","effect","fontSize","src","shape","bgColor","mpAvatar","randomBgColor","defaultUrl","colorIndex","extraValue","scrollTop","iconStyle","isDot","showZero","numberType","offset","inverted","absolute","hairline","plain","disabled","loading","loadingText","loadingMode","loadingSize","formType","appParameter","hoverStopPropagation","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","dataName","throttleTime","hoverStartTime","hoverStayTime","iconColor","showTitle","showSubtitle","startText","endText","customList","minDate","maxDate","defaultDate","rowHeight","formatter","showLunar","showMark","confirmText","confirmDisabledText","readonly","showConfirm","maxRange","rangePrompt","showRangePrompt","allowSameDay","monthNum","label","border","clickable","isLink","required","arrowDirection","rightIconStyle","rightIcon","titleStyle","activeColor","inactiveColor","iconSize","labelSize","labelColor","labelDisabled","placement","iconPlacement","borderBottom","percentage","seconds","changeText","keepRunning","uniqueKey","adjustPosition","maxlength","dot","focus","bold","disabledKeyboard","borderColor","disabledDot","span","justify","align","textAlign","accordion","speed","disableTouch","time","autoStart","millisecond","startVal","endVal","autoplay","useEasing","decimal","separator","showToolbar","minHour","maxHour","minMinute","maxMinute","itemHeight","cancelColor","confirmColor","visibleItemCount","defaultIndex","dashed","textPosition","textSize","textColor","lineColor","width","height","marginTop","rules","errorType","labelPosition","labelWidth","labelAlign","labelStyle","leftIcon","leftIconStyle","marginBottom","hoverClass","customPrefix","labelPos","imgMode","radius","lazyLoad","showMenuByLongpress","errorIcon","showLoading","showError","fade","webp","customNavHeight","disabledColor","clearable","password","placeholder","placeholderClass","placeholderStyle","showWordLimit","confirmType","confirmHold","holdKeyboard","autoBlur","disableDefaultPadding","cursor","cursorSpacing","selectionStart","selectionEnd","inputAlign","prefixIcon","prefixIconStyle","suffixIcon","suffixIconStyle","dotDisabled","showTips","showCancel","autoChange","direction","margin","showText","underLine","href","mpTips","showScrollbar","lowerThreshold","upperThreshold","offsetAccuracy","enableFlex","pagingEnabled","scrollable","scrollIntoView","scrollWithAnimation","enableBackToTop","preLoadScreen","anchor","vertical","timingFunction","loadingColor","loadmoreText","nomoreText","content","showConfirmButton","showCancelButton","buttonReverse","zoom","asyncClose","negativeTop","confirmButtonShape","safeAreaInsetTop","leftText","rightText","titleWidth","leftIconSize","leftIconColor","mainColor","autoBack","primary","warning","contentColor","tipsColor","lightColor","integer","disabledInput","asyncChange","inputWidth","showMinus","showPlus","decimalLength","longPress","buttonSize","disableMinus","disablePlus","opacity","copyLink","errorImg","loadingImg","pauseVideo","previewImg","setTitle","showImgMenu","columns","immediateChange","closeable","overlayStyle","closeIconPos","overlayOpacity","count","gutter","minCount","allowHalf","activeIcon","inactiveIcon","touchable","showHeight","toggle","closeText","openText","textIndent","indicatorWidth","indicatorBarWidth","indicatorColor","indicatorActiveColor","indicatorStyle","clearabled","showAction","actionStyle","actionText","inputStyle","searchIconColor","searchIconSize","placeholderColor","searchIcon","animation","subTitle","subColor","showLine","arrow","animate","rows","rowsWidth","rowsHeight","titleHeight","avatarSize","avatarShape","blockSize","blockColor","showValue","blockStyle","offsetTop","autoClose","threshold","indicatorInactiveColor","indicatorMode","currentItemId","interval","previousMargin","nextMargin","acceleration","displayMultipleItems","easingFunction","swiperIndicator","switch","activeValue","inactiveValue","badgeStyle","activeStyle","inactiveStyle","lineWidth","lineHeight","lineBgSize","itemStyle","closeColor","plainFill","block","lines","decoration","wordWrap","autoHeight","showConfirmBar","isTab","copyText","showCopy","buttons","accept","capture","compressed","camera","maxDuration","uploadIcon","uploadIconColor","useBeforeRead","imageMode","sizeType","multiple","deletable","maxSize","MAX_VALUE","fileList","uploadText","mask","topTips","indexListSticky"],"mappings":"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B,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,wIAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,wIAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,wIAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,wIAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC77LnB;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;IClHM6H,OAAO;EACX,mBAA0B;IAAA,IAAdnrB,OAAO,uEAAG,CAAC,CAAC;IAAA;IACtB;IACA,IAAI,CAACorB,OAAO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A;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;ACpFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AAHA,IAKMmG,MAAM;EACX,kBAAc;IAAA;IACb;IACA,IAAI,CAAC3I,MAAM,GAAG;MACb1gB,IAAI,EAAE,YAAY;MAClB/J,GAAG,EAAE,EAAE;MACPU,KAAK,EAAE,CAAC;MAAE;MACVtH,MAAM,EAAE,CAAC,CAAC;MAAE;MACZi6B,aAAa,EAAE,QAAQ;MAAE;MACzBC,iBAAiB,EAAE,GAAG;MAAE;MACxBC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC;IACD;IACA;IACA,IAAI,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","file":"common/vendor.js","sourcesContent":["const objectKeys = [\r\n 'qy',\r\n 'env',\r\n 'error',\r\n 'version',\r\n 'lanDebug',\r\n 'cloud',\r\n 'serviceMarket',\r\n 'router',\r\n 'worklet',\r\n]\r\n\r\nconst target = typeof globalThis !== 'undefined' ? globalThis : (function() {\r\n return this\r\n})()\r\n\r\nconst key = ['w', 'x'].join('')\r\nconst oldWx = target[key]\r\n\r\nfunction isWxKey(key) {\r\n return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'\r\n}\r\n\r\nfunction initWx() {\r\n const newWx = {}\r\n for (const key in oldWx) {\r\n if (isWxKey(key)) {\r\n // TODO wrapper function\r\n newWx[key] = oldWx[key]\r\n }\r\n }\r\n return newWx\r\n}\r\ntarget[key] = initWx()\r\nexport default target[key]\r\n","import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isObject (obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () { }\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\r\n}\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name) || !isFn(api)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n if (isFn(getApp)) {\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n }\r\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = isFn(getApp) ? getApp() : false;\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet,\r\n getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'uniPush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nlet baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo();\r\nif (!baseInfo) {\r\n baseInfo = wx.getSystemInfoSync();\r\n}\r\nconst host = baseInfo ? baseInfo.host : null;\r\nconst shareVideoMessage =\r\n host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage;\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n shareVideoMessage: shareVideoMessage,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector) || [];\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || toSkip(component);\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction syncRefs (refs, newRefs) {\r\n const oldKeys = new Set(...Object.keys(refs));\r\n const newKeys = Object.keys(newRefs);\r\n newKeys.forEach(key => {\r\n const oldValue = refs[key];\r\n const newValue = newRefs[key];\r\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\r\n return\r\n }\r\n refs[key] = newValue;\r\n oldKeys.delete(key);\r\n });\r\n oldKeys.forEach(key => {\r\n delete refs[key];\r\n });\r\n return refs\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n const refs = {};\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n return syncRefs(refs, $refs)\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction markMPComponent (component) {\r\n // 在 Vue 中标记为小程序组件\r\n const IS_MP = '__v_isMPComponent';\r\n Object.defineProperty(component, IS_MP, {\r\n configurable: true,\r\n enumerable: false,\r\n value: true\r\n });\r\n return component\r\n}\r\n\r\nfunction toSkip (obj) {\r\n const OB = '__ob__';\r\n const SKIP = '__v_skip';\r\n if (isObject(obj) && Object.isExtensible(obj)) {\r\n // 避免被 @vue/composition-api 观测\r\n Object.defineProperty(obj, OB, {\r\n configurable: true,\r\n enumerable: false,\r\n value: {\r\n [SKIP]: true\r\n }\r\n });\r\n }\r\n return obj\r\n}\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\r\n if (this.$vm || (this.dataset && this.dataset.comType)) {\r\n event = customize(event);\r\n } else {\r\n // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目\r\n const newEvent = customize(event);\r\n if (newEvent !== event) {\r\n oldTriggerEvent.apply(this, [newEvent, ...args]);\r\n }\r\n }\r\n return oldTriggerEvent.apply(this, [event, ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n options[name] = function (...args) {\r\n markMPComponent(this);\r\n initTriggerEvent(this);\r\n if (oldHook) {\r\n return oldHook.apply(this, args)\r\n }\r\n };\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\r\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\r\n}\r\n\r\nfunction findHooks (vueOptions, hooks = []) {\r\n if (vueOptions) {\r\n Object.keys(vueOptions).forEach((name) => {\r\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\r\n hooks.push(name);\r\n }\r\n });\r\n }\r\n return hooks\r\n}\r\n\r\nfunction initHook$1 (mpOptions, hook, excludes) {\r\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) { }\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) { }\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event, __args__) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n\r\n // fixed 用户直接触发 mpInstance.triggerEvent\r\n const __args__ = isPlainObject(event.detail)\r\n ? event.detail.__args__ || [event.detail]\r\n : [event.detail];\r\n\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return __args__\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event, __args__);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n initUnknownHooks(appOptions, vm.$options);\r\n\r\n return appOptions\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}, needVueOptions) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (needVueOptions) {\r\n return [componentOptions, vueOptions, VueComponent]\r\n }\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions, needVueOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n }, needVueOptions)\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions) {\r\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vueOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n {\r\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\r\n }\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions)\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n [locale, messages] = [\r\n messages,\r\n locale,\r\n ];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.