time-picker.js 7.2 KB

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