diff --git a/.travis.yml b/.travis.yml index 7aff03e0c..5c04fd525 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,7 @@ sudo: false notifications: email: - - yiminghe@gmail.com - - hust2012jiangkai@gmail.com + - bing.an@seafile.com node_js: - 10 diff --git a/README.md b/README.md index f02550fef..7b4bbfb01 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,12 @@ http://react-component.github.io/calendar/examples/index.html auto whether has ok button in footer + + showHourAndMinute + Boolean + auto + whether has hour-minute chooser in the right panel(for dtable date column) + timePicker React Element @@ -225,6 +231,12 @@ http://react-component.github.io/calendar/examples/index.html called when ok button is pressed, only if it's visible + + onClickRightPanelTime + Function() + + called when right panel hour and minute is clicked, only prop showHourAndMinute is true + dateInputPlaceholder String @@ -744,3 +756,6 @@ open coverage/ dir ## License rc-calendar is released under the MIT license. + +# node version +>= 18.20.4 diff --git a/assets/common/FullCalendar.less b/assets/common/FullCalendar.less index b2713e218..4c8d66a20 100644 --- a/assets/common/FullCalendar.less +++ b/assets/common/FullCalendar.less @@ -19,13 +19,13 @@ float: right; display: inline-block; &-normal:hover { - border-color: #23c0fa; + border-color: #f09f4g; box-shadow: 0 0 2px rgba(45, 183, 245, 0.8); cursor: pointer; } &-focus { - border-color: #3fc7fa; - background-color: #3fc7fa; + border-color: #f09f3f; + background-color: #f09f3f; color: #fff; } > span { @@ -79,13 +79,13 @@ } &-selected-day .@{prefixClass}-date, &-month-panel-selected-cell .@{prefixClass}-month-panel-month { - background-color: #ebfaff; + background-color: #fcecd9; color: #666; } &-today .@{prefixClass}-date, &-month-panel-selected-cell .@{prefixClass}-month-panel-month { - border-top-color: #3FC7FA; - color: #3FC7FA; + border-top-color: #f09f3f; + color: #f09f3f; } } } diff --git a/assets/index/Calendar.less b/assets/index/Calendar.less index 3a755cb28..8b6a096bc 100644 --- a/assets/index/Calendar.less +++ b/assets/index/Calendar.less @@ -2,7 +2,7 @@ position: relative; outline: none; font-family: Arial, "Hiragino Sans GB", "Microsoft Yahei", "Microsoft Sans Serif", "WenQuanYi Micro Hei", sans-serif; - width: 253px; + width: fit-content; border: 1px solid #ccc; list-style: none; font-size: 12px; @@ -14,9 +14,15 @@ border: 1px solid #ccc; line-height: 1.5; + + &-date-panel, &-date-panel-container { + display: flex; + } + &-date-panel, &-panel { position: relative; outline: none; + display: block; } &-week-number { @@ -46,7 +52,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } } @@ -79,7 +85,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } &.@{prefixClass}-time-status:hover{ cursor: pointer; @@ -102,7 +108,7 @@ line-height: 34px; &:hover { - color: #23c0fa; + color: #f09f4g; } } @@ -127,6 +133,66 @@ height: 217px; } + &-right-panel { + width: 68px; + height: inherit; + } + + &-right-panel-header { + height: 34px; + line-height: 34px; + span { + transform: rotate(-90deg); + } + } + + &-right-panel-body { + height: 217px; + border-left: 1px solid #ccc; + overflow-y: scroll; + ul { + list-style: none; + box-sizing: border-box; + margin: 0; + padding: 0; + width: 100%; + } + ul li { + text-align: center; + padding: 8px 0; + cursor: pointer; + } + ul li:hover { + color: #e8bf6a; + } + .@{prefixClass}-selected-time { + color: #f09f3f; + } + &::-webkit-scrollbar { + width: 0; + } + } + + &-right-panel-footer { + height: 39px; + line-height: 34px; + border-left: 1px solid #ccc; + span { + transform: rotate(90deg); + } + } + + &-right-panel-header, &-right-panel-footer { + display: flex; + justify-content: center; + cursor: pointer; + color: #999; + font-size: 16px; + span:after { + content: '›'; + } + } + table { border-collapse: collapse; max-width: 100%; @@ -177,25 +243,25 @@ text-align: center; &:hover { - background: #ebfaff; + background: #fcecd9; cursor: pointer; } } &-selected-day &-date { - background: tint(#3fc7fa, 80%); + background: tint(#f09f3f, 80%); } &-selected-date &-date { - background: #3fc7fa; + background: #f09f3f; color: #fff; &:hover { - background: #3fc7fa; + background: #f09f3f; } } &-today &-date { - border: 1px solid #3fc7fa; + border: 1px solid #f09f3f; } &-disabled-cell &-date { @@ -278,7 +344,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } &-disabled { diff --git a/assets/index/DecadePanel.less b/assets/index/DecadePanel.less index f83c591d0..e8dcbd734 100644 --- a/assets/index/DecadePanel.less +++ b/assets/index/DecadePanel.less @@ -34,7 +34,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } } } @@ -96,17 +96,17 @@ text-align: center; &:hover { - background: #ebfaff; + background: #fcecd9; cursor: pointer; } } .@{prefixClass}-decade-panel-selected-cell .@{prefixClass}-decade-panel-decade { - background: #3fc7fa; + background: #f09f3f; color: #fff; &:hover { - background: #3fc7fa; + background: #f09f3f; color: #fff; } } diff --git a/assets/index/Input.less b/assets/index/Input.less index ac081bc23..9ea3caa2c 100644 --- a/assets/index/Input.less +++ b/assets/index/Input.less @@ -12,11 +12,11 @@ transform: border 0.3s cubic-bezier(0.35, 0, 0.25, 1), background 0.3s cubic-bezier(0.35, 0, 0.25, 1), box-shadow 0.3s cubic-bezier(0.35, 0, 0.25, 1); &:hover { - border-color: #23c0fa; + border-color: #f09f4g; } &:focus { - border-color: #23c0fa; - box-shadow: 0 0 3px #23c0fa; + border-color: #f09f4g; + box-shadow: 0 0 3px #f09f4g; } } \ No newline at end of file diff --git a/assets/index/MonthPanel.less b/assets/index/MonthPanel.less index 1b35f0e6b..7a9fac133 100644 --- a/assets/index/MonthPanel.less +++ b/assets/index/MonthPanel.less @@ -38,7 +38,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } } } @@ -111,7 +111,7 @@ text-align: center; &:hover { - background: #ebfaff; + background: #fcecd9; cursor: pointer; } } @@ -129,11 +129,11 @@ } .@{prefixClass}-month-panel-selected-cell .@{prefixClass}-month-panel-month { - background: #3fc7fa; + background: #f09f3f; color: #fff; &:hover { - background: #3fc7fa; + background: #f09f3f; color: #fff; } } diff --git a/assets/index/TimePanel.less b/assets/index/TimePanel.less index 6701a53c7..afcf7a78a 100644 --- a/assets/index/TimePanel.less +++ b/assets/index/TimePanel.less @@ -57,18 +57,18 @@ margin: 0 auto; &:hover { - background: #ebfaff; + background: #fcecd9; cursor: pointer; } } .@{prefixClass}-time-panel-selected-cell .@{prefixClass}-time-panel-time { - background: #3fc7fa; + background: #f09f3f; color: #fff; &:hover { - background: #3fc7fa; + background: #f09f3f; color: #fff; } } \ No newline at end of file diff --git a/assets/index/YearPanel.less b/assets/index/YearPanel.less index 6b31dc8ec..96ed4d39d 100644 --- a/assets/index/YearPanel.less +++ b/assets/index/YearPanel.less @@ -38,7 +38,7 @@ &:hover { cursor: pointer; - color: #23c0fa; + color: #f09f4g; } } } @@ -110,25 +110,17 @@ text-align: center; &:hover { - background: #ebfaff; + background: #fcecd9; cursor: pointer; } } .@{prefixClass}-year-panel-selected-cell .@{prefixClass}-year-panel-year { - background: #3fc7fa; + background: #f09f3f; color: #fff; &:hover { - background: #3fc7fa; + background: #f09f3f; color: #fff; } } - -.@{prefixClass}-year-panel-last-decade-cell, .@{prefixClass}-year-panel-next-decade-cell { - .@{prefixClass}-year-panel-year{ - user-select: none; - -webkit-user-select: none; - color: rgba(0, 0, 0, 0.25); - } -} \ No newline at end of file diff --git a/examples/antd-calendar.js b/examples/antd-calendar.js index ea2314114..1121bf9b4 100644 --- a/examples/antd-calendar.js +++ b/examples/antd-calendar.js @@ -1,28 +1,25 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; -import Calendar from 'rc-calendar'; -import DatePicker from 'rc-calendar/src/Picker'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import Calendar from '@seafile/seafile-calendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import 'rc-time-picker/assets/index.css'; import TimePickerPanel from 'rc-time-picker/lib/Panel'; - import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM-DD HH:mm:ss'; const cn = location.search.indexOf('cn') !== -1; -const now = moment(); +let now = moment(); if (cn) { - now.locale('zh-cn').utcOffset(8); + now = now.locale('zh-cn'); } else { - now.locale('en-gb').utcOffset(0); + now = now.locale('en-gb'); } function getFormat(time) { @@ -57,10 +54,10 @@ function disabledDate(current) { // allow empty select return false; } - const date = moment(); - date.hour(0); - date.minute(0); - date.second(0); + let date = moment().locale('zh-cn'); + date = date.hour(0); + date = date.minute(0); + date = date.second(0); return current.valueOf() < date.valueOf(); // can not select days before today } @@ -129,6 +126,10 @@ class Demo extends React.Component { }); } + onClickRightPanelTime = () => { + this.onOpenChange(false); + } + getCalendarContainer = () => this.calendarContainerRef.current; toggleDisabled = () => { @@ -150,6 +151,8 @@ class Demo extends React.Component { showDateInput={state.showDateInput} disabledDate={disabledDate} focusablePanel={false} + showHourAndMinute + onClickRightPanelTime={this.onClickRightPanelTime} />); return (
diff --git a/examples/antd-month-calendar.js b/examples/antd-month-calendar.js index 15ed13f29..eafec9d32 100644 --- a/examples/antd-month-calendar.js +++ b/examples/antd-month-calendar.js @@ -1,18 +1,16 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; -import MonthCalendar from 'rc-calendar/src/MonthCalendar'; -import DatePicker from 'rc-calendar/src/Picker'; +import MonthCalendar from '@seafile/seafile-calendar/src/MonthCalendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM'; const cn = location.search.indexOf('cn') !== -1; diff --git a/examples/antd-range-calendar.js b/examples/antd-range-calendar.js index 717d77a19..82bfd236d 100644 --- a/examples/antd-range-calendar.js +++ b/examples/antd-range-calendar.js @@ -2,17 +2,15 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import Picker from 'rc-calendar/src/Picker'; -import RangeCalendar from 'rc-calendar/src/RangeCalendar'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import Picker from '@seafile/seafile-calendar/src/Picker'; +import RangeCalendar from '@seafile/seafile-calendar/src/RangeCalendar'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import TimePickerPanel from 'rc-time-picker/lib/Panel'; -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import 'rc-time-picker/assets/index.css'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const cn = location.search.indexOf('cn') !== -1; @@ -47,10 +45,10 @@ function newArray(start, end) { } function disabledDate(current) { - const date = moment(); - date.hour(0); - date.minute(0); - date.second(0); + let date = moment(); + date = date.hour(0); + date = date.minute(0); + date = date.second(0); return current.isBefore(date); // can not select days before today } diff --git a/examples/control-panel.js b/examples/control-panel.js index 0a8ac633f..a2ba16e4b 100644 --- a/examples/control-panel.js +++ b/examples/control-panel.js @@ -1,9 +1,9 @@ /* eslint react/no-multi-comp:0, no-console:0, no-unused-vars:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import Calendar from 'rc-calendar/src'; -import RangeCalendar from 'rc-calendar/src/RangeCalendar'; +import Calendar from '@seafile/seafile-calendar/src'; +import RangeCalendar from '@seafile/seafile-calendar/src/RangeCalendar'; import Select, { Option } from 'rc-select'; import 'rc-select/assets/index.css'; diff --git a/examples/custom-clear-icon.js b/examples/custom-clear-icon.js index 93b8d4c36..f5f6fe71d 100644 --- a/examples/custom-clear-icon.js +++ b/examples/custom-clear-icon.js @@ -1,10 +1,10 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import Calendar from 'rc-calendar'; -import RangeCalendar from 'rc-calendar/src/RangeCalendar'; +import Calendar from '@seafile/seafile-calendar'; +import RangeCalendar from '@seafile/seafile-calendar/src/RangeCalendar'; import 'rc-time-picker/assets/index.css'; import 'moment/locale/zh-cn'; diff --git a/examples/full-calendar.js b/examples/full-calendar.js index 2cf7ed64b..e3323256f 100644 --- a/examples/full-calendar.js +++ b/examples/full-calendar.js @@ -1,19 +1,17 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import FullCalendar from 'rc-calendar/src/FullCalendar'; +import FullCalendar from '@seafile/seafile-calendar/src/FullCalendar'; import 'rc-select/assets/index.css'; import Select from 'rc-select'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM-DD'; const cn = location.search.indexOf('cn') !== -1; diff --git a/examples/getCalendarContainer.js b/examples/getCalendarContainer.js index fe3c4fd1a..3d956cf28 100644 --- a/examples/getCalendarContainer.js +++ b/examples/getCalendarContainer.js @@ -1,17 +1,15 @@ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import Calendar from 'rc-calendar'; -import DatePicker from 'rc-calendar/src/Picker'; +import Calendar from '@seafile/seafile-calendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; import Dialog from 'rc-dialog'; import 'rc-dialog/assets/index.css'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM-DD'; const cn = location.search.indexOf('cn') !== -1; diff --git a/examples/start-end-range.js b/examples/start-end-range.js index 013dfd1de..ee4cfe41b 100644 --- a/examples/start-end-range.js +++ b/examples/start-end-range.js @@ -1,17 +1,15 @@ /* eslint react/no-multi-comp:0, no-console:0, react/prop-types:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import RangeCalendar from 'rc-calendar/src/RangeCalendar'; -import DatePicker from 'rc-calendar/src/Picker'; +import RangeCalendar from '@seafile/seafile-calendar/src/RangeCalendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM-DD'; diff --git a/examples/start-end.js b/examples/start-end.js index 8014be62b..aaf0d5132 100644 --- a/examples/start-end.js +++ b/examples/start-end.js @@ -1,19 +1,17 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; -import Calendar from 'rc-calendar'; -import DatePicker from 'rc-calendar/src/Picker'; +import Calendar from '@seafile/seafile-calendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import 'rc-time-picker/assets/index.css'; import TimePickerPanel from 'rc-time-picker/lib/Panel'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; const format = 'YYYY-MM-DD HH:mm:ss'; const cn = location.search.indexOf('cn') !== -1; diff --git a/examples/week.js b/examples/week.js index 245b98e02..c4e3d7900 100644 --- a/examples/week.js +++ b/examples/week.js @@ -1,19 +1,17 @@ /* eslint react/no-multi-comp:0, no-console:0 */ -import 'rc-calendar/assets/index.less'; +import '@seafile/seafile-calendar/assets/index.less'; import React from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; -import Calendar from 'rc-calendar'; -import DatePicker from 'rc-calendar/src/Picker'; -import zhCN from 'rc-calendar/src/locale/zh_CN'; -import enUS from 'rc-calendar/src/locale/en_US'; +import Calendar from '@seafile/seafile-calendar'; +import DatePicker from '@seafile/seafile-calendar/src/Picker'; +import zhCN from '@seafile/seafile-calendar/src/locale/zh_CN'; +import enUS from '@seafile/seafile-calendar/src/locale/en_US'; import moment from 'moment'; -import 'moment/locale/zh-cn'; -import 'moment/locale/en-gb'; -const format = 'YYYY-Wo'; +const format = 'YYYY-wo'; const cn = location.search.indexOf('cn') !== -1; const now = moment(); @@ -27,13 +25,13 @@ const style = ` .week-calendar { width: 386px; } -.week-calendar .rc-calendar-tbody > tr:hover -.rc-calendar-date { +.week-calendar .@seafile/seafile-calendar-tbody > tr:hover +.@seafile/seafile-calendar-date { background: #ebfaff; } -.week-calendar .rc-calendar-tbody > tr:hover -.rc-calendar-selected-day .rc-calendar-date { +.week-calendar .@seafile/seafile-calendar-tbody > tr:hover +.@seafile/seafile-calendar-selected-day .@seafile/seafile-calendar-date { background: #3fc7fa; } @@ -45,7 +43,7 @@ const style = ` width:100px; border-right: 1px solid #ccc; } -.week-calendar .rc-calendar-panel { +.week-calendar .@seafile/seafile-calendar-panel { margin-left: 100px; } `; @@ -91,8 +89,8 @@ class Demo extends React.Component { } lastWeek = () => { - const value = this.state.value || now; - value.add(-1, 'weeks'); + let value = this.state.value || now; + value = value.add(-1, 'weeks'); this.setState({ value, open: false, diff --git a/index.d.ts b/index.d.ts index f1edde5e7..c1fcad064 100644 --- a/index.d.ts +++ b/index.d.ts @@ -4,7 +4,6 @@ // Definitions: https://github.com/react-component/calendar import * as React from 'react'; -import { Moment } from 'moment'; export type Mode = 'time' | 'date' | 'month' | 'year' | 'decade'; @@ -12,9 +11,9 @@ export interface Props { prefixCls?: string; className?: string; style?: React.CSSProperties; - defaultValue?: Moment; - value?: Moment; - selectedValue?: Moment; + defaultValue?: Object; + value?: Object; + selectedValue?: object; mode?: Mode; locale?: object; format?: string | string[]; @@ -22,20 +21,21 @@ export interface Props { showWeekNumber?: boolean; showToday?: boolean; showOk?: boolean; - onSelect?: (date: Moment) => void; + onSelect?: ( date: object ) => void; onOk?: () => void; onKeyDown?: () => void; + onClickRightPanelTime?: () => void; timePicker?: React.ReactNode; dateInputPlaceholder?: string; onClear?: () => void; - onChange?: (date: Moment | null) => void; - onPanelChange?: (date: Moment | null, mode: Mode) => void; - disabledDate?: (current: Moment | undefined) => boolean; - disabledTime?: (current: Moment | undefined) => object; - dateRender?: (current: Moment, value: Moment) => React.ReactNode; + onChange?: ( date: object | null ) => void; + onPanelChange?: ( date: Object | null, mode: Mode ) => void; + disabledDate?: ( current: object | undefined ) => boolean; + disabledTime?: ( current: object | undefined ) => object; + dateRender?: ( current: object, value: object ) => React.ReactNode; renderFooter?: () => React.ReactNode; renderSidebar?: () => React.ReactNode; - inputMode?:String + inputMode?: string; } -export default class ReactCalendar extends React.Component {} +export default class ReactCalendar extends React.Component { } diff --git a/package.json b/package.json index e614f3eff..ff9beaebb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "rc-calendar", - "version": "9.15.5", + "name": "@seafile/seafile-calendar", + "version": "0.0.29", "description": "React Calendar", "keywords": [ "react", @@ -20,14 +20,14 @@ ], "main": "lib/index", "module": "es/index", - "homepage": "http://github.com/react-component/calendar", - "author": "yiminghe@gmail.com", + "homepage": "https://github.com/seafileltd/calendar", + "author": "seafile", "repository": { "type": "git", - "url": "git@github.com:react-component/calendar.git" + "url": "https://github.com/seafileltd/calendar.git" }, "bugs": { - "url": "http://github.com/react-component/calendar/issues" + "url": "https://github.com/seafileltd/calendar/issues" }, "licenses": "MIT", "config": { @@ -91,11 +91,15 @@ "dependencies": { "babel-runtime": "6.x", "classnames": "2.x", - "moment": "2.x", + "moment": "1.10.7", + "moment": "^2.30.1", "prop-types": "^15.5.8", "rc-trigger": "^2.2.0", "rc-util": "^4.1.1", "react-lifecycles-compat": "^3.0.4" }, - "types": "index.d.ts" + "types": "index.d.ts", + "overrides": { + "graceful-fs": "^4.2.11" + } } diff --git a/rc-calendar-tests.tsx b/rc-calendar-tests.tsx index b4e37931f..a9d40fc25 100644 --- a/rc-calendar-tests.tsx +++ b/rc-calendar-tests.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; -import * as moment from 'moment'; +import moment, {Moment} from 'moment'; import Calendar from './'; -const action = (date: moment.Moment) => { - date.subtract(1); +const action = ( date: Moment ) => { + date.subtract( 1, 'day' ); }; export default () => ( @@ -14,7 +14,7 @@ export default () => ( showToday showOk={false} onChange={action} - disabledDate={(now: moment.Moment) => false} + disabledDate={( now: Moment ) => false} onSelect={action} inputMode="numeric" /> diff --git a/src/Calendar.jsx b/src/Calendar.jsx index 2e8d89898..7686ab620 100644 --- a/src/Calendar.jsx +++ b/src/Calendar.jsx @@ -3,9 +3,11 @@ import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; import KeyCode from 'rc-util/lib/KeyCode'; import { polyfill } from 'react-lifecycles-compat'; +import moment from 'moment'; import DateTable from './date/DateTable'; import CalendarHeader from './calendar/CalendarHeader'; import CalendarFooter from './calendar/CalendarFooter'; +import CalendarRightPanel from './calendar/CalendarRightPanel'; import { calendarMixinWrapper, calendarMixinPropTypes, @@ -16,7 +18,9 @@ import { commonMixinWrapper, propType, defaultProp } from './mixin/CommonMixin'; import DateInput from './date/DateInput'; import { getTimeConfig, getTodayTime, syncTime } from './util'; import { goStartMonth, goEndMonth, goTime } from './util/toTime'; -import moment from 'moment'; +moment.localeData(); +moment().utc(); +moment().week(); function noop() { } @@ -45,6 +49,8 @@ class Calendar extends React.Component { showWeekNumber: PropTypes.bool, showToday: PropTypes.bool, showOk: PropTypes.bool, + showHourAndMinute: PropTypes.bool, + defaultMinutesTime: PropTypes.string, onSelect: PropTypes.func, onOk: PropTypes.func, onKeyDown: PropTypes.func, @@ -62,6 +68,8 @@ class Calendar extends React.Component { focusablePanel: PropTypes.bool, inputMode: PropTypes.string, onBlur: PropTypes.func, + onClickRightPanelTime: PropTypes.func, + firstDayOfWeek: PropTypes.string, } static defaultProps = { @@ -69,10 +77,13 @@ class Calendar extends React.Component { ...defaultProp, showToday: true, showDateInput: true, + showHourAndMinute: false, timePicker: null, onOk: noop, onPanelChange: noop, + onClickRightPanelTime: noop, focusablePanel: true, + firstDayOfWeek: 'Sunday', } constructor(props) { @@ -273,8 +284,9 @@ class Calendar extends React.Component { const { props, state } = this; const { locale, prefixCls, disabledDate, - dateInputPlaceholder, timePicker, - disabledTime, clearIcon, renderFooter, inputMode, + dateInputPlaceholder, timePicker, onClickRightPanelTime, + disabledTime, clearIcon, renderFooter, inputMode, showHourAndMinute, + firstDayOfWeek, showWeekNumber, } = props; const { value, selectedValue, mode } = state; const showTimePicker = mode === 'time'; @@ -308,7 +320,7 @@ class Calendar extends React.Component { key="date-input" value={value} locale={locale} - placeholder={dateInputPlaceholder} + placeholder={dateInputPlaceholder || this.getFormat()[0]} showClear disabledTime={disabledTime} disabledDate={disabledDate} @@ -319,6 +331,7 @@ class Calendar extends React.Component { onSelect={this.onDateInputSelect} clearIcon={clearIcon} inputMode={inputMode} + showHourAndMinute={showHourAndMinute} /> ) : null; @@ -328,6 +341,7 @@ class Calendar extends React.Component { } children.push(
{dateInputElement} +
@@ -386,6 +401,17 @@ class Calendar extends React.Component { onCloseTimePicker={this.closeTimePicker} />
+ {showHourAndMinute && + + } +
); return this.renderRoot({ diff --git a/src/MonthCalendar.jsx b/src/MonthCalendar.jsx index 857f2f617..2552b6d51 100644 --- a/src/MonthCalendar.jsx +++ b/src/MonthCalendar.jsx @@ -45,26 +45,26 @@ class MonthCalendar extends React.Component { switch (keyCode) { case KeyCode.DOWN: value = stateValue.clone(); - value.add(3, 'months'); + value = value.add(3, 'months'); break; case KeyCode.UP: value = stateValue.clone(); - value.add(-3, 'months'); + value = value.add(-3, 'months'); break; case KeyCode.LEFT: value = stateValue.clone(); if (ctrlKey) { - value.add(-1, 'years'); + value = value.add(-1, 'years'); } else { - value.add(-1, 'months'); + value = value.add(-1, 'months'); } break; case KeyCode.RIGHT: value = stateValue.clone(); if (ctrlKey) { - value.add(1, 'years'); + value = value.add(1, 'years'); } else { - value.add(1, 'months'); + value = value.add(1, 'months'); } break; case KeyCode.ENTER: diff --git a/src/RangeCalendar.js b/src/RangeCalendar.js index 0c2f938da..615e8ef3b 100644 --- a/src/RangeCalendar.js +++ b/src/RangeCalendar.js @@ -1,6 +1,5 @@ import React from 'react'; import PropTypes from 'prop-types'; -import moment from 'moment'; import classnames from 'classnames'; import { polyfill } from 'react-lifecycles-compat'; import KeyCode from 'rc-util/lib/KeyCode'; @@ -11,6 +10,7 @@ import TimePickerButton from './calendar/TimePickerButton'; import { commonMixinWrapper, propType, defaultProp } from './mixin/CommonMixin'; import { syncTime, getTodayTime, isAllowedDate } from './util'; import { goTime, goStartMonth, goEndMonth, includesTime } from './util/toTime'; +import moment from 'moment'; function noop() { } diff --git a/src/calendar/CalendarHeader.jsx b/src/calendar/CalendarHeader.jsx index a7eccfc17..2c4817922 100644 --- a/src/calendar/CalendarHeader.jsx +++ b/src/calendar/CalendarHeader.jsx @@ -6,14 +6,14 @@ import YearPanel from '../year/YearPanel'; import DecadePanel from '../decade/DecadePanel'; function goMonth(direction) { - const next = this.props.value.clone(); - next.add(direction, 'months'); + let next = this.props.value.clone(); + next = next.add(direction, 'months'); this.props.onValueChange(next); } function goYear(direction) { - const next = this.props.value.clone(); - next.add(direction, 'years'); + let next = this.props.value.clone(); + next = next.add(direction, 'years'); this.props.onValueChange(next); } diff --git a/src/calendar/CalendarRightPanel.jsx b/src/calendar/CalendarRightPanel.jsx new file mode 100644 index 000000000..ce3e0b24e --- /dev/null +++ b/src/calendar/CalendarRightPanel.jsx @@ -0,0 +1,92 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import moment from 'moment'; + +export default class CalendarRightPanel extends React.Component { + + static propTypes = { + prefixCls: PropTypes.string, + value: PropTypes.object, + onSelect: PropTypes.func, + onClickRightPanelTime: PropTypes.func, + locale: PropTypes.object, + defaultMinutesTime: PropTypes.string, + cananderIput: PropTypes.string, + } + + constructor(props) { + super(props); + this.state = { + highlightTime: this.props.value || null, + }; + this.timeRef = React.createRef(); + this.times = this.getTimes(); + } + + componentDidMount() { + const { defaultMinutesTime } = this.props; + const showTimeIndex = this.times.findIndex(item => item >= defaultMinutesTime); + const scrollTimeIndex = showTimeIndex > -1 ? showTimeIndex - 1 : 16; + this.timeRef.current.scrollTo(0, 34 * scrollTimeIndex); + } + + onSelect = (value) => { + this.setState({ + highlightTime: value, + }); + this.props.onSelect(value); + this.props.onClickRightPanelTime(); + } + + getTimes = () => { + const times = []; + for (let i = 0; i < 24; i++) { + const str = (`${String(i)}:00`).padStart(5, '0'); + const str1 = (`${String(i)}:30`).padStart(5, '0'); + times.push(str); + times.push(str1); + } + return times; + } + + scrollUp = () => { + this.timeRef.current.scrollBy(0, -200); + } + + scrollDown = () => { + this.timeRef.current.scrollBy(0, 200); + } + + render() { + const { value, prefixCls, locale } = this.props; + const selectedDate = value.format().slice(0, 10); + const highlight = this.state.highlightTime; + const highlightTime = highlight ? highlight.format().slice(11, 16) : null; + const isZhcn = (locale && locale.today === '今天'); + return ( +
+
+ +
+
+
    + {this.times.map((time) => { + let current = moment(`${selectedDate} ${time}`); + current = isZhcn ? current.locale('zh-cn') : current.locale('en-gb'); + return ( +
  • {time}
  • + ); + })} +
+
+
+ +
+
+ ); + } +} diff --git a/src/date/DateConstants.js b/src/date/DateConstants.js index 55f910b00..e64fd817b 100644 --- a/src/date/DateConstants.js +++ b/src/date/DateConstants.js @@ -1,4 +1,19 @@ -export default { +const DATE_ROW_COLUMN_COUNT = { DATE_ROW_COUNT: 6, DATE_COL_COUNT: 7, }; + +const DAY_NAME_TO_INDEX = { + Sunday: 0, + Monday: 1, + Tuesday: 2, + Wednesday: 3, + Thursday: 4, + Friday: 5, + Saturday: 6, +}; + +export default { + DATE_ROW_COLUMN_COUNT, + DAY_NAME_TO_INDEX, +}; diff --git a/src/date/DateInput.js b/src/date/DateInput.js index df7c107f1..5a0e16ec4 100644 --- a/src/date/DateInput.js +++ b/src/date/DateInput.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import KeyCode from 'rc-util/lib/KeyCode'; import { polyfill } from 'react-lifecycles-compat'; import moment from 'moment'; -import { formatDate } from '../util'; +import { formatDate, DATE_FORMATS } from '../util'; let cachedSelectionStart; let cachedSelectionEnd; @@ -26,21 +26,34 @@ class DateInput extends React.Component { selectedValue: PropTypes.object, clearIcon: PropTypes.node, inputMode: PropTypes.string, + onChangeCananderIput: PropTypes.func, } constructor(props) { super(props); const selectedValue = props.selectedValue; + const formatPrefix = this.props.format[0]; + let delimiter; + if (formatPrefix === DATE_FORMATS.Germany_Russia_etc || + formatPrefix === DATE_FORMATS.Germany_Russia_etcAndTime) { + delimiter = '.'; + } else if (formatPrefix === DATE_FORMATS.ISO || formatPrefix === DATE_FORMATS.ISOAndTime) { + delimiter = '-'; + } else { + delimiter = '/'; + } this.state = { str: formatDate(selectedValue, this.props.format), - invalid: false, hasFocus: false, + localeFormat: formatPrefix, + delimiter, + cananderIput: '', }; } componentDidUpdate() { - if (dateInputInstance && this.state.hasFocus && !this.state.invalid && + if (dateInputInstance && this.state.hasFocus && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) { dateInputInstance.setSelectionRange(cachedSelectionStart, cachedSelectionEnd); } @@ -51,56 +64,40 @@ class DateInput extends React.Component { str: '', }); this.props.onClear(null); - } + }; onInputChange = (event) => { const str = event.target.value; const { disabledDate, format, onChange, selectedValue } = this.props; + this.setState({ cananderIput: str }); // 没有内容,合法并直接退出 if (!str) { onChange(null); - this.setState({ - invalid: false, - str, - }); + this.setState({ str }); return; } // 不合法直接退出 - const parsed = moment(str, format, true); - if (!parsed.isValid()) { - this.setState({ - invalid: true, - str, - }); - return; - } + const parsed = moment(str, format); - const value = this.props.value.clone(); - value + let value = this.props.value.clone(); + value = value .year(parsed.year()) .month(parsed.month()) .date(parsed.date()) - .hour(parsed.hour()) - .minute(parsed.minute()) - .second(parsed.second()); - + .hour(parsed.hour() || moment().hour()) + .minute(parsed.minute() || moment().minute()) + .second(parsed.second() || moment().second()); if (!value || (disabledDate && disabledDate(value))) { - this.setState({ - invalid: true, - str, - }); + this.setState({ str }); return; } if (selectedValue !== value || ( selectedValue && value && !selectedValue.isSame(value) )) { - this.setState({ - invalid: false, - str, - }); + this.setState({ str }); onChange(value); } } @@ -138,12 +135,37 @@ class DateInput extends React.Component { // when popup show, click body will call this, bug! const selectedValue = nextProps.selectedValue; if (!state.hasFocus) { - newState = { - str: formatDate(selectedValue, nextProps.format), - invalid: false, - }; + const timeStr = formatDate(selectedValue, nextProps.format).split(' ')[0]; + const parts = timeStr.split(state.delimiter); + const timeParts = formatDate(selectedValue, nextProps.format).split(' ')[1]; + if (state.localeFormat === DATE_FORMATS.ISO) { + if (parts.length === 3) { + newState = { str: `${parts[0].padStart(4, 0)}-${parts[1]}-${parts[2]}` }; + } + } else if (state.localeFormat === DATE_FORMATS.ISOAndTime) { + if (parts.length === 3) { + newState = { str: `${parts[0].padStart(4, 0)}-${parts[1]}-${parts[2]} ${timeParts && timeParts}` };// eslint-disable-line max-len + } + } else if (state.localeFormat === DATE_FORMATS.US) { + if (parts.length === 3) { + newState = { str: `${Number(parts[0])}/${Number(parts[1])}/${parts[2].padStart(4, 0)}` }; + } + } else if (state.localeFormat === DATE_FORMATS.USAndTime) { + if (parts.length === 3) { + newState = { str: `${Number(parts[0])}/${Number(parts[1])}/${parts[2].padStart(4, 0)} ${timeParts && timeParts}` };// eslint-disable-line max-len + } + } else if (state.localeFormat === DATE_FORMATS.European || + state.localeFormat === DATE_FORMATS.Germany_Russia_etc) { + if (parts.length === 3) { + newState = { str: `${Number(parts[0])}${state.delimiter}${Number(parts[1])}${state.delimiter}${parts[2].padStart(4, 0)}` };// eslint-disable-line max-len + } + } else if (state.localeFormat === DATE_FORMATS.EuropeanAndTime || + state.localeFormat === DATE_FORMATS.Germany_Russia_etcAndTime) { + if (parts.length === 3) { + newState = { str: `${Number(parts[0])}${state.delimiter}${Number(parts[1])}${state.delimiter}${parts[2].padStart(4, 0)} ${timeParts && timeParts}` };// eslint-disable-line max-len + } + } } - return newState; } @@ -167,15 +189,14 @@ class DateInput extends React.Component { render() { const props = this.props; - const { invalid, str } = this.state; + const { str } = this.state; const { locale, prefixCls, placeholder, clearIcon, inputMode } = props; - const invalidClass = invalid ? `${prefixCls}-input-invalid` : ''; return (
); } - for (jIndex = 0; jIndex < DateConstants.DATE_COL_COUNT; jIndex++) { + for (jIndex = 0; jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; jIndex++) { let next = null; let last = null; current = dateTable[passed]; - if (jIndex < DateConstants.DATE_COL_COUNT - 1) { + if (jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT - 1) { next = dateTable[passed + 1]; } if (jIndex > 0) { diff --git a/src/date/DateTHead.jsx b/src/date/DateTHead.jsx index 90d675b3a..6001b32ce 100644 --- a/src/date/DateTHead.jsx +++ b/src/date/DateTHead.jsx @@ -1,6 +1,7 @@ import React from 'react'; import DateConstants from './DateConstants'; -import moment from 'moment'; + +const { DAY_NAME_TO_INDEX, DATE_ROW_COLUMN_COUNT } = DateConstants; export default class DateTHead extends React.Component { render() { @@ -10,14 +11,21 @@ export default class DateTHead extends React.Component { const prefixCls = props.prefixCls; const veryShortWeekdays = []; const weekDays = []; - const firstDayOfWeek = localeData.firstDayOfWeek(); + + const allWeekdaysMin = localeData.weekdaysMin(); + const allWeekdaysShort = localeData.weekdaysShort(); + + const firstDayName = typeof props.firstDayOfWeek === 'string' + ? props.firstDayOfWeek[0].toUpperCase() + props.firstDayOfWeek.slice(1) + : 'Sunday'; + const firstDay = DAY_NAME_TO_INDEX[firstDayName] ? DAY_NAME_TO_INDEX[firstDayName] : 0; + let showWeekNumberEl; - const now = moment(); - for (let dateColIndex = 0; dateColIndex < DateConstants.DATE_COL_COUNT; dateColIndex++) { - const index = (firstDayOfWeek + dateColIndex) % DateConstants.DATE_COL_COUNT; - now.day(index); - veryShortWeekdays[dateColIndex] = localeData.weekdaysMin(now); - weekDays[dateColIndex] = localeData.weekdaysShort(now); + const dateColumnCount = DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; + for (let dateColIndex = 0; dateColIndex < dateColumnCount; dateColIndex++) { + const index = (firstDay + dateColIndex) % dateColumnCount; + veryShortWeekdays[dateColIndex] = allWeekdaysMin[index]; + weekDays[dateColIndex] = allWeekdaysShort[index]; } if (props.showWeekNumber) { diff --git a/src/decade/DecadePanel.jsx b/src/decade/DecadePanel.jsx index 2633ab304..b33748f2a 100644 --- a/src/decade/DecadePanel.jsx +++ b/src/decade/DecadePanel.jsx @@ -5,17 +5,17 @@ const COL = 3; import classnames from 'classnames'; function goYear(direction) { - const next = this.state.value.clone(); - next.add(direction, 'years'); + let next = this.state.value.clone(); + next = next.add(direction, 'years'); this.setState({ value: next, }); } function chooseDecade(year, event) { - const next = this.state.value.clone(); - next.year(year); - next.month(this.state.value.month()); + let next = this.state.value.clone(); + next = next.year(year); + next = next.month(this.state.value.month()); this.props.onSelect(next); event.preventDefault(); } diff --git a/src/full-calendar/CalendarHeader.jsx b/src/full-calendar/CalendarHeader.jsx index 8c1b590b9..c9e80007f 100644 --- a/src/full-calendar/CalendarHeader.jsx +++ b/src/full-calendar/CalendarHeader.jsx @@ -7,14 +7,14 @@ function noop() { class CalendarHeader extends Component { onYearChange(year) { - const newValue = this.props.value.clone(); - newValue.year(parseInt(year, 10)); + let newValue = this.props.value.clone(); + newValue = newValue.year(parseInt(year, 10)); this.props.onValueChange(newValue); } onMonthChange(month) { - const newValue = this.props.value.clone(); - newValue.month(parseInt(month, 10)); + let newValue = this.props.value.clone(); + newValue = newValue.month(parseInt(month, 10)); this.props.onValueChange(newValue); } @@ -44,13 +44,13 @@ class CalendarHeader extends Component { monthSelectElement(month) { const props = this.props; - const t = props.value.clone(); + let t = props.value.clone(); const { prefixCls } = props; const options = []; const Select = props.Select; for (let index = 0; index < 12; index++) { - t.month(index); + t = t.month(index); options.push( {getMonthName(t)} diff --git a/src/month/MonthTable.js b/src/month/MonthTable.js index 2b5a6348e..c78cfd2c7 100644 --- a/src/month/MonthTable.js +++ b/src/month/MonthTable.js @@ -7,8 +7,8 @@ const ROW = 4; const COL = 3; function chooseMonth(month) { - const next = this.state.value.clone(); - next.month(month); + let next = this.state.value.clone(); + next = next.month(month); this.setAndSelectValue(next); } @@ -42,13 +42,13 @@ class MonthTable extends Component { months() { const value = this.state.value; - const current = value.clone(); + let current = value.clone(); const months = []; let index = 0; for (let rowIndex = 0; rowIndex < ROW; rowIndex++) { months[rowIndex] = []; for (let colIndex = 0; colIndex < COL; colIndex++) { - current.month(index); + current = current.month(index); const content = getMonthName(current); months[rowIndex][colIndex] = { value: index, @@ -72,8 +72,8 @@ class MonthTable extends Component { const tds = month.map(monthData => { let disabled = false; if (props.disabledDate) { - const testValue = value.clone(); - testValue.month(monthData.value); + let testValue = value.clone(); + testValue = testValue.month(monthData.value); disabled = props.disabledDate(testValue); } const classNameMap = { @@ -85,14 +85,14 @@ class MonthTable extends Component { }; let cellEl; if (cellRender) { - const currentValue = value.clone(); - currentValue.month(monthData.value); + let currentValue = value.clone(); + currentValue = currentValue.month(monthData.value); cellEl = cellRender(currentValue, locale); } else { let content; if (contentRender) { - const currentValue = value.clone(); - currentValue.month(monthData.value); + let currentValue = value.clone(); + currentValue = currentValue.month(monthData.value); content = contentRender(currentValue, locale); } else { content = monthData.content; diff --git a/src/util/index.js b/src/util/index.js index 59665f68f..88f7dc3db 100644 --- a/src/util/index.js +++ b/src/util/index.js @@ -1,5 +1,16 @@ import moment from 'moment'; +export const DATE_FORMATS = { + ISO: 'YYYY-MM-DD', + ISOAndTime: 'YYYY-MM-DD HH:mm', + US: 'M/D/YYYY', + USAndTime: 'M/D/YYYY HH:mm', + European: 'DD/MM/YYYY', + EuropeanAndTime: 'DD/MM/YYYY HH:mm', + Germany_Russia_etc: 'DD.MM.YYYY', + Germany_Russia_etcAndTime: 'DD.MM.YYYY HH:mm', +}; + const defaultDisabledTime = { disabledHours() { return []; @@ -13,8 +24,8 @@ const defaultDisabledTime = { }; export function getTodayTime(value) { - const today = moment(); - today.locale(value.locale()).utcOffset(value.utcOffset()); + let today = moment(); + today = today.locale(value.locale()).utcOffset(value.utcOffset()); return today; } @@ -35,10 +46,10 @@ export function getMonthName(month) { export function syncTime(from, to) { if (!moment.isMoment(from) || !moment.isMoment(to)) return; - to.hour(from.hour()); - to.minute(from.minute()); - to.second(from.second()); - to.millisecond(from.millisecond()); + to = to.hour(from.hour()); + to = to.minute(from.minute()); + to = to.second(from.second()); + to = to.millisecond(from.millisecond()); } export function getTimeConfig(value, disabledTime) { diff --git a/src/year/YearPanel.jsx b/src/year/YearPanel.jsx index f679a52bd..b0d4acaf6 100644 --- a/src/year/YearPanel.jsx +++ b/src/year/YearPanel.jsx @@ -5,17 +5,17 @@ const ROW = 4; const COL = 3; function goYear(direction) { - const value = this.state.value.clone(); - value.add(direction, 'year'); + let value = this.state.value.clone(); + value = value.add(direction, 'year'); this.setState({ value, }); } function chooseYear(year) { - const value = this.state.value.clone(); - value.year(year); - value.month(this.state.value.month()); + let value = this.state.value.clone(); + value = value.year(year); + value = value.month(this.state.value.month()); this.setState({ value, }); @@ -70,23 +70,13 @@ export default class YearPanel extends React.Component { const classNameMap = { [`${prefixCls}-cell`]: 1, [`${prefixCls}-selected-cell`]: yearData.year === currentYear, - [`${prefixCls}-last-decade-cell`]: yearData.year < startYear, - [`${prefixCls}-next-decade-cell`]: yearData.year > endYear, }; - let clickHandler; - if (yearData.year < startYear) { - clickHandler = this.previousDecade; - } else if (yearData.year > endYear) { - clickHandler = this.nextDecade; - } else { - clickHandler = chooseYear.bind(this, yearData.year); - } return ( { it('left works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-1, 'day'); + let expected = original.clone(); + expected = expected.add(-1, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.LEFT }); expect(calendar.state().value.date()).toBe(expected.date()); @@ -214,8 +214,8 @@ describe('Calendar', () => { it('right works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(1, 'day'); + let expected = original.clone(); + expected = expected.add(1, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.RIGHT }); expect(calendar.state().value.date()).toBe(expected.date()); expect(input.getDOMNode().value).toBe(''); @@ -223,14 +223,14 @@ describe('Calendar', () => { it('up works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-7, 'day'); + let expected = original.clone(); + expected = expected.add(-7, 'day'); }); it('left works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-1, 'day'); + let expected = original.clone(); + expected = expected.add(-1, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.LEFT }); expect(calendar.state().value.date()).toBe(expected.date()); @@ -240,8 +240,8 @@ describe('Calendar', () => { it('right works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(1, 'day'); + let expected = original.clone(); + expected = expected.add(1, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.RIGHT }); expect(calendar.state().value.date()).toBe(expected.date()); expect(input.getDOMNode().value).toBe(''); @@ -249,8 +249,8 @@ describe('Calendar', () => { it('up works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-7, 'day'); + let expected = original.clone(); + expected = expected.add(-7, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.UP }); expect(calendar.state().value.date()).toBe(expected.date()); expect(input.getDOMNode().value).toBe(''); @@ -258,8 +258,8 @@ describe('Calendar', () => { it('down works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(7, 'day'); + let expected = original.clone(); + expected = expected.add(7, 'day'); calendar.simulate('keyDown', { keyCode: keyCode.DOWN }); expect(calendar.state().value.date()).toBe(expected.date()); expect(input.getDOMNode().value).toBe(''); @@ -267,8 +267,8 @@ describe('Calendar', () => { it('pageDown works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(1, 'month'); + let expected = original.clone(); + expected = expected.add(1, 'month'); calendar.simulate('keyDown', { keyCode: keyCode.PAGE_DOWN }); expect(calendar.state().value.month()).toBe(expected.month()); expect(input.getDOMNode().value).toBe(''); @@ -276,8 +276,8 @@ describe('Calendar', () => { it('pageUp works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-1, 'month'); + let expected = original.clone(); + expected = expected.add(-1, 'month'); calendar.simulate('keyDown', { keyCode: keyCode.PAGE_UP }); expect(calendar.state().value.month()).toBe(expected.month()); expect(input.getDOMNode().value).toBe(''); @@ -285,8 +285,8 @@ describe('Calendar', () => { it('ctrl left works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(-1, 'year'); + let expected = original.clone(); + expected = expected.add(-1, 'year'); calendar.simulate('keyDown', { keyCode: keyCode.LEFT, ctrlKey: 1, @@ -297,8 +297,8 @@ describe('Calendar', () => { it('ctrl right works', () => { const original = calendar.state().value; - const expected = original.clone(); - expected.add(1, 'year'); + let expected = original.clone(); + expected = expected.add(1, 'year'); calendar.simulate('keyDown', { keyCode: keyCode.RIGHT, ctrlKey: 1, @@ -351,10 +351,10 @@ describe('Calendar', () => { if (!current) { return false; } - const date = moment(); - date.hour(0); - date.minute(0); - date.second(0); + let date = moment(); + date = date.hour(0); + date = date.minute(0); + date = date.second(0); return current.valueOf() < date.valueOf(); } diff --git a/tests/MonthCalendar.spec.js b/tests/MonthCalendar.spec.js index 40e091024..04193c380 100644 --- a/tests/MonthCalendar.spec.js +++ b/tests/MonthCalendar.spec.js @@ -2,8 +2,8 @@ import React from 'react'; import { mount } from 'enzyme'; import keyCode from 'rc-util/lib/KeyCode'; -import moment from 'moment'; import MonthCalendar from '../src/MonthCalendar'; +import moment from 'moment'; describe('MonthCalendar', () => { it('year or decade panel work correctly', () => { diff --git a/tests/Picker.spec.jsx b/tests/Picker.spec.jsx index 2eed444d6..d67d395e2 100644 --- a/tests/Picker.spec.jsx +++ b/tests/Picker.spec.jsx @@ -1,11 +1,11 @@ import React from 'react'; -import moment from 'moment'; import { mount } from 'enzyme'; import keyCode from 'rc-util/lib/KeyCode'; import Calendar from '../index'; import DatePicker from '../src/Picker'; import RangeCalendar from '../src/RangeCalendar'; import CalendarLocale from '../src/locale/en_US'; +import moment from 'moment'; const format = ('YYYY-MM-DD'); const VALUE = moment([2015, 5, 1]); @@ -83,9 +83,9 @@ describe('DatePicker', () => { day.simulate('click'); expect(change).not.toBeFalsy(); expect(change.year()).toEqual(2015); - expect(change.month()).toEqual(5); - expect(change.date()).toEqual(2); - expect(input.getDOMNode().value).toEqual('2015-06-02'); + expect(change.month()).toEqual(3); + expect(change.date()).toEqual(28); + expect(input.getDOMNode().value).toEqual('2015-04-28'); expect(picker.state().open).toBeFalsy(); }); @@ -108,12 +108,12 @@ describe('DatePicker', () => { expect(change).not.toBeFalsy(); expect(change.length).toEqual(2); expect(change[0].year()).toEqual(2015); - expect(change[0].month()).toEqual(5); - expect(change[0].date()).toEqual(2); + expect(change[0].month()).toEqual(3); + expect(change[0].date()).toEqual(28); expect(change[1].year()).toEqual(2015); - expect(change[1].month()).toEqual(5); - expect(change[1].date()).toEqual(3); - expect(input.getDOMNode().value).toEqual('2015-06-02 - 2015-06-03'); + expect(change[1].month()).toEqual(3); + expect(change[1].date()).toEqual(29); + expect(input.getDOMNode().value).toEqual('2015-04-28 - 2015-04-29'); expect(picker.state().open).toBeFalsy(); }); diff --git a/tests/RangeCalendar.spec.jsx b/tests/RangeCalendar.spec.jsx index 7448fe78f..cb43506b3 100644 --- a/tests/RangeCalendar.spec.jsx +++ b/tests/RangeCalendar.spec.jsx @@ -1,10 +1,10 @@ /* eslint-disable no-undef, max-len, react/no-multi-comp */ import React from 'react'; -import moment from 'moment'; import { mount, render } from 'enzyme'; import keyCode from 'rc-util/lib/KeyCode'; import TimePickerPanel from 'rc-time-picker/lib/Panel'; import RangeCalendar from '../src/RangeCalendar'; +import moment from 'moment'; const format = ('YYYY-MM-DD'); @@ -143,12 +143,11 @@ describe('RangeCalendar', () => { it('onSelect works', () => { function onSelect(d) { - expect(d[0].format(format)).toBe('2015-09-04'); - expect(d[1].format(format)).toBe('2015-10-02'); + expect(d[0].format(format)).toBe('2015-07-31'); + expect(d[1].format(format)).toBe('2015-07-31'); } const now = moment([2015, 8, 29]); - const wrapper = mount( { showWeekNumber /> ); - wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(5).simulate('click'); // 9.4 - expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-09-04'); - wrapper.find('.rc-calendar-range-right .rc-calendar-date').at(5).simulate('click'); // 10.2 - expect(wrapper.find('.rc-calendar-input').at(1).getDOMNode().value).toBe('2015-10-02'); + wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(5).simulate('click'); // 7.31 + expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-07-31'); + wrapper.find('.rc-calendar-range-right .rc-calendar-date').at(5).simulate('click'); // 7.31 + expect(wrapper.find('.rc-calendar-input').at(1).getDOMNode().value).toBe('2015-07-31'); }); it('onSelect works reversely', () => { function onSelect(d) { - expect(d[0].format(format)).toBe('2015-09-04'); - expect(d[1].format(format)).toBe('2015-09-14'); + expect(d[0].format(format)).toBe('2015-07-31'); + expect(d[1].format(format)).toBe('2015-08-10'); } const now = moment([2015, 8, 29]); - const wrapper = mount( { /> ); - wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(15).simulate('click'); // 9.14 - expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-09-14'); + wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(15).simulate('click'); // 8.10 + expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-08-10'); - wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(5).simulate('click'); // 9.4 - expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-09-04'); - expect(wrapper.find('.rc-calendar-input').at(1).getDOMNode().value).toBe('2015-09-14'); + wrapper.find('.rc-calendar-range-left .rc-calendar-date').at(5).simulate('click'); // 7.31 + expect(wrapper.find('.rc-calendar-input').at(0).getDOMNode().value).toBe('2015-07-31'); + expect(wrapper.find('.rc-calendar-input').at(1).getDOMNode().value).toBe('2015-08-10'); }); it('onHoverChange works', () => { diff --git a/tests/__snapshots__/Calendar.spec.jsx.snap b/tests/__snapshots__/Calendar.spec.jsx.snap index d87e39193..cc486bfb2 100644 --- a/tests/__snapshots__/Calendar.spec.jsx.snap +++ b/tests/__snapshots__/Calendar.spec.jsx.snap @@ -29,938 +29,942 @@ exports[`Calendar controlled panels render controlled panels correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 14 -
- - - - - - - - - - - - - - - - - - - - - - - - - + + Su + + + + + + + + + + + - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
+
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
+ + Mo + + + + Tu + + + + We + + + + Th + + + + Fr + + + + Sa + +
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -996,938 +1000,942 @@ exports[`Calendar controlled panels render controlled panels correctly 2`] = `
- - - - Mar - + title="Last year (Control + left)" + /> - 2017 - - - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 20 -
- - - - - - - - - - - - - - - - - + + Su + + + + + + + + + + + - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
+
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
+ + Mo + + + + Tu + + + + We + + + + Th + + + + Fr + + + + Sa + +
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -1963,740 +1971,744 @@ exports[`Calendar render render correctly 1`] = `
- - - - 2017年 - + title="上一年 (Control键加左方向键)" + /> - 3月 - - - - -
-
-
- - - + - - - - - - - - - - + + + + + +
+
- - 一 - - - - 二 - - - - 三 - - - - 四 - - - - 五 - - - - 六 - - + - - 日 - -
- - - - - - - - - - - - - - - - - - - - -
- 13 -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - + + 日 + + + + + + + + + + + - - - - - - - - - -
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
+
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
+ + 一 + + + + 二 + + + + 三 + + + + 四 + + + + 五 + + + + 六 + +
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- +
@@ -2732,740 +2744,744 @@ exports[`Calendar render render correctly 2`] = `
- - - - Mar - + title="Last year (Control + left)" + /> - 2017 - - - - -
-
-
- - - + - - - - - - - - - - + + + + + +
+
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - + - - Sa - -
- - - - - - - - -
- 4 -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + Su + + + + + + + + + + + - - - - - - - - - - - - - - - - - - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
+
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
+ + Mo + + + + Tu + + + + We + + + + Th + + + + Fr + + + + Sa + +
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -3501,747 +3517,751 @@ exports[`Calendar render render correctly 3`] = `
- - - - March - + title="Last year (Control + left)" + /> + - 2017 - - - - -
-
-
- - - - - - - - - - - - - + + + + + +
+
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - + - - Sa - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 25 -
- -
- - - - - - - - - - + + Su + + + + + + + + + + + - - - - - - - - - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
+
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
+ + Mo + + + + Tu + + + + We + + + + Th + + + + Fr + + + + Sa + +
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
`; -exports[`Calendar render render correctly with invalid moment object 1`] = ` +exports[`Calendar render render correctly with invalid dayjs object 1`] = `
- - - - Mar - + title="Last year (Control + left)" + /> + - 2017 - - - - -
-
-
- - - - - - - - - - - - - + + + + + +
+
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - + - - Sa - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- 18 -
- -
- - - - - - - - - - - - - - - - - - - + + Su + + + + + + + + + + + - - - - - - - - - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
+
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
+ + Mo + + + + Tu + + + + We + + + + Th + + + + Fr + + + + Sa + +
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
diff --git a/tests/__snapshots__/FullCalendar.spec.js.snap b/tests/__snapshots__/FullCalendar.spec.js.snap index 69df28ea9..cdd760cd3 100644 --- a/tests/__snapshots__/FullCalendar.spec.js.snap +++ b/tests/__snapshots__/FullCalendar.spec.js.snap @@ -109,7 +109,7 @@ exports[`FullCalendar renders custom header correctly 1`] = `
Back to today @@ -1840,7 +1840,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 1`]
Back to today @@ -3495,7 +3495,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 2`] role="row" > @@ -3628,7 +3628,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 2`] @@ -3746,7 +3746,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 2`]
@@ -4568,7 +4568,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 2`] @@ -4686,7 +4686,7 @@ exports[`RangeCalendar controlled panels render controlled panels correctly 2`]
Back to today @@ -5454,7 +5454,7 @@ exports[`RangeCalendar key control 1`] = `
Back to today @@ -6956,7 +6956,7 @@ exports[`RangeCalendar render hoverValue correctly 1`] = `
Back to today diff --git a/tests/__snapshots__/locale.spec.js.snap b/tests/__snapshots__/locale.spec.js.snap index aed844401..28f8811f7 100644 --- a/tests/__snapshots__/locale.spec.js.snap +++ b/tests/__snapshots__/locale.spec.js.snap @@ -29,740 +29,744 @@ exports[`locales renders ar_EG correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -798,740 +802,744 @@ exports[`locales renders bg_BG correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -1567,740 +1575,744 @@ exports[`locales renders ca_ES correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -2336,740 +2348,744 @@ exports[`locales renders cs_CZ correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -3105,740 +3121,744 @@ exports[`locales renders da_DK correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -3874,740 +3894,744 @@ exports[`locales renders de_DE correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -4643,740 +4667,744 @@ exports[`locales renders el_GR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -5412,740 +5440,744 @@ exports[`locales renders en_GB correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -6181,740 +6213,744 @@ exports[`locales renders en_US correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -6950,740 +6986,744 @@ exports[`locales renders es_ES correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -7719,740 +7759,744 @@ exports[`locales renders et_EE correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -8488,740 +8532,744 @@ exports[`locales renders fa_IR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -9257,740 +9305,744 @@ exports[`locales renders fi_FI correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -10026,740 +10078,744 @@ exports[`locales renders fr_BE correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -10795,740 +10851,744 @@ exports[`locales renders fr_FR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -11564,740 +11624,744 @@ exports[`locales renders hu_HU correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -12333,740 +12397,744 @@ exports[`locales renders is_IS correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -13102,740 +13170,744 @@ exports[`locales renders it_IT correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -13871,740 +13943,744 @@ exports[`locales renders ja_JP correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -14640,740 +14716,744 @@ exports[`locales renders ko_KR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -15409,740 +15489,744 @@ exports[`locales renders ku_IQ correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -16178,740 +16262,744 @@ exports[`locales renders nb_NO correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -16947,740 +17035,744 @@ exports[`locales renders nl_BE correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -17716,740 +17808,744 @@ exports[`locales renders nl_NL correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -18485,740 +18581,744 @@ exports[`locales renders pl_PL correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -19254,740 +19354,744 @@ exports[`locales renders pt_BR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -20023,740 +20127,744 @@ exports[`locales renders pt_PT correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -20792,740 +20900,744 @@ exports[`locales renders ru_RU correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -21561,740 +21673,744 @@ exports[`locales renders sk_SK correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -22330,740 +22446,744 @@ exports[`locales renders sl_SI correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -23099,740 +23219,744 @@ exports[`locales renders sr_RS correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -23868,740 +23992,744 @@ exports[`locales renders sv_SE correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -24637,740 +24765,744 @@ exports[`locales renders th_TH correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -25406,740 +25538,744 @@ exports[`locales renders tr_TR correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -26175,740 +26311,744 @@ exports[`locales renders ug_CN correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -26944,740 +27084,744 @@ exports[`locales renders uk_UA correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -27713,740 +27857,744 @@ exports[`locales renders vi_VN correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -28482,740 +28630,744 @@ exports[`locales renders zh_CN correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +
@@ -29251,740 +29403,744 @@ exports[`locales renders zh_TW correctly 1`] = `
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Su - - - - Mo - - - - Tu - - - - We - - - - Th - - - - Fr - - - - Sa - -
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- 9 -
-
-
- 10 -
-
-
- 11 -
-
-
- 12 -
-
-
- 13 -
-
-
- 14 -
-
-
- 15 -
-
-
- 16 -
-
-
- 17 -
-
-
- 18 -
-
-
- 19 -
-
-
- 20 -
-
-
- 21 -
-
-
- 22 -
-
-
- 23 -
-
-
- 24 -
-
-
- 25 -
-
-
- 26 -
-
-
- 27 -
-
-
- 28 -
-
-
- 29 -
-
-
- 30 -
-
-
- 31 -
-
-
- 1 -
-
-
- 2 -
-
-
- 3 -
-
-
- 4 -
-
-
- 5 -
-
-
- 6 -
-
-
- 7 -
-
-
- 8 -
-
-
- +