time-picker.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.timePickerProps = exports.default = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  10. var _generatePicker = _interopRequireDefault(require("../date-picker/generatePicker"));
  11. var _props = require("../date-picker/generatePicker/props");
  12. var _devWarning = _interopRequireDefault(require("../vc-util/devWarning"));
  13. var _FormItemContext = require("../form/FormItemContext");
  14. var _omit = _interopRequireDefault(require("../_util/omit"));
  15. var _type = require("../_util/type");
  16. const timePickerProps = () => ({
  17. format: String,
  18. showNow: (0, _type.booleanType)(),
  19. showHour: (0, _type.booleanType)(),
  20. showMinute: (0, _type.booleanType)(),
  21. showSecond: (0, _type.booleanType)(),
  22. use12Hours: (0, _type.booleanType)(),
  23. hourStep: Number,
  24. minuteStep: Number,
  25. secondStep: Number,
  26. hideDisabledOptions: (0, _type.booleanType)(),
  27. popupClassName: String,
  28. status: (0, _type.stringType)()
  29. });
  30. exports.timePickerProps = timePickerProps;
  31. function createTimePicker(generateConfig) {
  32. const DatePicker = (0, _generatePicker.default)(generateConfig, (0, _extends2.default)((0, _extends2.default)({}, timePickerProps()), {
  33. order: {
  34. type: Boolean,
  35. default: true
  36. }
  37. }));
  38. const {
  39. TimePicker: InternalTimePicker,
  40. RangePicker: InternalRangePicker
  41. } = DatePicker;
  42. const TimePicker = (0, _vue.defineComponent)({
  43. name: 'ATimePicker',
  44. inheritAttrs: false,
  45. props: (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, (0, _props.commonProps)()), (0, _props.datePickerProps)()), timePickerProps()), {
  46. addon: {
  47. type: Function
  48. }
  49. }),
  50. slots: Object,
  51. setup(p, _ref) {
  52. let {
  53. slots,
  54. expose,
  55. emit,
  56. attrs
  57. } = _ref;
  58. const props = p;
  59. const formItemContext = (0, _FormItemContext.useInjectFormItemContext)();
  60. (0, _devWarning.default)(!(slots.addon || props.addon), 'TimePicker', '`addon` is deprecated. Please use `v-slot:renderExtraFooter` instead.');
  61. const pickerRef = (0, _vue.ref)();
  62. expose({
  63. focus: () => {
  64. var _a;
  65. (_a = pickerRef.value) === null || _a === void 0 ? void 0 : _a.focus();
  66. },
  67. blur: () => {
  68. var _a;
  69. (_a = pickerRef.value) === null || _a === void 0 ? void 0 : _a.blur();
  70. }
  71. });
  72. const onChange = (value, dateString) => {
  73. emit('update:value', value);
  74. emit('change', value, dateString);
  75. formItemContext.onFieldChange();
  76. };
  77. const onOpenChange = open => {
  78. emit('update:open', open);
  79. emit('openChange', open);
  80. };
  81. const onFocus = e => {
  82. emit('focus', e);
  83. };
  84. const onBlur = e => {
  85. emit('blur', e);
  86. formItemContext.onFieldBlur();
  87. };
  88. const onOk = value => {
  89. emit('ok', value);
  90. };
  91. return () => {
  92. const {
  93. id = formItemContext.id.value
  94. } = props;
  95. //restProps.addon
  96. return (0, _vue.createVNode)(InternalTimePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, attrs), (0, _omit.default)(props, ['onUpdate:value', 'onUpdate:open'])), {}, {
  97. "id": id,
  98. "dropdownClassName": props.popupClassName,
  99. "mode": undefined,
  100. "ref": pickerRef,
  101. "renderExtraFooter": props.addon || slots.addon || props.renderExtraFooter || slots.renderExtraFooter,
  102. "onChange": onChange,
  103. "onOpenChange": onOpenChange,
  104. "onFocus": onFocus,
  105. "onBlur": onBlur,
  106. "onOk": onOk
  107. }), slots);
  108. };
  109. }
  110. });
  111. const TimeRangePicker = (0, _vue.defineComponent)({
  112. name: 'ATimeRangePicker',
  113. inheritAttrs: false,
  114. props: (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, (0, _props.commonProps)()), (0, _props.rangePickerProps)()), timePickerProps()), {
  115. order: {
  116. type: Boolean,
  117. default: true
  118. }
  119. }),
  120. slots: Object,
  121. setup(p, _ref2) {
  122. let {
  123. slots,
  124. expose,
  125. emit,
  126. attrs
  127. } = _ref2;
  128. const props = p;
  129. const pickerRef = (0, _vue.ref)();
  130. const formItemContext = (0, _FormItemContext.useInjectFormItemContext)();
  131. expose({
  132. focus: () => {
  133. var _a;
  134. (_a = pickerRef.value) === null || _a === void 0 ? void 0 : _a.focus();
  135. },
  136. blur: () => {
  137. var _a;
  138. (_a = pickerRef.value) === null || _a === void 0 ? void 0 : _a.blur();
  139. }
  140. });
  141. const onChange = (values, dateStrings) => {
  142. emit('update:value', values);
  143. emit('change', values, dateStrings);
  144. formItemContext.onFieldChange();
  145. };
  146. const onOpenChange = open => {
  147. emit('update:open', open);
  148. emit('openChange', open);
  149. };
  150. const onFocus = e => {
  151. emit('focus', e);
  152. };
  153. const onBlur = e => {
  154. emit('blur', e);
  155. formItemContext.onFieldBlur();
  156. };
  157. const onPanelChange = (values, modes) => {
  158. emit('panelChange', values, modes);
  159. };
  160. const onOk = values => {
  161. emit('ok', values);
  162. };
  163. const onCalendarChange = (values, dateStrings, info) => {
  164. emit('calendarChange', values, dateStrings, info);
  165. };
  166. return () => {
  167. const {
  168. id = formItemContext.id.value
  169. } = props;
  170. return (0, _vue.createVNode)(InternalRangePicker, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, attrs), (0, _omit.default)(props, ['onUpdate:open', 'onUpdate:value'])), {}, {
  171. "id": id,
  172. "dropdownClassName": props.popupClassName,
  173. "picker": "time",
  174. "mode": undefined,
  175. "ref": pickerRef,
  176. "onChange": onChange,
  177. "onOpenChange": onOpenChange,
  178. "onFocus": onFocus,
  179. "onBlur": onBlur,
  180. "onPanelChange": onPanelChange,
  181. "onOk": onOk,
  182. "onCalendarChange": onCalendarChange
  183. }), slots);
  184. };
  185. }
  186. });
  187. return {
  188. TimePicker,
  189. TimeRangePicker
  190. };
  191. }
  192. var _default = exports.default = createTimePicker;