From 2eec018dbe172d8d0497ff3dac49a7e66d7458b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 17:54:19 +0800 Subject: [PATCH 1/7] chore: jumpTo should also jump to the view --- .gitignore | 2 + package.json | 22 ++++-- .../calendar-picker-view.tsx | 77 +++++++++++++------ .../tests/useSyncScroll.ts | 50 ++++++++++++ .../calendar-picker/calendar-picker.tsx | 17 ++-- .../calendar-picker/demos/demo2.tsx | 28 ++++++- 6 files changed, 156 insertions(+), 40 deletions(-) create mode 100644 src/components/calendar-picker-view/tests/useSyncScroll.ts diff --git a/.gitignore b/.gitignore index 77aa4d7694..13198d7c73 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ !.yarn/sdks !.yarn/versions .pnp.* +.node +package-lock.json diff --git a/package.json b/package.json index 18436afa62..57580336e4 100644 --- a/package.json +++ b/package.json @@ -50,10 +50,6 @@ "*.{cjs,css,cts,html,js,json,jsx,less,md,mjs,mts,scss,ts,tsx,vue,yaml,yml}": "prettier --write", "*.{css,less,scss}": "stylelint --fix" }, - "resolutions": { - "@types/react": "18", - "@types/react-dom": "18" - }, "dependencies": { "@floating-ui/dom": "^1.4.2", "@rc-component/mini-decimal": "^1.1.0", @@ -99,9 +95,9 @@ "@types/jest-axe": "3.5.4", "@types/lodash": "^4.14.194", "@types/node": "^18.15.13", - "@types/react": "^18.0.38", + "@types/react": "18", "@types/react-beautiful-dnd": "^13.1.4", - "@types/react-dom": "^18.0.11", + "@types/react-dom": "18", "@types/react-helmet": "^6.1.6", "@types/react-is": "^17.0.3", "@types/react-virtualized": "^9.21.21", @@ -184,5 +180,17 @@ "path": "./lib/bundle/antd-mobile.es.js", "limit": "200 kB" } - ] + ], + "overrides": { + "@types/react": { + ".": "18" + }, + "@types/react-dom": { + ".": "18" + } + }, + "_resolutions": { + "@types/react": "18", + "@types/react-dom": "18" + } } diff --git a/src/components/calendar-picker-view/calendar-picker-view.tsx b/src/components/calendar-picker-view/calendar-picker-view.tsx index 65643da8db..3d655f64cb 100644 --- a/src/components/calendar-picker-view/calendar-picker-view.tsx +++ b/src/components/calendar-picker-view/calendar-picker-view.tsx @@ -1,30 +1,39 @@ +import classNames from 'classnames' +import dayjs from 'dayjs' +import isSameOrBefore from 'dayjs/plugin/isSameOrBefore' +import isoWeek from 'dayjs/plugin/isoWeek' +import type { ReactNode } from 'react' import React, { forwardRef, - useState, + useContext, useImperativeHandle, useMemo, + useRef, + useState, } from 'react' -import type { ReactNode } from 'react' import { NativeProps, withNativeProps } from '../../utils/native-props' -import dayjs from 'dayjs' -import classNames from 'classnames' +import { usePropsValue } from '../../utils/use-props-value' import { mergeProps } from '../../utils/with-default-props' import { useConfig } from '../config-provider' -import isoWeek from 'dayjs/plugin/isoWeek' -import isSameOrBefore from 'dayjs/plugin/isSameOrBefore' -import { usePropsValue } from '../../utils/use-props-value' import { - convertValueToRange, - convertPageToDayjs, DateRange, Page, + convertPageToDayjs, + convertValueToRange, } from './convert' +import useSyncScroll from './tests/useSyncScroll' dayjs.extend(isoWeek) dayjs.extend(isSameOrBefore) const classPrefix = 'adm-calendar-picker-view' +export const Context = React.createContext<{ + visible: boolean +}>({ + visible: false, +}) + export type CalendarPickerViewRef = { jumpTo: (page: Page | ((page: Page) => Page)) => void jumpToToday: () => void @@ -76,9 +85,11 @@ export const CalendarPickerView = forwardRef< CalendarPickerViewRef, CalendarPickerViewProps >((p, ref) => { + const bodyRef = useRef(null) const today = dayjs() const props = mergeProps(defaultProps, p) const { locale } = useConfig() + const markItems = [...locale.Calendar.markItems] if (props.weekStartsOn === 'Sunday') { const item = markItems.pop() @@ -106,6 +117,21 @@ export const CalendarPickerView = forwardRef< dayjs(dateRange ? dateRange[0] : today).date(1) ) + // =============================== Scroll =============================== + const context = useContext(Context) + const scrollTo = useSyncScroll(current, context.visible, bodyRef) + + // ============================== Boundary ============================== + const maxDay = useMemo( + () => (props.max ? dayjs(props.max) : current.add(6, 'month')), + [props.max, current] + ) + const minDay = useMemo( + () => (props.min ? dayjs(props.min) : current), + [props.min, current] + ) + + // ================================ Refs ================================ useImperativeHandle(ref, () => ({ jumpTo: pageOrPageGenerator => { let page: Page @@ -117,14 +143,19 @@ export const CalendarPickerView = forwardRef< } else { page = pageOrPageGenerator } - setCurrent(convertPageToDayjs(page)) + const next = convertPageToDayjs(page) + setCurrent(next) + scrollTo(next) }, jumpToToday: () => { - setCurrent(dayjs().date(1)) + const next = dayjs().date(1) + setCurrent(next) + scrollTo(next) }, getDateRange: () => dateRange, })) + // =============================== Render =============================== const header = (
@@ -133,29 +164,23 @@ export const CalendarPickerView = forwardRef<
) - const maxDay = useMemo( - () => (props.max ? dayjs(props.max) : current.add(6, 'month')), - [props.max, current] - ) - const minDay = useMemo( - () => (props.min ? dayjs(props.min) : current), - [props.min, current] - ) - function renderBody() { const cells: ReactNode[] = [] let monthIterator = minDay // 遍历月份 while (monthIterator.isSameOrBefore(maxDay, 'month')) { const year = monthIterator.year() - const month = monthIterator.month() + const month = monthIterator.month() + 1 + const renderMap = { year, - month: month + 1, + month, } + const yearMonth = `${year}-${month}` + cells.push( -
+
{locale.Calendar.yearAndMonth?.replace( /\${(.*?)}/g, @@ -306,7 +331,11 @@ export const CalendarPickerView = forwardRef< return cells } - const body =
{renderBody()}
+ const body = ( +
+ {renderBody()} +
+ ) const mark = (
diff --git a/src/components/calendar-picker-view/tests/useSyncScroll.ts b/src/components/calendar-picker-view/tests/useSyncScroll.ts new file mode 100644 index 0000000000..d6e95e99fe --- /dev/null +++ b/src/components/calendar-picker-view/tests/useSyncScroll.ts @@ -0,0 +1,50 @@ +import type { Dayjs } from 'dayjs' +import { useEvent } from 'rc-util' +// import isVisible from 'rc-util/lib/Dom/isVisible'; +import { useEffect, useRef } from 'react' + +export default function useSyncScroll( + current: Dayjs, + visible: boolean, + bodyRef: React.RefObject +) { + const rafRef = useRef() + + const clean = () => { + if (rafRef.current) { + cancelAnimationFrame(rafRef.current) + } + } + + const scrollTo = useEvent((date: Dayjs) => { + clean() + + rafRef.current = requestAnimationFrame(() => { + if (bodyRef.current) { + const yearMonth = date.format('YYYY-M') + const target = bodyRef.current.querySelector( + `[data-year-month="${yearMonth}"]` + ) + + if (target) { + // Scroll to the top of view + + target.scrollIntoView({ + block: 'start', + inline: 'nearest', + }) + } + } + }) + }) + + useEffect(() => { + if (visible && current) { + scrollTo(current) + + return clean + } + }, [current, visible]) + + return scrollTo +} diff --git a/src/components/calendar-picker/calendar-picker.tsx b/src/components/calendar-picker/calendar-picker.tsx index 314ed1e24e..0a8f38c4f9 100644 --- a/src/components/calendar-picker/calendar-picker.tsx +++ b/src/components/calendar-picker/calendar-picker.tsx @@ -1,16 +1,17 @@ +import classNames from 'classnames' import React, { forwardRef, useRef } from 'react' import { withNativeProps } from '../../utils/native-props' -import classNames from 'classnames' -import Button from '../button' -import Divider from '../divider' -import Popup from '../popup' import { type GetContainer } from '../../utils/render-to-container' import { mergeProps } from '../../utils/with-default-props' -import { useConfig } from '../config-provider' +import Button from '../button' import CalendarPickerView, { CalendarPickerViewProps, CalendarPickerViewRef, } from '../calendar-picker-view' +import { Context } from '../calendar-picker-view/calendar-picker-view' +import { useConfig } from '../config-provider' +import Divider from '../divider' +import Popup from '../popup' const classPrefix = 'adm-calendar-picker' @@ -74,6 +75,8 @@ export const CalendarPicker = forwardRef< ...calendarViewProps } = props + const viewContext = React.useMemo(() => ({ visible: !!visible }), [visible]) + const footer = (
@@ -122,7 +125,9 @@ export const CalendarPicker = forwardRef< }} getContainer={getContainer} > - + + + {footer}
diff --git a/src/components/calendar-picker/demos/demo2.tsx b/src/components/calendar-picker/demos/demo2.tsx index b273ba4282..650416d04c 100644 --- a/src/components/calendar-picker/demos/demo2.tsx +++ b/src/components/calendar-picker/demos/demo2.tsx @@ -1,16 +1,22 @@ -import React, { useState } from 'react' import { CalendarPicker, List } from 'antd-mobile' +import React, { useState } from 'react' const min = new Date() min.setDate(5) +min.setMonth(min.getMonth() - 1) + const max = new Date() max.setDate(20) +max.setMonth(max.getMonth() + 1) + +const now = new Date() export default () => { const [visible1, setVisible1] = useState(false) const [visible2, setVisible2] = useState(false) const [visible3, setVisible3] = useState(false) const [visible4, setVisible4] = useState(false) + const [visible5, setVisible5] = useState(false) return ( @@ -58,16 +64,32 @@ export default () => { setVisible4(true) }} > - 限制日期范围 + 限制日期范围(单选) setVisible4(false)} onMaskClick={() => setVisible4(false)} /> + { + setVisible5(true) + }} + > + 限制日期范围(多选) + setVisible5(false)} + onMaskClick={() => setVisible5(false)} + /> + ) } From c947e7246582a38fcaba02b84ed5f800e896c49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:34:12 +0800 Subject: [PATCH 2/7] test: add test case --- .../tests/calendar-picker.test.tsx | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/components/calendar-picker/tests/calendar-picker.test.tsx b/src/components/calendar-picker/tests/calendar-picker.test.tsx index e00891c328..b0e80c6cd8 100644 --- a/src/components/calendar-picker/tests/calendar-picker.test.tsx +++ b/src/components/calendar-picker/tests/calendar-picker.test.tsx @@ -1,7 +1,8 @@ -import React from 'react' -import { render, testA11y, fireEvent } from 'testing' -import CalendarPicker from '..' import MockDate from 'mockdate' +import { spyElementPrototype } from 'rc-util/lib/test/domHook' +import React, { act } from 'react' +import { fireEvent, render, testA11y } from 'testing' +import CalendarPicker, { CalendarPickerRef } from '..' const classPrefix = `adm-calendar-picker-view` @@ -13,7 +14,16 @@ const maxDate: Date = new Date('2023-05-31') const singleDate: Date = new Date('2023-05-03') describe('Calendar', () => { + beforeEach(() => { + jest.useFakeTimers() + }) + + afterEach(() => { + jest.useRealTimers() + }) + test('a11y', async () => { + jest.useRealTimers() await testA11y() }) @@ -36,4 +46,25 @@ describe('Calendar', () => { expect(dateEl.parentElement).toHaveClass(`${classPrefix}-cell-selected`) expect(fn).toBeCalled() }) + + test('jumpTo should trigger scroll', () => { + const ref = React.createRef() + render() + + const spyScrollIntoView = jest.fn() + const spyHTMLElement = spyElementPrototype( + HTMLElement, + 'scrollIntoView', + spyScrollIntoView + ) + + // Trigger scroll + ref.current!.jumpToToday() + act(() => { + jest.runAllTimers() + }) + expect(spyScrollIntoView).toBeCalled() + + spyHTMLElement.mockRestore() + }) }) From 37889e7b7df4381efde572959dd692b713433c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:36:54 +0800 Subject: [PATCH 3/7] chore: rollback package.json --- package.json | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 57580336e4..18436afa62 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,10 @@ "*.{cjs,css,cts,html,js,json,jsx,less,md,mjs,mts,scss,ts,tsx,vue,yaml,yml}": "prettier --write", "*.{css,less,scss}": "stylelint --fix" }, + "resolutions": { + "@types/react": "18", + "@types/react-dom": "18" + }, "dependencies": { "@floating-ui/dom": "^1.4.2", "@rc-component/mini-decimal": "^1.1.0", @@ -95,9 +99,9 @@ "@types/jest-axe": "3.5.4", "@types/lodash": "^4.14.194", "@types/node": "^18.15.13", - "@types/react": "18", + "@types/react": "^18.0.38", "@types/react-beautiful-dnd": "^13.1.4", - "@types/react-dom": "18", + "@types/react-dom": "^18.0.11", "@types/react-helmet": "^6.1.6", "@types/react-is": "^17.0.3", "@types/react-virtualized": "^9.21.21", @@ -180,17 +184,5 @@ "path": "./lib/bundle/antd-mobile.es.js", "limit": "200 kB" } - ], - "overrides": { - "@types/react": { - ".": "18" - }, - "@types/react-dom": { - ".": "18" - } - }, - "_resolutions": { - "@types/react": "18", - "@types/react-dom": "18" - } + ] } From eaa48f29324a3894724905b8878ee09530fe4c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:37:40 +0800 Subject: [PATCH 4/7] chore: back of ignore --- .gitignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitignore b/.gitignore index 13198d7c73..77aa4d7694 100644 --- a/.gitignore +++ b/.gitignore @@ -32,5 +32,3 @@ !.yarn/sdks !.yarn/versions .pnp.* -.node -package-lock.json From 05211e355f1728277c7cde86d7535d91a28f12e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:42:42 +0800 Subject: [PATCH 5/7] test: update snapshot --- .../calendar-picker-view.tsx | 2 +- .../calendar-picker-view.test.tsx.snap | 72 ++++++++++++++----- .../{tests => }/useSyncScroll.ts | 1 - 3 files changed, 55 insertions(+), 20 deletions(-) rename src/components/calendar-picker-view/{tests => }/useSyncScroll.ts (94%) diff --git a/src/components/calendar-picker-view/calendar-picker-view.tsx b/src/components/calendar-picker-view/calendar-picker-view.tsx index 3d655f64cb..660c1b98eb 100644 --- a/src/components/calendar-picker-view/calendar-picker-view.tsx +++ b/src/components/calendar-picker-view/calendar-picker-view.tsx @@ -21,7 +21,7 @@ import { convertPageToDayjs, convertValueToRange, } from './convert' -import useSyncScroll from './tests/useSyncScroll' +import useSyncScroll from './useSyncScroll' dayjs.extend(isoWeek) dayjs.extend(isSameOrBefore) diff --git a/src/components/calendar-picker-view/tests/__snapshots__/calendar-picker-view.test.tsx.snap b/src/components/calendar-picker-view/tests/__snapshots__/calendar-picker-view.test.tsx.snap index b0fa98624c..cf673eba6e 100644 --- a/src/components/calendar-picker-view/tests/__snapshots__/calendar-picker-view.test.tsx.snap +++ b/src/components/calendar-picker-view/tests/__snapshots__/calendar-picker-view.test.tsx.snap @@ -56,7 +56,9 @@ exports[`Calendar custom top 1`] = `
-
+
@@ -620,7 +622,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -1111,7 +1115,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -1545,7 +1551,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -2024,7 +2032,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -2497,7 +2507,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -2991,7 +3003,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -3458,7 +3472,9 @@ exports[`Calendar jump to a day 1`] = `
-
+
@@ -4013,7 +4029,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -4494,7 +4512,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -4967,7 +4987,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -5461,7 +5483,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -5943,7 +5967,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -6419,7 +6445,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -6916,7 +6944,9 @@ exports[`Calendar jump to a day 2`] = `
-
+
@@ -7447,7 +7477,9 @@ exports[`Calendar range mode 1`] = `
-
+
@@ -7993,7 +8025,9 @@ exports[`Calendar single mode 1`] = `
-
+
@@ -8535,7 +8569,9 @@ exports[`Calendar week start on Monday 1`] = `
-
+
diff --git a/src/components/calendar-picker-view/tests/useSyncScroll.ts b/src/components/calendar-picker-view/useSyncScroll.ts similarity index 94% rename from src/components/calendar-picker-view/tests/useSyncScroll.ts rename to src/components/calendar-picker-view/useSyncScroll.ts index d6e95e99fe..5577f10f42 100644 --- a/src/components/calendar-picker-view/tests/useSyncScroll.ts +++ b/src/components/calendar-picker-view/useSyncScroll.ts @@ -1,6 +1,5 @@ import type { Dayjs } from 'dayjs' import { useEvent } from 'rc-util' -// import isVisible from 'rc-util/lib/Dom/isVisible'; import { useEffect, useRef } from 'react' export default function useSyncScroll( From 9777f5ac397446365c37656c9f9359ecfeda4632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:46:53 +0800 Subject: [PATCH 6/7] chore: fix import --- src/components/calendar-picker/tests/calendar-picker.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/calendar-picker/tests/calendar-picker.test.tsx b/src/components/calendar-picker/tests/calendar-picker.test.tsx index b0e80c6cd8..b83fe4c787 100644 --- a/src/components/calendar-picker/tests/calendar-picker.test.tsx +++ b/src/components/calendar-picker/tests/calendar-picker.test.tsx @@ -1,7 +1,7 @@ import MockDate from 'mockdate' import { spyElementPrototype } from 'rc-util/lib/test/domHook' -import React, { act } from 'react' -import { fireEvent, render, testA11y } from 'testing' +import React from 'react' +import { act, fireEvent, render, testA11y } from 'testing' import CalendarPicker, { CalendarPickerRef } from '..' const classPrefix = `adm-calendar-picker-view` From a1010145e049885ac24bde0209d319e7a80fc3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Tue, 2 Jul 2024 19:59:42 +0800 Subject: [PATCH 7/7] test: update snapshot --- .../config-provider.test.tsx.snap | 700 +++++++++++++----- 1 file changed, 525 insertions(+), 175 deletions(-) diff --git a/src/components/config-provider/tests/__snapshots__/config-provider.test.tsx.snap b/src/components/config-provider/tests/__snapshots__/config-provider.test.tsx.snap index 1eff27f4e7..8e50f00c16 100644 --- a/src/components/config-provider/tests/__snapshots__/config-provider.test.tsx.snap +++ b/src/components/config-provider/tests/__snapshots__/config-provider.test.tsx.snap @@ -778,7 +778,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -1262,7 +1264,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -1738,7 +1742,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -2235,7 +2241,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -2705,7 +2713,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -3196,7 +3206,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -3675,7 +3687,9 @@ exports[`ConfigProvider should display the text as ar-SA 1`] = `
-
+
@@ -5422,7 +5436,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -5906,7 +5922,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -6382,7 +6400,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -6879,7 +6899,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -7349,7 +7371,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -7840,7 +7864,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -8319,7 +8345,9 @@ exports[`ConfigProvider should display the text as da-DK 1`] = `
-
+
@@ -10066,7 +10094,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -10550,7 +10580,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -11026,7 +11058,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -11523,7 +11557,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -11993,7 +12029,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -12484,7 +12522,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -12963,7 +13003,9 @@ exports[`ConfigProvider should display the text as de-DE 1`] = `
-
+
@@ -14710,7 +14752,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -15194,7 +15238,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -15670,7 +15716,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -16167,7 +16215,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -16637,7 +16687,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -17128,7 +17180,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -17607,7 +17661,9 @@ exports[`ConfigProvider should display the text as en 1`] = `
-
+
@@ -19354,7 +19410,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -19838,7 +19896,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -20314,7 +20374,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -20811,7 +20873,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -21281,7 +21345,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -21772,7 +21838,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -22251,7 +22319,9 @@ exports[`ConfigProvider should display the text as es 1`] = `
-
+
@@ -23998,7 +24068,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -24482,7 +24554,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -24958,7 +25032,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -25455,7 +25531,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -25925,7 +26003,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -26416,7 +26496,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -26895,7 +26977,9 @@ exports[`ConfigProvider should display the text as fa-IR 1`] = `
-
+
@@ -28642,7 +28726,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -29126,7 +29212,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -29602,7 +29690,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -30099,7 +30189,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -30569,7 +30661,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -31060,7 +31154,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -31539,7 +31635,9 @@ exports[`ConfigProvider should display the text as fr-FR 1`] = `
-
+
@@ -33286,7 +33384,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -33770,7 +33870,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -34246,7 +34348,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -34743,7 +34847,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -35213,7 +35319,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -35704,7 +35812,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -36183,7 +36293,9 @@ exports[`ConfigProvider should display the text as hu 1`] = `
-
+
@@ -37930,7 +38042,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -38414,7 +38528,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -38890,7 +39006,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -39387,7 +39505,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -39857,7 +39977,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -40348,7 +40470,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -40827,7 +40951,9 @@ exports[`ConfigProvider should display the text as id-ID 1`] = `
-
+
@@ -42574,7 +42700,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -43058,7 +43186,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -43534,7 +43664,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -44031,7 +44163,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -44501,7 +44635,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -44992,7 +45128,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -45471,7 +45609,9 @@ exports[`ConfigProvider should display the text as in-ID 1`] = `
-
+
@@ -47218,7 +47358,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -47702,7 +47844,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -48178,7 +48322,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -48675,7 +48821,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -49145,7 +49293,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -49636,7 +49786,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -50115,7 +50267,9 @@ exports[`ConfigProvider should display the text as it-IT 1`] = `
-
+
@@ -51862,7 +52016,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -52346,7 +52502,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -52822,7 +52980,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -53319,7 +53479,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -53789,7 +53951,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -54280,7 +54444,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -54759,7 +54925,9 @@ exports[`ConfigProvider should display the text as ja-JP 1`] = `
-
+
@@ -56506,7 +56674,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -56990,7 +57160,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -57466,7 +57638,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -57963,7 +58137,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -58433,7 +58609,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -58924,7 +59102,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -59403,7 +59583,9 @@ exports[`ConfigProvider should display the text as kk-KZ 1`] = `
-
+
@@ -61150,7 +61332,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -61634,7 +61818,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -62110,7 +62296,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -62607,7 +62795,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -63077,7 +63267,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -63568,7 +63760,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -64047,7 +64241,9 @@ exports[`ConfigProvider should display the text as ko-KR 1`] = `
-
+
@@ -65794,7 +65990,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -66278,7 +66476,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -66754,7 +66954,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -67251,7 +67453,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -67721,7 +67925,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -68212,7 +68418,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -68691,7 +68899,9 @@ exports[`ConfigProvider should display the text as ms-MY 1`] = `
-
+
@@ -70438,7 +70648,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -70922,7 +71134,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -71398,7 +71612,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -71895,7 +72111,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -72365,7 +72583,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -72856,7 +73076,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -73335,7 +73557,9 @@ exports[`ConfigProvider should display the text as nb-NO 1`] = `
-
+
@@ -75082,7 +75306,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -75566,7 +75792,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -76042,7 +76270,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -76539,7 +76769,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -77009,7 +77241,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -77500,7 +77734,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -77979,7 +78215,9 @@ exports[`ConfigProvider should display the text as nl-NL 1`] = `
-
+
@@ -79726,7 +79964,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -80210,7 +80450,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -80686,7 +80928,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -81183,7 +81427,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -81653,7 +81899,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -82144,7 +82392,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -82623,7 +82873,9 @@ exports[`ConfigProvider should display the text as pt-BR 1`] = `
-
+
@@ -84370,7 +84622,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -84854,7 +85108,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -85330,7 +85586,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -85827,7 +86085,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -86297,7 +86557,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -86788,7 +87050,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -87267,7 +87531,9 @@ exports[`ConfigProvider should display the text as ru 1`] = `
-
+
@@ -89014,7 +89280,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -89498,7 +89766,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -89974,7 +90244,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -90471,7 +90743,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -90941,7 +91215,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -91432,7 +91708,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -91911,7 +92189,9 @@ exports[`ConfigProvider should display the text as th-TH 1`] = `
-
+
@@ -93658,7 +93938,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -94142,7 +94424,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -94618,7 +94902,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -95115,7 +95401,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -95585,7 +95873,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -96076,7 +96366,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -96555,7 +96847,9 @@ exports[`ConfigProvider should display the text as tr-TR 1`] = `
-
+
@@ -98302,7 +98596,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -98786,7 +99082,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -99262,7 +99560,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -99759,7 +100059,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -100229,7 +100531,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -100720,7 +101024,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -101199,7 +101505,9 @@ exports[`ConfigProvider should display the text as vi-VN 1`] = `
-
+
@@ -102946,7 +103254,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -103430,7 +103740,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -103906,7 +104218,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -104403,7 +104717,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -104873,7 +105189,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -105364,7 +105682,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -105843,7 +106163,9 @@ exports[`ConfigProvider should display the text as zh-CH 1`] = `
-
+
@@ -107590,7 +107912,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -108074,7 +108398,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -108550,7 +108876,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -109047,7 +109375,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -109517,7 +109847,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -110008,7 +110340,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -110487,7 +110821,9 @@ exports[`ConfigProvider should display the text as zh-HK 1`] = `
-
+
@@ -112234,7 +112570,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -112718,7 +113056,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -113194,7 +113534,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -113691,7 +114033,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -114161,7 +114505,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -114652,7 +114998,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+
@@ -115131,7 +115479,9 @@ exports[`ConfigProvider should display the text as zh-TW 1`] = `
-
+