6c036992b8c9ce0fb437c1858f32eaac.json 23.3 KB
{"ast":null,"code":"import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport TimeUnitColumn from './TimeUnitColumn';\nimport { leftPad } from '../../utils/miscUtil';\nimport { setTime as utilSetTime } from '../../utils/timeUtil';\n\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n  if (prevUnits.length !== nextUnits.length) return true; // if any unit's disabled status is different, the units should be re-evaluted\n\n  for (var i = 0; i < prevUnits.length; i += 1) {\n    if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n  }\n\n  return false;\n}\n\nfunction generateUnits(start, end, step, disabledUnits) {\n  var units = [];\n\n  for (var i = start; i <= end; i += step) {\n    units.push({\n      label: leftPad(i, 2),\n      value: i,\n      disabled: (disabledUnits || []).includes(i)\n    });\n  }\n\n  return units;\n}\n\nfunction TimeBody(props) {\n  var generateConfig = props.generateConfig,\n      prefixCls = props.prefixCls,\n      operationRef = props.operationRef,\n      activeColumnIndex = props.activeColumnIndex,\n      value = props.value,\n      showHour = props.showHour,\n      showMinute = props.showMinute,\n      showSecond = props.showSecond,\n      use12Hours = props.use12Hours,\n      _props$hourStep = props.hourStep,\n      hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n      _props$minuteStep = props.minuteStep,\n      minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n      _props$secondStep = props.secondStep,\n      secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n      disabledHours = props.disabledHours,\n      disabledMinutes = props.disabledMinutes,\n      disabledSeconds = props.disabledSeconds,\n      hideDisabledOptions = props.hideDisabledOptions,\n      onSelect = props.onSelect;\n  var columns = [];\n  var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n  var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n  var isPM;\n  var originHour = value ? generateConfig.getHour(value) : -1;\n  var hour = originHour;\n  var minute = value ? generateConfig.getMinute(value) : -1;\n  var second = value ? generateConfig.getSecond(value) : -1;\n\n  var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n    var newDate = value || generateConfig.getNow();\n    var mergedHour = Math.max(0, newHour);\n    var mergedMinute = Math.max(0, newMinute);\n    var mergedSecond = Math.max(0, newSecond);\n    newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n    return newDate;\n  }; // ========================= Unit =========================\n\n\n  var rawHours = generateUnits(0, 23, hourStep, disabledHours && disabledHours());\n  var memorizedRawHours = useMemo(function () {\n    return rawHours;\n  }, rawHours, shouldUnitsUpdate); // Should additional logic to handle 12 hours\n\n  if (use12Hours) {\n    isPM = hour >= 12; // -1 means should display AM\n\n    hour %= 12;\n  }\n\n  var _React$useMemo = React.useMemo(function () {\n    if (!use12Hours) {\n      return [false, false];\n    }\n\n    var AMPMDisabled = [true, true];\n    memorizedRawHours.forEach(function (_ref) {\n      var disabled = _ref.disabled,\n          hourValue = _ref.value;\n      if (disabled) return;\n\n      if (hourValue >= 12) {\n        AMPMDisabled[1] = false;\n      } else {\n        AMPMDisabled[0] = false;\n      }\n    });\n    return AMPMDisabled;\n  }, [use12Hours, memorizedRawHours]),\n      _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n      AMDisabled = _React$useMemo2[0],\n      PMDisabled = _React$useMemo2[1];\n\n  var hours = React.useMemo(function () {\n    if (!use12Hours) return memorizedRawHours;\n    return memorizedRawHours.filter(isPM ? function (hourMeta) {\n      return hourMeta.value >= 12;\n    } : function (hourMeta) {\n      return hourMeta.value < 12;\n    }).map(function (hourMeta) {\n      var hourValue = hourMeta.value % 12;\n      var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n      return _objectSpread(_objectSpread({}, hourMeta), {}, {\n        label: hourLabel,\n        value: hourValue\n      });\n    });\n  }, [use12Hours, memorizedRawHours]);\n  var minutes = generateUnits(0, 59, minuteStep, disabledMinutes && disabledMinutes(originHour));\n  var seconds = generateUnits(0, 59, secondStep, disabledSeconds && disabledSeconds(originHour, minute)); // ====================== Operations ======================\n\n  operationRef.current = {\n    onUpDown: function onUpDown(diff) {\n      var column = columns[activeColumnIndex];\n\n      if (column) {\n        var valueIndex = column.units.findIndex(function (unit) {\n          return unit.value === column.value;\n        });\n        var unitLen = column.units.length;\n\n        for (var i = 1; i < unitLen; i += 1) {\n          var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n\n          if (nextUnit.disabled !== true) {\n            column.onSelect(nextUnit.value);\n            break;\n          }\n        }\n      }\n    }\n  }; // ======================== Render ========================\n\n  function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n    if (condition !== false) {\n      columns.push({\n        node: /*#__PURE__*/React.cloneElement(node, {\n          prefixCls: columnPrefixCls,\n          value: columnValue,\n          active: activeColumnIndex === columns.length,\n          onSelect: onColumnSelect,\n          units: units,\n          hideDisabledOptions: hideDisabledOptions\n        }),\n        onSelect: onColumnSelect,\n        value: columnValue,\n        units: units\n      });\n    }\n  } // Hour\n\n\n  addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"hour\"\n  }), hour, hours, function (num) {\n    onSelect(setTime(isPM, num, minute, second), 'mouse');\n  }); // Minute\n\n  addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"minute\"\n  }), minute, minutes, function (num) {\n    onSelect(setTime(isPM, hour, num, second), 'mouse');\n  }); // Second\n\n  addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"second\"\n  }), second, seconds, function (num) {\n    onSelect(setTime(isPM, hour, minute, num), 'mouse');\n  }); // 12 Hours\n\n  var PMIndex = -1;\n\n  if (typeof isPM === 'boolean') {\n    PMIndex = isPM ? 1 : 0;\n  }\n\n  addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"12hours\"\n  }), PMIndex, [{\n    label: 'AM',\n    value: 0,\n    disabled: AMDisabled\n  }, {\n    label: 'PM',\n    value: 1,\n    disabled: PMDisabled\n  }], function (num) {\n    onSelect(setTime(!!num, hour, minute, second), 'mouse');\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: contentPrefixCls\n  }, columns.map(function (_ref2) {\n    var node = _ref2.node;\n    return node;\n  }));\n}\n\nexport default TimeBody;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-picker/es/panels/TimePanel/TimeBody.js"],"names":["_objectSpread","_slicedToArray","React","useMemo","TimeUnitColumn","leftPad","setTime","utilSetTime","shouldUnitsUpdate","prevUnits","nextUnits","length","i","disabled","generateUnits","start","end","step","disabledUnits","units","push","label","value","includes","TimeBody","props","generateConfig","prefixCls","operationRef","activeColumnIndex","showHour","showMinute","showSecond","use12Hours","_props$hourStep","hourStep","_props$minuteStep","minuteStep","_props$secondStep","secondStep","disabledHours","disabledMinutes","disabledSeconds","hideDisabledOptions","onSelect","columns","contentPrefixCls","concat","columnPrefixCls","isPM","originHour","getHour","hour","minute","getMinute","second","getSecond","isNewPM","newHour","newMinute","newSecond","newDate","getNow","mergedHour","Math","max","mergedMinute","mergedSecond","rawHours","memorizedRawHours","_React$useMemo","AMPMDisabled","forEach","_ref","hourValue","_React$useMemo2","AMDisabled","PMDisabled","hours","filter","hourMeta","map","hourLabel","minutes","seconds","current","onUpDown","diff","column","valueIndex","findIndex","unit","unitLen","nextUnit","addColumnNode","condition","node","columnValue","onColumnSelect","cloneElement","active","createElement","key","num","PMIndex","className","_ref2"],"mappings":"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","sourcesContent":["import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport TimeUnitColumn from './TimeUnitColumn';\nimport { leftPad } from '../../utils/miscUtil';\nimport { setTime as utilSetTime } from '../../utils/timeUtil';\n\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n  if (prevUnits.length !== nextUnits.length) return true; // if any unit's disabled status is different, the units should be re-evaluted\n\n  for (var i = 0; i < prevUnits.length; i += 1) {\n    if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n  }\n\n  return false;\n}\n\nfunction generateUnits(start, end, step, disabledUnits) {\n  var units = [];\n\n  for (var i = start; i <= end; i += step) {\n    units.push({\n      label: leftPad(i, 2),\n      value: i,\n      disabled: (disabledUnits || []).includes(i)\n    });\n  }\n\n  return units;\n}\n\nfunction TimeBody(props) {\n  var generateConfig = props.generateConfig,\n      prefixCls = props.prefixCls,\n      operationRef = props.operationRef,\n      activeColumnIndex = props.activeColumnIndex,\n      value = props.value,\n      showHour = props.showHour,\n      showMinute = props.showMinute,\n      showSecond = props.showSecond,\n      use12Hours = props.use12Hours,\n      _props$hourStep = props.hourStep,\n      hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n      _props$minuteStep = props.minuteStep,\n      minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n      _props$secondStep = props.secondStep,\n      secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n      disabledHours = props.disabledHours,\n      disabledMinutes = props.disabledMinutes,\n      disabledSeconds = props.disabledSeconds,\n      hideDisabledOptions = props.hideDisabledOptions,\n      onSelect = props.onSelect;\n  var columns = [];\n  var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n  var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n  var isPM;\n  var originHour = value ? generateConfig.getHour(value) : -1;\n  var hour = originHour;\n  var minute = value ? generateConfig.getMinute(value) : -1;\n  var second = value ? generateConfig.getSecond(value) : -1;\n\n  var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n    var newDate = value || generateConfig.getNow();\n    var mergedHour = Math.max(0, newHour);\n    var mergedMinute = Math.max(0, newMinute);\n    var mergedSecond = Math.max(0, newSecond);\n    newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n    return newDate;\n  }; // ========================= Unit =========================\n\n\n  var rawHours = generateUnits(0, 23, hourStep, disabledHours && disabledHours());\n  var memorizedRawHours = useMemo(function () {\n    return rawHours;\n  }, rawHours, shouldUnitsUpdate); // Should additional logic to handle 12 hours\n\n  if (use12Hours) {\n    isPM = hour >= 12; // -1 means should display AM\n\n    hour %= 12;\n  }\n\n  var _React$useMemo = React.useMemo(function () {\n    if (!use12Hours) {\n      return [false, false];\n    }\n\n    var AMPMDisabled = [true, true];\n    memorizedRawHours.forEach(function (_ref) {\n      var disabled = _ref.disabled,\n          hourValue = _ref.value;\n      if (disabled) return;\n\n      if (hourValue >= 12) {\n        AMPMDisabled[1] = false;\n      } else {\n        AMPMDisabled[0] = false;\n      }\n    });\n    return AMPMDisabled;\n  }, [use12Hours, memorizedRawHours]),\n      _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n      AMDisabled = _React$useMemo2[0],\n      PMDisabled = _React$useMemo2[1];\n\n  var hours = React.useMemo(function () {\n    if (!use12Hours) return memorizedRawHours;\n    return memorizedRawHours.filter(isPM ? function (hourMeta) {\n      return hourMeta.value >= 12;\n    } : function (hourMeta) {\n      return hourMeta.value < 12;\n    }).map(function (hourMeta) {\n      var hourValue = hourMeta.value % 12;\n      var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n      return _objectSpread(_objectSpread({}, hourMeta), {}, {\n        label: hourLabel,\n        value: hourValue\n      });\n    });\n  }, [use12Hours, memorizedRawHours]);\n  var minutes = generateUnits(0, 59, minuteStep, disabledMinutes && disabledMinutes(originHour));\n  var seconds = generateUnits(0, 59, secondStep, disabledSeconds && disabledSeconds(originHour, minute)); // ====================== Operations ======================\n\n  operationRef.current = {\n    onUpDown: function onUpDown(diff) {\n      var column = columns[activeColumnIndex];\n\n      if (column) {\n        var valueIndex = column.units.findIndex(function (unit) {\n          return unit.value === column.value;\n        });\n        var unitLen = column.units.length;\n\n        for (var i = 1; i < unitLen; i += 1) {\n          var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n\n          if (nextUnit.disabled !== true) {\n            column.onSelect(nextUnit.value);\n            break;\n          }\n        }\n      }\n    }\n  }; // ======================== Render ========================\n\n  function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n    if (condition !== false) {\n      columns.push({\n        node: /*#__PURE__*/React.cloneElement(node, {\n          prefixCls: columnPrefixCls,\n          value: columnValue,\n          active: activeColumnIndex === columns.length,\n          onSelect: onColumnSelect,\n          units: units,\n          hideDisabledOptions: hideDisabledOptions\n        }),\n        onSelect: onColumnSelect,\n        value: columnValue,\n        units: units\n      });\n    }\n  } // Hour\n\n\n  addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"hour\"\n  }), hour, hours, function (num) {\n    onSelect(setTime(isPM, num, minute, second), 'mouse');\n  }); // Minute\n\n  addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"minute\"\n  }), minute, minutes, function (num) {\n    onSelect(setTime(isPM, hour, num, second), 'mouse');\n  }); // Second\n\n  addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"second\"\n  }), second, seconds, function (num) {\n    onSelect(setTime(isPM, hour, minute, num), 'mouse');\n  }); // 12 Hours\n\n  var PMIndex = -1;\n\n  if (typeof isPM === 'boolean') {\n    PMIndex = isPM ? 1 : 0;\n  }\n\n  addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n    key: \"12hours\"\n  }), PMIndex, [{\n    label: 'AM',\n    value: 0,\n    disabled: AMDisabled\n  }, {\n    label: 'PM',\n    value: 1,\n    disabled: PMDisabled\n  }], function (num) {\n    onSelect(setTime(!!num, hour, minute, second), 'mouse');\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: contentPrefixCls\n  }, columns.map(function (_ref2) {\n    var node = _ref2.node;\n    return node;\n  }));\n}\n\nexport default TimeBody;"]},"metadata":{},"sourceType":"module"}