bb9c86f216dcc9811918d3f946a25a21.json 25.7 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport padStart from 'lodash/padStart';\nimport { PickerPanel as RCPickerPanel } from 'rc-picker';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport enUS from './locale/en_US';\nimport { ConfigContext } from '../config-provider';\nimport CalendarHeader from './Header';\n\nfunction generateCalendar(generateConfig) {\n  function isSameYear(date1, date2) {\n    return date1 && date2 && generateConfig.getYear(date1) === generateConfig.getYear(date2);\n  }\n\n  function isSameMonth(date1, date2) {\n    return isSameYear(date1, date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2);\n  }\n\n  function isSameDate(date1, date2) {\n    return isSameMonth(date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n  }\n\n  var Calendar = function Calendar(props) {\n    var customizePrefixCls = props.prefixCls,\n        className = props.className,\n        style = props.style,\n        dateFullCellRender = props.dateFullCellRender,\n        dateCellRender = props.dateCellRender,\n        monthFullCellRender = props.monthFullCellRender,\n        monthCellRender = props.monthCellRender,\n        headerRender = props.headerRender,\n        value = props.value,\n        defaultValue = props.defaultValue,\n        disabledDate = props.disabledDate,\n        mode = props.mode,\n        validRange = props.validRange,\n        _props$fullscreen = props.fullscreen,\n        fullscreen = _props$fullscreen === void 0 ? true : _props$fullscreen,\n        onChange = props.onChange,\n        onPanelChange = props.onPanelChange,\n        onSelect = props.onSelect;\n\n    var _React$useContext = React.useContext(ConfigContext),\n        getPrefixCls = _React$useContext.getPrefixCls,\n        direction = _React$useContext.direction;\n\n    var prefixCls = getPrefixCls('picker', customizePrefixCls);\n    var calendarPrefixCls = \"\".concat(prefixCls, \"-calendar\");\n    var today = generateConfig.getNow(); // ====================== State =======================\n    // Value\n\n    var _useMergedState = useMergedState(function () {\n      return value || generateConfig.getNow();\n    }, {\n      defaultValue: defaultValue,\n      value: value\n    }),\n        _useMergedState2 = _slicedToArray(_useMergedState, 2),\n        mergedValue = _useMergedState2[0],\n        setMergedValue = _useMergedState2[1]; // Mode\n\n\n    var _useMergedState3 = useMergedState('month', {\n      value: mode\n    }),\n        _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n        mergedMode = _useMergedState4[0],\n        setMergedMode = _useMergedState4[1];\n\n    var panelMode = React.useMemo(function () {\n      return mergedMode === 'year' ? 'month' : 'date';\n    }, [mergedMode]); // Disabled Date\n\n    var mergedDisabledDate = React.useCallback(function (date) {\n      var notInRange = validRange ? generateConfig.isAfter(validRange[0], date) || generateConfig.isAfter(date, validRange[1]) : false;\n      return notInRange || !!(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n    }, [disabledDate, validRange]); // ====================== Events ======================\n\n    var triggerPanelChange = function triggerPanelChange(date, newMode) {\n      if (onPanelChange) {\n        onPanelChange(date, newMode);\n      }\n    };\n\n    var triggerChange = function triggerChange(date) {\n      setMergedValue(date);\n\n      if (!isSameDate(date, mergedValue)) {\n        // Trigger when month panel switch month\n        if (panelMode === 'date' && !isSameMonth(date, mergedValue) || panelMode === 'month' && !isSameYear(date, mergedValue)) {\n          triggerPanelChange(date, mergedMode);\n        }\n\n        if (onChange) {\n          onChange(date);\n        }\n      }\n    };\n\n    var triggerModeChange = function triggerModeChange(newMode) {\n      setMergedMode(newMode);\n      triggerPanelChange(mergedValue, newMode);\n    };\n\n    var onInternalSelect = function onInternalSelect(date) {\n      triggerChange(date);\n\n      if (onSelect) {\n        onSelect(date);\n      }\n    }; // ====================== Locale ======================\n\n\n    var getDefaultLocale = function getDefaultLocale() {\n      var locale = props.locale;\n\n      var result = _extends(_extends({}, enUS), locale);\n\n      result.lang = _extends(_extends({}, result.lang), (locale || {}).lang);\n      return result;\n    }; // ====================== Render ======================\n\n\n    var dateRender = React.useCallback(function (date) {\n      if (dateFullCellRender) {\n        return dateFullCellRender(date);\n      }\n\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(\"\".concat(prefixCls, \"-cell-inner\"), \"\".concat(calendarPrefixCls, \"-date\"), _defineProperty({}, \"\".concat(calendarPrefixCls, \"-date-today\"), isSameDate(today, date)))\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-value\")\n      }, padStart(String(generateConfig.getDate(date)), 2, '0')), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-content\")\n      }, dateCellRender && dateCellRender(date)));\n    }, [dateFullCellRender, dateCellRender]);\n    var monthRender = React.useCallback(function (date, locale) {\n      if (monthFullCellRender) {\n        return monthFullCellRender(date);\n      }\n\n      var months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(\"\".concat(prefixCls, \"-cell-inner\"), \"\".concat(calendarPrefixCls, \"-date\"), _defineProperty({}, \"\".concat(calendarPrefixCls, \"-date-today\"), isSameMonth(today, date)))\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-value\")\n      }, months[generateConfig.getMonth(date)]), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-content\")\n      }, monthCellRender && monthCellRender(date)));\n    }, [monthFullCellRender, monthCellRender]);\n    return /*#__PURE__*/React.createElement(LocaleReceiver, {\n      componentName: \"Calendar\",\n      defaultLocale: getDefaultLocale\n    }, function (mergedLocale) {\n      var _classNames3;\n\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(calendarPrefixCls, (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-full\"), fullscreen), _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-mini\"), !fullscreen), _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames3), className),\n        style: style\n      }, headerRender ? headerRender({\n        value: mergedValue,\n        type: mergedMode,\n        onChange: onInternalSelect,\n        onTypeChange: triggerModeChange\n      }) : /*#__PURE__*/React.createElement(CalendarHeader, {\n        prefixCls: calendarPrefixCls,\n        value: mergedValue,\n        generateConfig: generateConfig,\n        mode: mergedMode,\n        fullscreen: fullscreen,\n        locale: mergedLocale.lang,\n        validRange: validRange,\n        onChange: onInternalSelect,\n        onModeChange: triggerModeChange\n      }), /*#__PURE__*/React.createElement(RCPickerPanel, {\n        value: mergedValue,\n        prefixCls: prefixCls,\n        locale: mergedLocale.lang,\n        generateConfig: generateConfig,\n        dateRender: dateRender,\n        monthCellRender: function monthCellRender(date) {\n          return monthRender(date, mergedLocale.lang);\n        },\n        onSelect: onInternalSelect,\n        mode: panelMode,\n        picker: panelMode,\n        disabledDate: mergedDisabledDate,\n        hideHeader: true\n      }));\n    });\n  };\n\n  return Calendar;\n}\n\nexport default generateCalendar;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/calendar/generateCalendar.js"],"names":["_defineProperty","_extends","_slicedToArray","React","useMergedState","classNames","padStart","PickerPanel","RCPickerPanel","LocaleReceiver","enUS","ConfigContext","CalendarHeader","generateCalendar","generateConfig","isSameYear","date1","date2","getYear","isSameMonth","getMonth","isSameDate","getDate","Calendar","props","customizePrefixCls","prefixCls","className","style","dateFullCellRender","dateCellRender","monthFullCellRender","monthCellRender","headerRender","value","defaultValue","disabledDate","mode","validRange","_props$fullscreen","fullscreen","onChange","onPanelChange","onSelect","_React$useContext","useContext","getPrefixCls","direction","calendarPrefixCls","concat","today","getNow","_useMergedState","_useMergedState2","mergedValue","setMergedValue","_useMergedState3","_useMergedState4","mergedMode","setMergedMode","panelMode","useMemo","mergedDisabledDate","useCallback","date","notInRange","isAfter","triggerPanelChange","newMode","triggerChange","triggerModeChange","onInternalSelect","getDefaultLocale","locale","result","lang","dateRender","createElement","String","monthRender","months","shortMonths","getShortMonths","componentName","defaultLocale","mergedLocale","_classNames3","type","onTypeChange","onModeChange","picker","hideHeader"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport padStart from 'lodash/padStart';\nimport { PickerPanel as RCPickerPanel } from 'rc-picker';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport enUS from './locale/en_US';\nimport { ConfigContext } from '../config-provider';\nimport CalendarHeader from './Header';\n\nfunction generateCalendar(generateConfig) {\n  function isSameYear(date1, date2) {\n    return date1 && date2 && generateConfig.getYear(date1) === generateConfig.getYear(date2);\n  }\n\n  function isSameMonth(date1, date2) {\n    return isSameYear(date1, date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2);\n  }\n\n  function isSameDate(date1, date2) {\n    return isSameMonth(date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n  }\n\n  var Calendar = function Calendar(props) {\n    var customizePrefixCls = props.prefixCls,\n        className = props.className,\n        style = props.style,\n        dateFullCellRender = props.dateFullCellRender,\n        dateCellRender = props.dateCellRender,\n        monthFullCellRender = props.monthFullCellRender,\n        monthCellRender = props.monthCellRender,\n        headerRender = props.headerRender,\n        value = props.value,\n        defaultValue = props.defaultValue,\n        disabledDate = props.disabledDate,\n        mode = props.mode,\n        validRange = props.validRange,\n        _props$fullscreen = props.fullscreen,\n        fullscreen = _props$fullscreen === void 0 ? true : _props$fullscreen,\n        onChange = props.onChange,\n        onPanelChange = props.onPanelChange,\n        onSelect = props.onSelect;\n\n    var _React$useContext = React.useContext(ConfigContext),\n        getPrefixCls = _React$useContext.getPrefixCls,\n        direction = _React$useContext.direction;\n\n    var prefixCls = getPrefixCls('picker', customizePrefixCls);\n    var calendarPrefixCls = \"\".concat(prefixCls, \"-calendar\");\n    var today = generateConfig.getNow(); // ====================== State =======================\n    // Value\n\n    var _useMergedState = useMergedState(function () {\n      return value || generateConfig.getNow();\n    }, {\n      defaultValue: defaultValue,\n      value: value\n    }),\n        _useMergedState2 = _slicedToArray(_useMergedState, 2),\n        mergedValue = _useMergedState2[0],\n        setMergedValue = _useMergedState2[1]; // Mode\n\n\n    var _useMergedState3 = useMergedState('month', {\n      value: mode\n    }),\n        _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n        mergedMode = _useMergedState4[0],\n        setMergedMode = _useMergedState4[1];\n\n    var panelMode = React.useMemo(function () {\n      return mergedMode === 'year' ? 'month' : 'date';\n    }, [mergedMode]); // Disabled Date\n\n    var mergedDisabledDate = React.useCallback(function (date) {\n      var notInRange = validRange ? generateConfig.isAfter(validRange[0], date) || generateConfig.isAfter(date, validRange[1]) : false;\n      return notInRange || !!(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n    }, [disabledDate, validRange]); // ====================== Events ======================\n\n    var triggerPanelChange = function triggerPanelChange(date, newMode) {\n      if (onPanelChange) {\n        onPanelChange(date, newMode);\n      }\n    };\n\n    var triggerChange = function triggerChange(date) {\n      setMergedValue(date);\n\n      if (!isSameDate(date, mergedValue)) {\n        // Trigger when month panel switch month\n        if (panelMode === 'date' && !isSameMonth(date, mergedValue) || panelMode === 'month' && !isSameYear(date, mergedValue)) {\n          triggerPanelChange(date, mergedMode);\n        }\n\n        if (onChange) {\n          onChange(date);\n        }\n      }\n    };\n\n    var triggerModeChange = function triggerModeChange(newMode) {\n      setMergedMode(newMode);\n      triggerPanelChange(mergedValue, newMode);\n    };\n\n    var onInternalSelect = function onInternalSelect(date) {\n      triggerChange(date);\n\n      if (onSelect) {\n        onSelect(date);\n      }\n    }; // ====================== Locale ======================\n\n\n    var getDefaultLocale = function getDefaultLocale() {\n      var locale = props.locale;\n\n      var result = _extends(_extends({}, enUS), locale);\n\n      result.lang = _extends(_extends({}, result.lang), (locale || {}).lang);\n      return result;\n    }; // ====================== Render ======================\n\n\n    var dateRender = React.useCallback(function (date) {\n      if (dateFullCellRender) {\n        return dateFullCellRender(date);\n      }\n\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(\"\".concat(prefixCls, \"-cell-inner\"), \"\".concat(calendarPrefixCls, \"-date\"), _defineProperty({}, \"\".concat(calendarPrefixCls, \"-date-today\"), isSameDate(today, date)))\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-value\")\n      }, padStart(String(generateConfig.getDate(date)), 2, '0')), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-content\")\n      }, dateCellRender && dateCellRender(date)));\n    }, [dateFullCellRender, dateCellRender]);\n    var monthRender = React.useCallback(function (date, locale) {\n      if (monthFullCellRender) {\n        return monthFullCellRender(date);\n      }\n\n      var months = locale.shortMonths || generateConfig.locale.getShortMonths(locale.locale);\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(\"\".concat(prefixCls, \"-cell-inner\"), \"\".concat(calendarPrefixCls, \"-date\"), _defineProperty({}, \"\".concat(calendarPrefixCls, \"-date-today\"), isSameMonth(today, date)))\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-value\")\n      }, months[generateConfig.getMonth(date)]), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(calendarPrefixCls, \"-date-content\")\n      }, monthCellRender && monthCellRender(date)));\n    }, [monthFullCellRender, monthCellRender]);\n    return /*#__PURE__*/React.createElement(LocaleReceiver, {\n      componentName: \"Calendar\",\n      defaultLocale: getDefaultLocale\n    }, function (mergedLocale) {\n      var _classNames3;\n\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(calendarPrefixCls, (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-full\"), fullscreen), _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-mini\"), !fullscreen), _defineProperty(_classNames3, \"\".concat(calendarPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames3), className),\n        style: style\n      }, headerRender ? headerRender({\n        value: mergedValue,\n        type: mergedMode,\n        onChange: onInternalSelect,\n        onTypeChange: triggerModeChange\n      }) : /*#__PURE__*/React.createElement(CalendarHeader, {\n        prefixCls: calendarPrefixCls,\n        value: mergedValue,\n        generateConfig: generateConfig,\n        mode: mergedMode,\n        fullscreen: fullscreen,\n        locale: mergedLocale.lang,\n        validRange: validRange,\n        onChange: onInternalSelect,\n        onModeChange: triggerModeChange\n      }), /*#__PURE__*/React.createElement(RCPickerPanel, {\n        value: mergedValue,\n        prefixCls: prefixCls,\n        locale: mergedLocale.lang,\n        generateConfig: generateConfig,\n        dateRender: dateRender,\n        monthCellRender: function monthCellRender(date) {\n          return monthRender(date, mergedLocale.lang);\n        },\n        onSelect: onInternalSelect,\n        mode: panelMode,\n        picker: panelMode,\n        disabledDate: mergedDisabledDate,\n        hideHeader: true\n      }));\n    });\n  };\n\n  return Calendar;\n}\n\nexport default generateCalendar;"]},"metadata":{},"sourceType":"module"}