# generated by patch-package 1.0.6
#
# declared package:
#   rc-calendar: 9.15.11
#
diff --git a/node_modules/rc-calendar/lib/FullCalendar.js b/node_modules/rc-calendar/lib/FullCalendar.js
index e0c02cc..a67d875 100644
--- a/node_modules/rc-calendar/lib/FullCalendar.js
+++ b/node_modules/rc-calendar/lib/FullCalendar.js
@@ -69,6 +69,7 @@ var FullCalendar = function (_React$Component) {
 
     _this.state = {
       type: type,
+      mode: null,
       value: props.value || props.defaultValue || (0, _moment2['default'])(),
       selectedValue: props.selectedValue || props.defaultSelectedValue
     };
@@ -104,9 +105,19 @@ var FullCalendar = function (_React$Component) {
         showHeader = props.showHeader,
         headerComponent = props.headerComponent,
         headerRender = props.headerRender,
-        disabledDate = props.disabledDate;
+        disabledDate = props.disabledDate,
+        lang = props.lang,
+        fieldid = props.fieldid,
+        getDateCellAttr = props.getDateCellAttr,
+        renderDateHeaderCell = props.renderDateHeaderCell,
+        renderSelectRow = props.renderSelectRow,
+        scrollAttrs = props.scrollAttrs,
+        mutiple = props.mutiple,
+        markWeekend = props.markWeekend,
+        weekStartsOn = props.weekStartsOn
     var _state = this.state,
-        value = _state.value,
+        value = _state.value.locale(lang),
+        mode = _state.mode,
         type = _state.type;
 
 
@@ -119,10 +130,12 @@ var FullCalendar = function (_React$Component) {
         header = _react2['default'].createElement(TheHeader, (0, _extends3['default'])({
           key: 'calendar-header'
         }, props, {
-          prefixCls: prefixCls + '-full',
+          prefixCls: prefixCls + (headerComponent ? '-switch' : '-full'),
           type: type,
+          mode: mode,
           value: value,
           onTypeChange: this.setType,
+          onPanelChange: this.setMode,
           onValueChange: this.setValue
         }));
       }
@@ -135,7 +148,16 @@ var FullCalendar = function (_React$Component) {
       prefixCls: prefixCls,
       onSelect: this.onSelect,
       value: value,
-      disabledDate: disabledDate
+      disabledDate: disabledDate,
+      mutiple: mutiple,
+      scrollAttrs: scrollAttrs,
+      getDateCellAttr: getDateCellAttr,
+      renderDateHeaderCell: renderDateHeaderCell,
+      renderSelectRow: renderSelectRow,
+      fieldid: fieldid,
+      markWeekend: markWeekend,
+      weekStartsOn: weekStartsOn
+
     }) : _react2['default'].createElement(_MonthTable2['default'], {
       cellRender: props.monthCellRender,
       contentRender: props.monthCellContentRender,
@@ -143,14 +165,17 @@ var FullCalendar = function (_React$Component) {
       onSelect: this.onMonthSelect,
       prefixCls: prefixCls + '-month-panel',
       value: value,
-      disabledDate: disabledDate
+      disabledDate: disabledDate,
+      fieldid: fieldid,
+      markWeekend: markWeekend,
+      weekStartsOn: weekStartsOn
     });
 
-    var children = [header, _react2['default'].createElement(
+    var children = [header, mode === 'date' || !mode ? _react2['default'].createElement(
       'div',
       { key: 'calendar-body', className: prefixCls + '-calendar-body' },
       table
-    )];
+    ) : null];
 
     var className = [prefixCls + '-full'];
 
@@ -204,7 +229,11 @@ var _initialiseProps = function _initialiseProps() {
       target: 'month'
     });
   };
