From 7c9430c9a17308df8ee25bf81d91a452c88fde87 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Mon, 11 May 2020 23:26:16 +0300 Subject: [PATCH 01/20] fixed monthFormat uk locale --- src/locale/uk.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index 27bfacf1f..12efc2987 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -1,6 +1,14 @@ // Ukrainian [uk] import dayjs from 'dayjs' +const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') +const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') + +const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') +const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') + +const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ + function plural(word, num) { const 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]) // eslint-disable-line @@ -28,8 +36,18 @@ const locale = { weekdays: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - months: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'), - monthsShort: 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + months: (dayjsInstance, format) => { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()] + } + return monthStandalone[dayjsInstance.month()] + }, + monthsShort: (dayjsInstance, format) => { + if (MONTHS_IN_FORMAT.test(format)) { + return monthShortFormat[dayjsInstance.month()] + } + return monthShortStandalone[dayjsInstance.month()] + }, weekStart: 1, relativeTime: { future: 'за %s', From b241d307bb30c1c27d1cfcd65124724597a8375a Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Mon, 11 May 2020 23:29:09 +0300 Subject: [PATCH 02/20] fixed uk locale (month variables) --- src/locale/uk.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index 12efc2987..403b8ef87 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -1,11 +1,11 @@ // Ukrainian [uk] import dayjs from 'dayjs' -const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') -const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') +const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'); +const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'); -const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') -const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') +const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'); +const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'); const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ From fa18f07e137af603a99cdec1919a82a21239a8bb Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 22:23:41 +0300 Subject: [PATCH 03/20] Update uk.test.js --- test/locale/uk.test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/locale/uk.test.js b/test/locale/uk.test.js index e1a88be21..55b4b35de 100644 --- a/test/locale/uk.test.js +++ b/test/locale/uk.test.js @@ -14,6 +14,19 @@ afterEach(() => { MockDate.reset() }) +it('Format Month with locale function', () => { + for (let i = 0; i <= 7; i += 1) { + const dayjsUK = dayjs().locale('uk').add(i, 'day') + const momentUK = moment().locale('uk').add(i, 'day') + const testFormat1 = 'DD MMMM YYYY MMM' + const testFormat2 = 'MMMM' + const testFormat3 = 'MMM' + expect(dayjsUK.format(testFormat1)).toEqual(momentUK.format(testFormat1)) + expect(dayjsUK.format(testFormat2)).toEqual(momentUK.format(testFormat2)) + expect(dayjsUK.format(testFormat3)).toEqual(momentUK.format(testFormat3)) + } +}) + it('RelativeTime: Time from X', () => { const T = [ [44.4, 'second'], // a few seconds From bf5a34e8e366f202eb8f6ad6ab2fe9af73fbb7fe Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 23:15:16 +0300 Subject: [PATCH 04/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 0e0260315..d4d447617 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -143,7 +143,7 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 лютий 03' + const input = '2018 лютого 03' const format = 'YYYY MMMM DD' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) @@ -162,7 +162,7 @@ it('parse month from short string with locale in argument', () => { }) it('parse month from string with locale in argument', () => { - const input = '2018 лютий 03' + const input = '2018 лютого 03' const format = 'YYYY MMMM DD' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) @@ -194,7 +194,7 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 лютий 03' + const input = '2018 лютого 03' const format = 'YYYY MMMM DD' const dayjsLocale = dayjs().$locale() From 589e6ea063198901ff38a849dc8156d82bbe56e4 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 23:24:51 +0300 Subject: [PATCH 05/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 70 +++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index d4d447617..6b50fac1f 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -142,31 +142,31 @@ it('parse month from short string', () => { expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) }) -it('parse month from string with locale in config', () => { - const input = '2018 лютого 03' - const format = 'YYYY MMMM DD' +// it('parse month from string with locale in config', () => { +// const input = '2018 лютого 03' +// const format = 'YYYY MMMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -}) +// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +// }) -it('parse month from short string with locale in config', () => { - const input = '2018 трав 03' - const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -}) +// it('parse month from short string with locale in config', () => { +// const input = '2018 трав 03' +// const format = 'YYYY MMM DD' +// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +// }) -it('parse month from short string with locale in argument', () => { - const input = '2018 трав 03' - const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -}) +// it('parse month from short string with locale in argument', () => { +// const input = '2018 трав 03' +// const format = 'YYYY MMM DD' +// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +// }) -it('parse month from string with locale in argument', () => { - const input = '2018 лютого 03' - const format = 'YYYY MMMM DD' +// it('parse month from string with locale in argument', () => { +// const input = '2018 лютого 03' +// const format = 'YYYY MMMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -}) +// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +// }) it('return Invalid Date when parse corrupt string', () => { const input = '2018 Turnip 03' @@ -193,21 +193,21 @@ it('Valid Date', () => { expect(dayjs('2014/10/12', 'YYYY-MM-DD').format('MM-DD-YYYY')).toBe('10-12-2014') }) -it('correctly parse month from string after changing locale globally', () => { - const input = '2018 лютого 03' - const format = 'YYYY MMMM DD' - - const dayjsLocale = dayjs().$locale() - const momentLocale = moment.locale() - try { - dayjs.locale(uk) - moment.locale('uk') - expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) - } finally { - dayjs.locale(dayjsLocale) - moment.locale(momentLocale) - } -}) +// it('correctly parse month from string after changing locale globally', () => { +// const input = '2018 лютого 03' +// const format = 'YYYY MMMM DD' + +// const dayjsLocale = dayjs().$locale() +// const momentLocale = moment.locale() +// try { +// dayjs.locale(uk) +// moment.locale('uk') +// expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) +// } finally { +// dayjs.locale(dayjsLocale) +// moment.locale(momentLocale) +// } +// }) it('correctly parse ordinal', () => { const input = '7th March 2019' From df3f9ae093848424e142420d89f92bef4824328a Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 23:36:59 +0300 Subject: [PATCH 06/20] uncomment --- test/plugin/customParseFormat.test.js | 70 +++++++++++++-------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 6b50fac1f..0078395b9 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -142,31 +142,31 @@ it('parse month from short string', () => { expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) }) -// it('parse month from string with locale in config', () => { -// const input = '2018 лютого 03' -// const format = 'YYYY MMMM DD' +it('parse month from string with locale in config', () => { + const input = '2018 травня 03' + const format = 'YYYY MMMM DD' -// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -// }) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +}) -// it('parse month from short string with locale in config', () => { -// const input = '2018 трав 03' -// const format = 'YYYY MMM DD' -// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -// }) +it('parse month from short string with locale in config', () => { + const input = '2018 трав 03' + const format = 'YYYY MMM DD' + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +}) -// it('parse month from short string with locale in argument', () => { -// const input = '2018 трав 03' -// const format = 'YYYY MMM DD' -// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -// }) +it('parse month from short string with locale in argument', () => { + const input = '2018 трав 03' + const format = 'YYYY MMM DD' + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +}) -// it('parse month from string with locale in argument', () => { -// const input = '2018 лютого 03' -// const format = 'YYYY MMMM DD' +it('parse month from string with locale in argument', () => { + const input = '2018 травня 03' + const format = 'YYYY MMMM DD' -// expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) -// }) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) +}) it('return Invalid Date when parse corrupt string', () => { const input = '2018 Turnip 03' @@ -193,21 +193,21 @@ it('Valid Date', () => { expect(dayjs('2014/10/12', 'YYYY-MM-DD').format('MM-DD-YYYY')).toBe('10-12-2014') }) -// it('correctly parse month from string after changing locale globally', () => { -// const input = '2018 лютого 03' -// const format = 'YYYY MMMM DD' - -// const dayjsLocale = dayjs().$locale() -// const momentLocale = moment.locale() -// try { -// dayjs.locale(uk) -// moment.locale('uk') -// expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) -// } finally { -// dayjs.locale(dayjsLocale) -// moment.locale(momentLocale) -// } -// }) +it('correctly parse month from string after changing locale globally', () => { + const input = '2018 травня 03' + const format = 'YYYY MMMM DD' + + const dayjsLocale = dayjs().$locale() + const momentLocale = moment.locale() + try { + dayjs.locale(uk) + moment.locale('uk') + expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) + } finally { + dayjs.locale(dayjsLocale) + moment.locale(momentLocale) + } +}) it('correctly parse ordinal', () => { const input = '7th March 2019' From 8d2ab52133d854da4604f24c004c2643e7a1278b Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 23:43:20 +0300 Subject: [PATCH 07/20] changed short month format --- src/locale/uk.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index 403b8ef87..ec960635b 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -4,9 +4,6 @@ import dayjs from 'dayjs' const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'); const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'); -const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'); -const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'); - const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ function plural(word, num) { @@ -42,12 +39,7 @@ const locale = { } return monthStandalone[dayjsInstance.month()] }, - monthsShort: (dayjsInstance, format) => { - if (MONTHS_IN_FORMAT.test(format)) { - return monthShortFormat[dayjsInstance.month()] - } - return monthShortStandalone[dayjsInstance.month()] - }, + monthsShort: 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), weekStart: 1, relativeTime: { future: 'за %s', From 7aef282fa54933078db54e697e916f2cce5e1aea Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Wed, 13 May 2020 23:52:01 +0300 Subject: [PATCH 08/20] removed semicolon --- src/locale/uk.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index ec960635b..21e145b0b 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -1,8 +1,8 @@ // Ukrainian [uk] import dayjs from 'dayjs' -const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'); -const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'); +const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') +const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ From 5ac41499b2cfab293897258ebe7c99a1dc2b7ed4 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 00:00:59 +0300 Subject: [PATCH 09/20] fixed test for uk locale --- test/plugin/customParseFormat.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 0078395b9..5b1372f4d 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -143,7 +143,7 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 травня 03' + const input = '2018 травень 03' const format = 'YYYY MMMM DD' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) @@ -162,7 +162,7 @@ it('parse month from short string with locale in argument', () => { }) it('parse month from string with locale in argument', () => { - const input = '2018 травня 03' + const input = '2018 травень 03' const format = 'YYYY MMMM DD' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) @@ -194,7 +194,7 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 травня 03' + const input = '2018 травень 03' const format = 'YYYY MMMM DD' const dayjsLocale = dayjs().$locale() From 985534b79f26c0e05a66196e0fde38a8521df6bb Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 00:43:39 +0300 Subject: [PATCH 10/20] fixed comparing timestamp with moment --- test/plugin/customParseFormat.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 5b1372f4d..d466fd800 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -144,7 +144,7 @@ it('parse month from short string', () => { it('parse month from string with locale in config', () => { const input = '2018 травень 03' - const format = 'YYYY MMMM DD' + const format = 'YYYY MMMM DDTHH:mm:ss.SSS' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) @@ -163,7 +163,7 @@ it('parse month from short string with locale in argument', () => { it('parse month from string with locale in argument', () => { const input = '2018 травень 03' - const format = 'YYYY MMMM DD' + const format = 'YYYY MMMM DDTHH:mm:ss.SSS' expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) @@ -195,7 +195,7 @@ it('Valid Date', () => { it('correctly parse month from string after changing locale globally', () => { const input = '2018 травень 03' - const format = 'YYYY MMMM DD' + const format = 'YYYY MMMM DDTHH:mm:ss.SSS' const dayjsLocale = dayjs().$locale() const momentLocale = moment.locale() From 59b122eba28cc629d3d2644d8671aef4adcea7d2 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 00:57:11 +0300 Subject: [PATCH 11/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index d466fd800..593c58ef4 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -143,29 +143,29 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 травень 03' - const format = 'YYYY MMMM DDTHH:mm:ss.SSS' + const input = '2018 February 03' + const format = 'YYYY MMMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) }) it('parse month from short string with locale in config', () => { - const input = '2018 трав 03' + const input = '2018 February 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) }) it('parse month from short string with locale in argument', () => { - const input = '2018 трав 03' + const input = '2018 Feb 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) }) it('parse month from string with locale in argument', () => { - const input = '2018 травень 03' + const input = '2018 February 03' const format = 'YYYY MMMM DDTHH:mm:ss.SSS' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) }) it('return Invalid Date when parse corrupt string', () => { @@ -194,14 +194,14 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 травень 03' + const input = '2018 February 03' const format = 'YYYY MMMM DDTHH:mm:ss.SSS' const dayjsLocale = dayjs().$locale() const momentLocale = moment.locale() try { - dayjs.locale(uk) - moment.locale('uk') + dayjs.locale(en) + moment.locale('en') expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) } finally { dayjs.locale(dayjsLocale) From 79af078004a9d8ec1289eab109651ec91b19c610 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 01:09:20 +0300 Subject: [PATCH 12/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 593c58ef4..ed1e08b86 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -143,29 +143,29 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 February 03' - const format = 'YYYY MMMM DD' + const input = '2018 лютий 03' + const format = 'YYYY-MM-DDTHH:mm:ss.SSS' - expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from short string with locale in config', () => { - const input = '2018 February 03' + const input = '2018 трав 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from short string with locale in argument', () => { - const input = '2018 Feb 03' + const input = '2018 трав 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from string with locale in argument', () => { - const input = '2018 February 03' - const format = 'YYYY MMMM DDTHH:mm:ss.SSS' + const input = '2018 лютий 03' + const format = 'YYYY-MM-DDTHH:mm:ss.SSS' - expect(dayjs(input, format, 'en').valueOf()).toBe(moment(input, format, 'en').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('return Invalid Date when parse corrupt string', () => { @@ -194,14 +194,14 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 February 03' - const format = 'YYYY MMMM DDTHH:mm:ss.SSS' + const input = '2018 лютий 03' + const format = 'YYYY-MM-DDTHH:mm:ss.SSS' const dayjsLocale = dayjs().$locale() const momentLocale = moment.locale() try { - dayjs.locale(en) - moment.locale('en') + dayjs.locale(uk) + moment.locale('uk') expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) } finally { dayjs.locale(dayjsLocale) From 0313218a6a7589930aefb7e32b7e89a8c8f9024e Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 01:40:32 +0300 Subject: [PATCH 13/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index ed1e08b86..d3601ccd6 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -2,7 +2,7 @@ import MockDate from 'mockdate' import moment from 'moment' import dayjs from '../../src' import customParseFormat from '../../src/plugin/customParseFormat' -import uk from '../../src/locale/uk' +import ru from '../../src/locale/ru' import '../../src/locale/zh-cn' dayjs.extend(customParseFormat) @@ -143,29 +143,29 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 лютий 03' + const input = '2018 февраль 03' const format = 'YYYY-MM-DDTHH:mm:ss.SSS' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) }) it('parse month from short string with locale in config', () => { - const input = '2018 трав 03' + const input = '2018 февр. 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) }) it('parse month from short string with locale in argument', () => { - const input = '2018 трав 03' + const input = '2018 февр. 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) }) it('parse month from string with locale in argument', () => { - const input = '2018 лютий 03' + const input = '2018 февраль 03' const format = 'YYYY-MM-DDTHH:mm:ss.SSS' - expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) + expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) }) it('return Invalid Date when parse corrupt string', () => { @@ -194,14 +194,14 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 лютий 03' - const format = 'YYYY-MM-DDTHH:mm:ss.SSS' + const input = '2018 февраль 03' + const format = 'YYYY MMMM DD' const dayjsLocale = dayjs().$locale() const momentLocale = moment.locale() try { - dayjs.locale(uk) - moment.locale('uk') + dayjs.locale(ru) + moment.locale('ru') expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) } finally { dayjs.locale(dayjsLocale) From 6e96d3c6c2d90f7835092cae5ae302b309cad0e7 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 01:46:34 +0300 Subject: [PATCH 14/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index d3601ccd6..0e0260315 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -2,7 +2,7 @@ import MockDate from 'mockdate' import moment from 'moment' import dayjs from '../../src' import customParseFormat from '../../src/plugin/customParseFormat' -import ru from '../../src/locale/ru' +import uk from '../../src/locale/uk' import '../../src/locale/zh-cn' dayjs.extend(customParseFormat) @@ -143,29 +143,29 @@ it('parse month from short string', () => { }) it('parse month from string with locale in config', () => { - const input = '2018 февраль 03' - const format = 'YYYY-MM-DDTHH:mm:ss.SSS' + const input = '2018 лютий 03' + const format = 'YYYY MMMM DD' - expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from short string with locale in config', () => { - const input = '2018 февр. 03' + const input = '2018 трав 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from short string with locale in argument', () => { - const input = '2018 февр. 03' + const input = '2018 трав 03' const format = 'YYYY MMM DD' - expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('parse month from string with locale in argument', () => { - const input = '2018 февраль 03' - const format = 'YYYY-MM-DDTHH:mm:ss.SSS' + const input = '2018 лютий 03' + const format = 'YYYY MMMM DD' - expect(dayjs(input, format, 'ru').valueOf()).toBe(moment(input, format, 'ru').valueOf()) + expect(dayjs(input, format, 'uk').valueOf()).toBe(moment(input, format, 'uk').valueOf()) }) it('return Invalid Date when parse corrupt string', () => { @@ -194,14 +194,14 @@ it('Valid Date', () => { }) it('correctly parse month from string after changing locale globally', () => { - const input = '2018 февраль 03' + const input = '2018 лютий 03' const format = 'YYYY MMMM DD' const dayjsLocale = dayjs().$locale() const momentLocale = moment.locale() try { - dayjs.locale(ru) - moment.locale('ru') + dayjs.locale(uk) + moment.locale('uk') expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) } finally { dayjs.locale(dayjsLocale) From 324363c7363774a5e0a537e101f90d0910a4ac57 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 14 May 2020 02:14:31 +0300 Subject: [PATCH 15/20] Update customParseFormat.test.js --- test/plugin/customParseFormat.test.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 0e0260315..7593fe0cc 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -2,10 +2,14 @@ import MockDate from 'mockdate' import moment from 'moment' import dayjs from '../../src' import customParseFormat from '../../src/plugin/customParseFormat' +import localeData from '../../src/plugin/localeData' +import localizedFormat from '../../src/plugin/localizedFormat' import uk from '../../src/locale/uk' import '../../src/locale/zh-cn' dayjs.extend(customParseFormat) +dayjs.extend(localizedFormat) +dayjs.extend(localeData) beforeEach(() => { MockDate.set(new Date()) From fe9d4e3876cded93e8f8e07d765a8165f5e9e3f3 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Tue, 19 May 2020 23:52:13 +0300 Subject: [PATCH 16/20] fixed month format --- src/locale/uk.js | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index 21e145b0b..07930379e 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -28,18 +28,31 @@ function relativeTimeWithPlural(number, withoutSuffix, key) { return `${number} ${plural(format[key], +number)}` } +const months = (dayjsInstance, format) => { + if (MONTHS_IN_FORMAT.test(format)) { + return monthFormat[dayjsInstance.month()] + } + return monthStandalone[dayjsInstance.month()] +} +months.s = monthStandalone +months.f = monthFormat + +const monthsShort = (dayjsInstance, format) => { + if (MONTHS_IN_FORMAT.test(format)) { + return monthShortFormat[dayjsInstance.month()] + } + return monthShortStandalone[dayjsInstance.month()] +} +monthsShort.s = monthShortStandalone +monthsShort.f = monthShortFormat + const locale = { name: 'uk', weekdays: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - months: (dayjsInstance, format) => { - if (MONTHS_IN_FORMAT.test(format)) { - return monthFormat[dayjsInstance.month()] - } - return monthStandalone[dayjsInstance.month()] - }, - monthsShort: 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + months, + monthsShort, weekStart: 1, relativeTime: { future: 'за %s', From 0814c53e8074ddc2e336e47626ef717cad74e061 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Tue, 19 May 2020 23:56:07 +0300 Subject: [PATCH 17/20] fixed short format month --- src/locale/uk.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locale/uk.js b/src/locale/uk.js index 07930379e..e7b881f1a 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -4,6 +4,9 @@ import dayjs from 'dayjs' const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') +const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') +const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') + const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ function plural(word, num) { From 0dde7741138b3263324d93dd54565db1ca5f74e7 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Thu, 21 May 2020 16:22:03 +0300 Subject: [PATCH 18/20] removed plugin from customParseFormat test --- test/plugin/customParseFormat.test.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 7593fe0cc..0e0260315 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -2,14 +2,10 @@ import MockDate from 'mockdate' import moment from 'moment' import dayjs from '../../src' import customParseFormat from '../../src/plugin/customParseFormat' -import localeData from '../../src/plugin/localeData' -import localizedFormat from '../../src/plugin/localizedFormat' import uk from '../../src/locale/uk' import '../../src/locale/zh-cn' dayjs.extend(customParseFormat) -dayjs.extend(localizedFormat) -dayjs.extend(localeData) beforeEach(() => { MockDate.set(new Date()) From 71fabcd441a45e74bbbce5fd4fb7661b1f2d626c Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Fri, 22 May 2020 11:05:22 +0300 Subject: [PATCH 19/20] fixed month short format --- src/locale/uk.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index e7b881f1a..fb46df98b 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -4,9 +4,6 @@ import dayjs from 'dayjs' const monthFormat = 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') const monthStandalone = 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') -const monthShortFormat = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') -const monthShortStandalone = 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_') - const MONTHS_IN_FORMAT = /D[oD]?(\[[^[\]]*\]|\s)+MMMM?/ function plural(word, num) { @@ -40,22 +37,13 @@ const months = (dayjsInstance, format) => { months.s = monthStandalone months.f = monthFormat -const monthsShort = (dayjsInstance, format) => { - if (MONTHS_IN_FORMAT.test(format)) { - return monthShortFormat[dayjsInstance.month()] - } - return monthShortStandalone[dayjsInstance.month()] -} -monthsShort.s = monthShortStandalone -monthsShort.f = monthShortFormat - const locale = { name: 'uk', weekdays: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), months, - monthsShort, + monthsShort:'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), weekStart: 1, relativeTime: { future: 'за %s', From a6fdd514ce0dbb14b45c8a5c778ac86f9be0c287 Mon Sep 17 00:00:00 2001 From: Valeriia Braterska Date: Fri, 22 May 2020 11:31:14 +0300 Subject: [PATCH 20/20] fixed eslint error in uk locale --- src/locale/uk.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale/uk.js b/src/locale/uk.js index fb46df98b..e2d6dfe69 100644 --- a/src/locale/uk.js +++ b/src/locale/uk.js @@ -43,7 +43,7 @@ const locale = { weekdaysShort: 'ндл_пнд_втр_срд_чтв_птн_сбт'.split('_'), weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'), months, - monthsShort:'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + monthsShort: 'сiч_лют_бер_квiт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), weekStart: 1, relativeTime: { future: 'за %s',