Input.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.inputProps = 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 _vnode = require("../../_util/vnode");
  11. var _vueTypes = _interopRequireDefault(require("../../_util/vue-types"));
  12. var _antInputDirective = _interopRequireDefault(require("../../_util/antInputDirective"));
  13. var _classNames = _interopRequireDefault(require("../../_util/classNames"));
  14. var inputProps = {
  15. inputRef: _vueTypes.default.any,
  16. prefixCls: String,
  17. id: String,
  18. inputElement: _vueTypes.default.VueNode,
  19. disabled: {
  20. type: Boolean,
  21. default: undefined
  22. },
  23. autofocus: {
  24. type: Boolean,
  25. default: undefined
  26. },
  27. autocomplete: String,
  28. editable: {
  29. type: Boolean,
  30. default: undefined
  31. },
  32. activeDescendantId: String,
  33. value: String,
  34. open: {
  35. type: Boolean,
  36. default: undefined
  37. },
  38. tabindex: _vueTypes.default.oneOfType([_vueTypes.default.number, _vueTypes.default.string]),
  39. /** Pass accessibility props to input */
  40. attrs: _vueTypes.default.object,
  41. onKeydown: {
  42. type: Function
  43. },
  44. onMousedown: {
  45. type: Function
  46. },
  47. onChange: {
  48. type: Function
  49. },
  50. onPaste: {
  51. type: Function
  52. },
  53. onCompositionstart: {
  54. type: Function
  55. },
  56. onCompositionend: {
  57. type: Function
  58. },
  59. onFocus: {
  60. type: Function
  61. },
  62. onBlur: {
  63. type: Function
  64. }
  65. };
  66. exports.inputProps = inputProps;
  67. var Input = (0, _vue.defineComponent)({
  68. compatConfig: {
  69. MODE: 3
  70. },
  71. name: 'Input',
  72. inheritAttrs: false,
  73. props: inputProps,
  74. setup: function setup(props) {
  75. var blurTimeout = null;
  76. var VCSelectContainerEvent = (0, _vue.inject)('VCSelectContainerEvent');
  77. return function () {
  78. var _inputNode, _inputNode$props;
  79. var prefixCls = props.prefixCls,
  80. id = props.id,
  81. inputElement = props.inputElement,
  82. disabled = props.disabled,
  83. tabindex = props.tabindex,
  84. autofocus = props.autofocus,
  85. autocomplete = props.autocomplete,
  86. editable = props.editable,
  87. activeDescendantId = props.activeDescendantId,
  88. value = props.value,
  89. _onKeydown = props.onKeydown,
  90. _onMousedown = props.onMousedown,
  91. onChange = props.onChange,
  92. onPaste = props.onPaste,
  93. _onCompositionstart = props.onCompositionstart,
  94. _onCompositionend = props.onCompositionend,
  95. _onFocus = props.onFocus,
  96. _onBlur = props.onBlur,
  97. open = props.open,
  98. inputRef = props.inputRef,
  99. attrs = props.attrs;
  100. var inputNode = inputElement || (0, _vue.withDirectives)((0, _vue.createVNode)("input", null, null), [[_antInputDirective.default]]);
  101. var inputProps = inputNode.props || {};
  102. var onOriginKeyDown = inputProps.onKeydown,
  103. onOriginInput = inputProps.onInput,
  104. onOriginFocus = inputProps.onFocus,
  105. onOriginBlur = inputProps.onBlur,
  106. onOriginMouseDown = inputProps.onMousedown,
  107. onOriginCompositionStart = inputProps.onCompositionstart,
  108. onOriginCompositionEnd = inputProps.onCompositionend,
  109. style = inputProps.style;
  110. inputNode = (0, _vnode.cloneElement)(inputNode, (0, _extends2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
  111. type: 'search'
  112. }, inputProps), {}, {
  113. id: id,
  114. ref: inputRef,
  115. disabled: disabled,
  116. tabindex: tabindex,
  117. autocomplete: autocomplete || 'off',
  118. autofocus: autofocus,
  119. class: (0, _classNames.default)("".concat(prefixCls, "-selection-search-input"), (_inputNode = inputNode) === null || _inputNode === void 0 ? void 0 : (_inputNode$props = _inputNode.props) === null || _inputNode$props === void 0 ? void 0 : _inputNode$props.class),
  120. role: 'combobox',
  121. 'aria-expanded': open,
  122. 'aria-haspopup': 'listbox',
  123. 'aria-owns': "".concat(id, "_list"),
  124. 'aria-autocomplete': 'list',
  125. 'aria-controls': "".concat(id, "_list"),
  126. 'aria-activedescendant': activeDescendantId
  127. }, attrs), {}, {
  128. value: editable ? value : '',
  129. readonly: !editable,
  130. unselectable: !editable ? 'on' : null,
  131. style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, style), {}, {
  132. opacity: editable ? null : 0
  133. }),
  134. onKeydown: function onKeydown(event) {
  135. _onKeydown(event);
  136. if (onOriginKeyDown) {
  137. onOriginKeyDown(event);
  138. }
  139. },
  140. onMousedown: function onMousedown(event) {
  141. _onMousedown(event);
  142. if (onOriginMouseDown) {
  143. onOriginMouseDown(event);
  144. }
  145. },
  146. onInput: function onInput(event) {
  147. onChange(event);
  148. if (onOriginInput) {
  149. onOriginInput(event);
  150. }
  151. },
  152. onCompositionstart: function onCompositionstart(event) {
  153. _onCompositionstart(event);
  154. if (onOriginCompositionStart) {
  155. onOriginCompositionStart(event);
  156. }
  157. },
  158. onCompositionend: function onCompositionend(event) {
  159. _onCompositionend(event);
  160. if (onOriginCompositionEnd) {
  161. onOriginCompositionEnd(event);
  162. }
  163. },
  164. onPaste: onPaste,
  165. onFocus: function onFocus() {
  166. clearTimeout(blurTimeout);
  167. onOriginFocus && onOriginFocus(arguments.length <= 0 ? undefined : arguments[0]);
  168. _onFocus && _onFocus(arguments.length <= 0 ? undefined : arguments[0]);
  169. VCSelectContainerEvent === null || VCSelectContainerEvent === void 0 ? void 0 : VCSelectContainerEvent.focus(arguments.length <= 0 ? undefined : arguments[0]);
  170. },
  171. onBlur: function onBlur() {
  172. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  173. args[_key] = arguments[_key];
  174. }
  175. blurTimeout = setTimeout(function () {
  176. onOriginBlur && onOriginBlur(args[0]);
  177. _onBlur && _onBlur(args[0]);
  178. VCSelectContainerEvent === null || VCSelectContainerEvent === void 0 ? void 0 : VCSelectContainerEvent.blur(args[0]);
  179. }, 100);
  180. }
  181. }), inputNode.type === 'textarea' ? {} : {
  182. type: 'search'
  183. }), true, true);
  184. return inputNode;
  185. };
  186. }
  187. });
  188. var _default = Input;
  189. exports.default = _default;