-
+  this.setMode = function (v, mode) {
+    _this2.setState({
+        mode: mode
+    });
+  };
   this.setType = function (type) {
     if (!('type' in _this2.props)) {
       _this2.setState({
diff --git a/node_modules/rc-calendar/lib/calendar/CalendarHeader.js b/node_modules/rc-calendar/lib/calendar/CalendarHeader.js
index 8d84157..0037248 100644
--- a/node_modules/rc-calendar/lib/calendar/CalendarHeader.js
+++ b/node_modules/rc-calendar/lib/calendar/CalendarHeader.js
@@ -130,6 +130,7 @@ var CalendarHeader = function (_React$Component) {
     return _react2['default'].createElement(
       'div',
       { className: prefixCls + '-header' },
+      mode === 'date' || !mode ?
       _react2['default'].createElement(
         'div',
         { style: { position: 'relative' } },
@@ -156,7 +157,7 @@ var CalendarHeader = function (_React$Component) {
           onClick: this.nextYear,
           title: locale.nextYear
         }))
-      ),
+      ): null,
       panel
     );
   };
diff --git a/node_modules/rc-calendar/lib/date/DateConstants.js b/node_modules/rc-calendar/lib/date/DateConstants.js
index 332c160..dd41a29 100644
--- a/node_modules/rc-calendar/lib/date/DateConstants.js
+++ b/node_modules/rc-calendar/lib/date/DateConstants.js
@@ -3,6 +3,7 @@
 exports.__esModule = true;
 exports["default"] = {
   DATE_ROW_COUNT: 6,
+  DATE_ROW_COUNT1:54,
   DATE_COL_COUNT: 7
 };
 module.exports = exports['default'];
\ No newline at end of file
diff --git a/node_modules/rc-calendar/lib/date/DateTBody.js b/node_modules/rc-calendar/lib/date/DateTBody.js
index 3ec75d8..4897973 100644
--- a/node_modules/rc-calendar/lib/date/DateTBody.js
+++ b/node_modules/rc-calendar/lib/date/DateTBody.js
@@ -73,7 +73,14 @@ var DateTBody = function (_React$Component) {
         showWeekNumber = props.showWeekNumber,
         dateRender = props.dateRender,
         disabledDate = props.disabledDate,
-        hoverValue = props.hoverValue;
+        hoverValue = props.hoverValue,
+        fieldid = props.fieldid,
+        getDateCellAttr = props.getDateCellAttr,
+        renderSelectRow = props.renderSelectRow,
+        mutiple = props.mutiple,
+        markWeekend = props.markWeekend,
+        weekStartsOn = props.weekStartsOn,
+        scrollAttrs = props.scrollAttrs || {};
 
     var iIndex = void 0;
     var jIndex = void 0;
@@ -95,21 +102,24 @@ var DateTBody = function (_React$Component) {
     var firstDisableClass = prefixCls + '-disabled-cell-first-of-row';
     var lastDisableClass = prefixCls + '-disabled-cell-last-of-row';
     var lastDayOfMonthClass = prefixCls + '-last-day-of-month';
+    var markDayClass = prefixCls + '-day-mark';
     var month1 = value.clone();
     month1.date(1);
     var day = month1.day();
-    var lastMonthDiffDay = (day + 7 - value.localeData().firstDayOfWeek()) % 7;
+    weekStartsOn = weekStartsOn || 0;
+    var lastMonthDiffDay = (day + 7 - value.clone().locale('en-us').localeData().firstDayOfWeek() - weekStartsOn) % 7;
     // calculate last month
     var lastMonth1 = month1.clone();
-    lastMonth1.add(0 - lastMonthDiffDay, 'days');
+    lastMonth1 = lastMonth1.add(0 - lastMonthDiffDay, 'days');
     var passed = 0;
 
-    for (iIndex = 0; iIndex < _DateConstants2['default'].DATE_ROW_COUNT; iIndex++) {
+    var DATE_ROW_COUNT = mutiple ? _DateConstants2['default'].DATE_ROW_COUNT1 : _DateConstants2['default'].DATE_ROW_COUNT;
+    for (iIndex = 0; iIndex < DATE_ROW_COUNT; iIndex++) {
       for (jIndex = 0; jIndex < _DateConstants2['default'].DATE_COL_COUNT; jIndex++) {
         current = lastMonth1;
         if (passed) {
           current = current.clone();
-          current.add(passed, 'days');
+          current = current.add(passed, 'days');
         }
         dateTable.push(current);
         passed++;
@@ -118,11 +128,13 @@ var DateTBody = function (_React$Component) {
     var tableHtml = [];
     passed = 0;
 
-    for (iIndex = 0; iIndex < _DateConstants2['default'].DATE_ROW_COUNT; iIndex++) {
+    for (iIndex = 0; iIndex < DATE_ROW_COUNT; iIndex++) {
+
       var _cx;
 
       var isCurrentWeek = void 0;
       var weekNumberCell = void 0;
+      var rowSelectCell = void 0;
       var isActiveWeek = false;
       var dateCells = [];
       if (showWeekNumber) {
@@ -136,6 +148,9 @@ var DateTBody = function (_React$Component) {
           dateTable[passed].week()
         );
       }
+      if (renderSelectRow) {
+        rowSelectCell = renderSelectRow(iIndex, dateTable[passed], dateTable[iIndex] )
+      }
       for (jIndex = 0; jIndex < _DateConstants2['default'].DATE_COL_COUNT; jIndex++) {
         var next = null;
         var last = null;
@@ -220,7 +235,7 @@ var DateTBody = function (_React$Component) {
           }
         }
 
-        if (selected) {
+        if (selected && !mutiple) {
           cls += ' ' + selectedClass;
         }
 
@@ -228,6 +243,21 @@ var DateTBody = function (_React$Component) {
           cls += ' ' + disabledClass;
         }
 
+        if (markWeekend && weekStartsOn == 1 && (jIndex === 5 || jIndex === 6)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && weekStartsOn == 2 && (jIndex === 4 || jIndex === 5)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && weekStartsOn == 3 && (jIndex === 3 || jIndex === 4)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && weekStartsOn == 4 && (jIndex === 2 || jIndex === 3)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && weekStartsOn == 5 && (jIndex === 1 || jIndex === 2)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && weekStartsOn == 6 && (jIndex === 0 || jIndex === 1)) {
+          cls += ' ' + markDayClass;
+        } else if (markWeekend && (weekStartsOn == 0 || !weekStartsOn) && (jIndex === 0 || jIndex === 6)) {
+          cls += ' ' + markDayClass;
+        }
         var dateHtml = void 0;
         if (dateRender) {
           dateHtml = dateRender(current, value);
@@ -244,17 +274,22 @@ var DateTBody = function (_React$Component) {
             content
           );
         }
-
+        var costomAttrs = getDateCellAttr ? getDateCellAttr(current, value) : {};
+        if (costomAttrs.className) {
+            costomAttrs.className += ' ' + cls;
+        }
         dateCells.push(_react2['default'].createElement(
           'td',
-          {
+          Object.assign({
             key: passed,
             onClick: disabled ? undefined : props.onSelect.bind(null, current),
             onMouseEnter: disabled ? undefined : props.onDayHover && props.onDayHover.bind(null, current) || undefined,
             role: 'gridcell',
+            fieldid: fieldid ? fieldid + '_td_' + current.format('YYYY_MM_DD') : undefined,
             title: (0, _util.getTitleString)(current),
             className: cls
           },
+          costomAttrs),
           dateHtml
         ));
 
@@ -269,12 +304,14 @@ var DateTBody = function (_React$Component) {
           className: (0, _classnames2['default'])((_cx = {}, _cx[prefixCls + '-current-week'] = isCurrentWeek, _cx[prefixCls + '-active-week'] = isActiveWeek, _cx))
         },
         weekNumberCell,
+        rowSelectCell,
         dateCells
       ));
     }
+    scrollAttrs.className = scrollAttrs.className ?  scrollAttrs.className + ' ' + prefixCls + '-tbody' : prefixCls + '-tbody';
     return _react2['default'].createElement(
       'tbody',
-      { className: prefixCls + '-tbody' },
+      scrollAttrs,
       tableHtml
     );
   };
diff --git a/node_modules/rc-calendar/lib/date/DateTHead.js b/node_modules/rc-calendar/lib/date/DateTHead.js
index acc7903..cfda4d4 100644
--- a/node_modules/rc-calendar/lib/date/DateTHead.js
+++ b/node_modules/rc-calendar/lib/date/DateTHead.js
@@ -41,14 +41,17 @@ var DateTHead = function (_React$Component) {
     var value = props.value;
     var localeData = value.localeData();
     var prefixCls = props.prefixCls;
+    var renderDateHeaderCell = props.renderDateHeaderCell;
     var veryShortWeekdays = [];
     var weekDays = [];
-    var firstDayOfWeek = localeData.firstDayOfWeek();
+    // var firstDayOfWeek = localeData.firstDayOfWeek();
+    var firstDayOfWeek = 0;
     var showWeekNumberEl = void 0;
     var now = (0, _moment2['default'])();
+    var weekStartsOn = props.weekStartsOn;
     for (var dateColIndex = 0; dateColIndex < _DateConstants2['default'].DATE_COL_COUNT; dateColIndex++) {
       var index = (firstDayOfWeek + dateColIndex) % _DateConstants2['default'].DATE_COL_COUNT;
-      now.day(index);
+      now = now.day(index);
       veryShortWeekdays[dateColIndex] = localeData.weekdaysMin(now);
       weekDays[dateColIndex] = localeData.weekdaysShort(now);
     }
@@ -67,7 +70,24 @@ var DateTHead = function (_React$Component) {
         )
       );
     }
+    
+    if (weekStartsOn == 1) {
+      weekDays = [weekDays[1], weekDays[2], weekDays[3], weekDays[4], weekDays[5], weekDays[6], weekDays[0]]
+    } else if (weekStartsOn == 2) {
+      weekDays = [weekDays[2], weekDays[3], weekDays[4], weekDays[5], weekDays[6], weekDays[0], weekDays[1]]
+    } else if (weekStartsOn == 3) {
+      weekDays = [weekDays[3], weekDays[4], weekDays[5], weekDays[6], weekDays[0], weekDays[1], weekDays[2]]
+    } else if (weekStartsOn == 4) {
+      weekDays = [weekDays[4], weekDays[5], weekDays[6], weekDays[0], weekDays[1], weekDays[2], weekDays[3]]
+    } else if (weekStartsOn == 5) {
+      weekDays = [weekDays[5], weekDays[6], weekDays[0], weekDays[1], weekDays[2], weekDays[3], weekDays[4]]
+    } else if (weekStartsOn == 6) {
+      weekDays = [weekDays[6], weekDays[0], weekDays[1], weekDays[2], weekDays[3], weekDays[4], weekDays[5]]
+    }
     var weekDaysEls = weekDays.map(function (day, xindex) {
+      if (renderDateHeaderCell) {
+        return renderDateHeaderCell(day, xindex, prefixCls)
+      }
       return _react2['default'].createElement(
         'th',
         {
@@ -79,7 +99,8 @@ var DateTHead = function (_React$Component) {
         _react2['default'].createElement(
           'span',
           { className: prefixCls + '-column-header-inner' },
-          veryShortWeekdays[xindex]
+          // veryShortWeekdays[xindex]
+          day
         )
       );
     });
diff --git a/node_modules/rc-calendar/lib/full-calendar/CalendarHeader.js b/node_modules/rc-calendar/lib/full-calendar/CalendarHeader.js
index 42ea57f..0b968ae 100644
--- a/node_modules/rc-calendar/lib/full-calendar/CalendarHeader.js
+++ b/node_modules/rc-calendar/lib/full-calendar/CalendarHeader.js
@@ -53,6 +53,7 @@ var CalendarHeader = function (_Component) {
         yearSelectOffset = _props.yearSelectOffset,
         yearSelectTotal = _props.yearSelectTotal,
         prefixCls = _props.prefixCls,
+        fieldid = _props.fieldid,
         Select = _props.Select;
 
     var start = year - yearSelectOffset;
@@ -70,6 +71,7 @@ var CalendarHeader = function (_Component) {
       Select,
       {
         className: prefixCls + '-header-year-select',
+        fieldid: fieldid? fieldid+ '_year_select' : undefined,
         onChange: this.onYearChange.bind(this),
         dropdownStyle: { zIndex: 2000 },
         dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', fontSize: 12 },
@@ -85,6 +87,7 @@ var CalendarHeader = function (_Component) {
     var props = this.props;
     var t = props.value.clone();
     var prefixCls = props.prefixCls;
+    var fieldid = props.fieldid;
 
     var options = [];
     var Select = props.Select;
@@ -102,6 +105,7 @@ var CalendarHeader = function (_Component) {
       Select,
       {
         className: prefixCls + '-header-month-select',
+        fieldid: fieldid? fieldid + '_month_select' : undefined,
         dropdownStyle: { zIndex: 2000 },
         dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', overflowX: 'hidden', fontSize: 12 },
         optionLabelProp: 'children',
@@ -126,6 +130,7 @@ var CalendarHeader = function (_Component) {
         value = _props2.value,
         locale = _props2.locale,
         prefixCls = _props2.prefixCls,
+        fieldid = _props2.fieldid,
         type = _props2.type,
         showTypeSwitch = _props2.showTypeSwitch,
         headerComponents = _props2.headerComponents;
@@ -139,34 +144,36 @@ var CalendarHeader = function (_Component) {
       'span',
       { className: switchCls },
       type === 'date' ? _react2['default'].createElement(
-        'span',
-        { className: switchCls + '-focus' },
-        locale.month
-      ) : _react2['default'].createElement(
         'span',
         {
-          onClick: this.changeTypeToDate.bind(this),
+          onClick: this.changeTypeToMonth.bind(this),
+          fieldid: fieldid? fieldid + '_switch_year' : undefined,
           className: switchCls + '-normal'
         },
-        locale.month
-      ),
-      type === 'month' ? _react2['default'].createElement(
-        'span',
-        { className: switchCls + '-focus' },
         locale.year
       ) : _react2['default'].createElement(
+        'span',
+        { className: switchCls + '-focus', fieldid: fieldid? fieldid +'_switch_year' : undefined },
+        locale.year
+      ),
+      type === 'month' ? _react2['default'].createElement(
         'span',
         {
-          onClick: this.changeTypeToMonth.bind(this),
+          onClick: this.changeTypeToDate.bind(this),
+          fieldid: fieldid ? fieldid + '_switch_month' : undefined,
           className: switchCls + '-normal'
         },
-        locale.year
+        locale.month
+      ) : _react2['default'].createElement(
+        'span',
+        { className: switchCls + '-focus', fieldid: fieldid ? fieldid + '_switch_month' : undefined },
+        locale.month
       )
     ) : null;
 
     return _react2['default'].createElement(
       'div',
-      { className: prefixCls + '-header' },
+      { className: prefixCls + '-header', fieldid : fieldid ? fieldid + '_calendar_header' : undefined },
       typeSwitcher,
       monthSelect,
       yearSelect,
diff --git a/node_modules/rc-calendar/lib/month/MonthTable.js b/node_modules/rc-calendar/lib/month/MonthTable.js
index 8e55c85..168b992 100644
--- a/node_modules/rc-calendar/lib/month/MonthTable.js
+++ b/node_modules/rc-calendar/lib/month/MonthTable.js
@@ -103,6 +103,7 @@ var MonthTable = function (_Component) {
     var currentMonth = value.month();
     var prefixCls = props.prefixCls,
         locale = props.locale,
+        fieldid = props.fieldid,
         contentRender = props.contentRender,
         cellRender = props.cellRender;
 
@@ -142,6 +143,7 @@ var MonthTable = function (_Component) {
           {
             role: 'gridcell',
             key: monthData.value,
+            fieldid: fieldid ? fieldid + '_month_' + monthData.title : undefined,
             onClick: disabled ? null : function () {
               return _this2.chooseMonth(monthData.value);
             },
