index.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var component_1 = require('./../common/component.js');
  4. component_1.VantComponent({
  5. field: true,
  6. classes: ['input-class', 'right-icon-class'],
  7. props: {
  8. size: String,
  9. icon: String,
  10. label: String,
  11. error: Boolean,
  12. fixed: Boolean,
  13. focus: Boolean,
  14. center: Boolean,
  15. isLink: Boolean,
  16. leftIcon: String,
  17. rightIcon: String,
  18. disabled: Boolean,
  19. autosize: Boolean,
  20. readonly: Boolean,
  21. required: Boolean,
  22. password: Boolean,
  23. iconClass: String,
  24. clearable: Boolean,
  25. inputAlign: String,
  26. customStyle: String,
  27. confirmType: String,
  28. confirmHold: Boolean,
  29. errorMessage: String,
  30. placeholder: String,
  31. placeholderStyle: String,
  32. errorMessageAlign: String,
  33. showConfirmBar: {
  34. type: Boolean,
  35. value: true
  36. },
  37. adjustPosition: {
  38. type: Boolean,
  39. value: true
  40. },
  41. cursorSpacing: {
  42. type: Number,
  43. value: 50
  44. },
  45. maxlength: {
  46. type: Number,
  47. value: -1
  48. },
  49. type: {
  50. type: String,
  51. value: 'text'
  52. },
  53. border: {
  54. type: Boolean,
  55. value: true
  56. },
  57. titleWidth: {
  58. type: String,
  59. value: '90px'
  60. }
  61. },
  62. data: {
  63. showClear: false
  64. },
  65. beforeCreate: function beforeCreate() {
  66. this.focused = false;
  67. },
  68. methods: {
  69. onInput: function onInput(event) {
  70. var _this = this;
  71. var _a = (event.detail || {}).value,
  72. value = _a === void 0 ? '' : _a;
  73. this.set({
  74. value: value,
  75. showClear: this.getShowClear(value)
  76. }, function () {
  77. _this.emitChange(value);
  78. });
  79. },
  80. onFocus: function onFocus(event) {
  81. var _a = event.detail || {},
  82. _b = _a.value,
  83. value = _b === void 0 ? '' : _b,
  84. _c = _a.height,
  85. height = _c === void 0 ? 0 : _c;
  86. this.$emit('focus', { value: value, height: height });
  87. this.focused = true;
  88. this.blurFromClear = false;
  89. this.set({
  90. showClear: this.getShowClear()
  91. });
  92. },
  93. onBlur: function onBlur(event) {
  94. var _this = this;
  95. var _a = event.detail || {},
  96. _b = _a.value,
  97. value = _b === void 0 ? '' : _b,
  98. _c = _a.cursor,
  99. cursor = _c === void 0 ? 0 : _c;
  100. this.$emit('blur', { value: value, cursor: cursor });
  101. this.focused = false;
  102. var showClear = this.getShowClear();
  103. if (this.data.value === value) {
  104. this.set({
  105. showClear: showClear
  106. });
  107. } else if (!this.blurFromClear) {
  108. // fix: the handwritten keyboard does not trigger input change
  109. this.set({
  110. value: value,
  111. showClear: showClear
  112. }, function () {
  113. _this.emitChange(value);
  114. });
  115. }
  116. },
  117. onClickIcon: function onClickIcon() {
  118. this.$emit('click-icon');
  119. },
  120. getShowClear: function getShowClear(value) {
  121. value = value === undefined ? this.data.value : value;
  122. return this.data.clearable && this.focused && value && !this.data.readonly;
  123. },
  124. onClear: function onClear() {
  125. var _this = this;
  126. this.blurFromClear = true;
  127. this.set({
  128. value: '',
  129. showClear: this.getShowClear('')
  130. }, function () {
  131. _this.emitChange('');
  132. _this.$emit('clear', '');
  133. });
  134. },
  135. onConfirm: function onConfirm() {
  136. this.$emit('confirm', this.data.value);
  137. },
  138. emitChange: function emitChange(value) {
  139. this.$emit('input', value);
  140. this.$emit('change', value);
  141. }
  142. }
  143. });
  144. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwiZmllbGQiLCJjbGFzc2VzIiwicHJvcHMiLCJzaXplIiwiaWNvbiIsImxhYmVsIiwiZXJyb3IiLCJmaXhlZCIsImZvY3VzIiwiY2VudGVyIiwiaXNMaW5rIiwibGVmdEljb24iLCJyaWdodEljb24iLCJkaXNhYmxlZCIsImF1dG9zaXplIiwicmVhZG9ubHkiLCJyZXF1aXJlZCIsInBhc3N3b3JkIiwiaWNvbkNsYXNzIiwiY2xlYXJhYmxlIiwiaW5wdXRBbGlnbiIsImN1c3RvbVN0eWxlIiwiY29uZmlybVR5cGUiLCJjb25maXJtSG9sZCIsImVycm9yTWVzc2FnZSIsInBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJTdHlsZSIsImVycm9yTWVzc2FnZUFsaWduIiwic2hvd0NvbmZpcm1CYXIiLCJ0eXBlIiwiYWRqdXN0UG9zaXRpb24iLCJjdXJzb3JTcGFjaW5nIiwibWF4bGVuZ3RoIiwiYm9yZGVyIiwidGl0bGVXaWR0aCIsImRhdGEiLCJzaG93Q2xlYXIiLCJiZWZvcmVDcmVhdGUiLCJtZXRob2RzIiwib25JbnB1dCIsIl90aGlzIiwiX2EiLCJldmVudCIsIm9uRm9jdXMiLCJfYiIsIl9jIiwiaGVpZ2h0Iiwib25CbHVyIiwiY3Vyc29yIiwib25DbGlja0ljb24iLCJnZXRTaG93Q2xlYXIiLCJvbkNsZWFyIiwib25Db25maXJtIiwiZW1pdENoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7QUFDQUEsT0FBQUEsY0FBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsWUFBQUEsRUFBNkMsRUFBRUMsT0FBL0NELElBQTZDLEVBQTdDQTtBQUNBLElBQUlFLGNBQWNDLFFBQWxCLDBCQUFrQkEsQ0FBbEI7QUFDQUQsWUFBQUEsYUFBQUEsQ0FBMEI7QUFDdEJFLFdBRHNCLElBQUE7QUFFdEJDLGFBQVMsQ0FBQSxhQUFBLEVBRmEsa0JBRWIsQ0FGYTtBQUd0QkMsV0FBTztBQUNI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LE9BQUEsR0FBWTtBQUNqQixnQkFBSVgsUUFBSixJQUFBO0FBQ0EsaUJBQUEsYUFBQSxHQUFBLElBQUE7QUFDQSxpQkFBQSxHQUFBLENBQVM7QUFDTDNDLHVCQURLLEVBQUE7QUFFTHVDLDJCQUFXLEtBQUEsWUFBQSxDQUFBLEVBQUE7QUFGTixhQUFULEVBR0csWUFBWTtBQUNYSSxzQkFBQUEsVUFBQUEsQ0FBQUEsRUFBQUE7QUFDQUEsc0JBQUFBLEtBQUFBLENBQUFBLE9BQUFBLEVBQUFBLEVBQUFBO0FBTEosYUFBQTtBQW5EQyxTQUFBO0FBMkRMWSxtQkFBVyxTQUFBLFNBQUEsR0FBWTtBQUNuQixpQkFBQSxLQUFBLENBQUEsU0FBQSxFQUFzQixLQUFBLElBQUEsQ0FBdEIsS0FBQTtBQTVEQyxTQUFBO0FBOERMQyxvQkFBWSxTQUFBLFVBQUEsQ0FBQSxLQUFBLEVBQWlCO0FBQ3pCLGlCQUFBLEtBQUEsQ0FBQSxPQUFBLEVBQUEsS0FBQTtBQUNBLGlCQUFBLEtBQUEsQ0FBQSxRQUFBLEVBQUEsS0FBQTtBQUNIO0FBakVJO0FBaEVhLENBQTFCdkQiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBjb21wb25lbnRfMSA9IHJlcXVpcmUoXCIuLi9jb21tb24vY29tcG9uZW50XCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgZmllbGQ6IHRydWUsXG4gICAgY2xhc3NlczogWydpbnB1dC1jbGFzcycsICdyaWdodC1pY29uLWNsYXNzJ10sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgc2l6ZTogU3RyaW5nLFxuICAgICAgICBpY29uOiBTdHJpbmcsXG4gICAgICAgIGxhYmVsOiBTdHJpbmcsXG4gICAgICAgIGVycm9yOiBCb29sZWFuLFxuICAgICAgICBmaXhlZDogQm9vbGVhbixcbiAgICAgICAgZm9jdXM6IEJvb2xlYW4sXG4gICAgICAgIGNlbnRlcjogQm9vbGVhbixcbiAgICAgICAgaXNMaW5rOiBCb29sZWFuLFxuICAgICAgICBsZWZ0SWNvbjogU3RyaW5nLFxuICAgICAgICByaWdodEljb246IFN0cmluZyxcbiAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4sXG4gICAgICAgIGF1dG9zaXplOiBCb29sZWFuLFxuICAgICAgICByZWFkb25seTogQm9vbGVhbixcbiAgICAgICAgcmVxdWlyZWQ6IEJvb2xlYW4sXG4gICAgICAgIHBhc3N3b3JkOiBCb29sZWFuLFxuICAgICAgICBpY29uQ2xhc3M6IFN0cmluZyxcbiAgICAgICAgY2xlYXJhYmxlOiBCb29sZWFuLFxuICAgICAgICBpbnB1dEFsaWduOiBTdHJpbmcsXG4gICAgICAgIGN1c3RvbVN0eWxlOiBTdHJpbmcsXG4gICAgICAgIGNvbmZpcm1UeXBlOiBTdHJpbmcsXG4gICAgICAgIGNvbmZpcm1Ib2xkOiBCb29sZWFuLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IFN0cmluZyxcbiAgICAgICAgcGxhY2Vob2xkZXI6IFN0cmluZyxcbiAgICAgICAgcGxhY2Vob2xkZXJTdHlsZTogU3RyaW5nLFxuICAgICAgICBlcnJvck1lc3NhZ2VBbGlnbjogU3RyaW5nLFxuICAgICAgICBzaG93Q29uZmlybUJhcjoge1xuICAgICAgICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGFkanVzdFBvc2l0aW9uOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY3Vyc29yU3BhY2luZzoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgdmFsdWU6IDUwXG4gICAgICAgIH0sXG4gICAgICAgIG1heGxlbmd0aDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgdmFsdWU6IC0xXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiAndGV4dCdcbiAgICAgICAgfSxcbiAgICAgICAgYm9yZGVyOiB7XG4gICAgICAgICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGVXaWR0aDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgdmFsdWU6ICc5MHB4J1xuICAgICAgICB9XG4gICAgfSxcbiAgICBkYXRhOiB7XG4gICAgICAgIHNob3dDbGVhcjogZmFsc2VcbiAgICB9LFxuICAgIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgb25JbnB1dDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgdmFyIF9hID0gKGV2ZW50LmRldGFpbCB8fCB7fSkudmFsdWUsIHZhbHVlID0gX2EgPT09IHZvaWQgMCA/ICcnIDogX2E7XG4gICAgICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHNob3dDbGVhcjogdGhpcy5nZXRTaG93Q2xlYXIodmFsdWUpXG4gICAgICAgICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuZW1pdENoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25Gb2N1czogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgX2EgPSBldmVudC5kZXRhaWwgfHwge30sIF9iID0gX2EudmFsdWUsIHZhbHVlID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2IsIF9jID0gX2EuaGVpZ2h0LCBoZWlnaHQgPSBfYyA9PT0gdm9pZCAwID8gMCA6IF9jO1xuICAgICAgICAgICAgdGhpcy4kZW1pdCgnZm9jdXMnLCB7IHZhbHVlOiB2YWx1ZSwgaGVpZ2h0OiBoZWlnaHQgfSk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ibHVyRnJvbUNsZWFyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgc2hvd0NsZWFyOiB0aGlzLmdldFNob3dDbGVhcigpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25CbHVyOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgX2EgPSBldmVudC5kZXRhaWwgfHwge30sIF9iID0gX2EudmFsdWUsIHZhbHVlID0gX2IgPT09IHZvaWQgMCA/ICcnIDogX2IsIF9jID0gX2EuY3Vyc29yLCBjdXJzb3IgPSBfYyA9PT0gdm9pZCAwID8gMCA6IF9jO1xuICAgICAgICAgICAgdGhpcy4kZW1pdCgnYmx1cicsIHsgdmFsdWU6IHZhbHVlLCBjdXJzb3I6IGN1cnNvciB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIHNob3dDbGVhciA9IHRoaXMuZ2V0U2hvd0NsZWFyKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd0NsZWFyOiBzaG93Q2xlYXJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLmJsdXJGcm9tQ2xlYXIpIHtcbiAgICAgICAgICAgICAgICAvLyBmaXg6IHRoZSBoYW5kd3JpdHRlbiBrZXlib2FyZCBkb2VzIG5vdCB0cmlnZ2VyIGlucHV0IGNoYW5nZVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBzaG93Q2xlYXI6IHNob3dDbGVhclxuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuZW1pdENoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xpY2tJY29uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0KCdjbGljay1pY29uJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGdldFNob3dDbGVhcjogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID09PSB1bmRlZmluZWQgPyB0aGlzLmRhdGEudmFsdWUgOiB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy5kYXRhLmNsZWFyYWJsZSAmJiB0aGlzLmZvY3VzZWQgJiYgdmFsdWUgJiYgIXRoaXMuZGF0YS5yZWFkb25seSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2xlYXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICB0aGlzLmJsdXJGcm9tQ2xlYXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICBzaG93Q2xlYXI6IHRoaXMuZ2V0U2hvd0NsZWFyKCcnKVxuICAgICAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIF90aGlzLmVtaXRDaGFuZ2UoJycpO1xuICAgICAgICAgICAgICAgIF90aGlzLiRlbWl0KCdjbGVhcicsICcnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbkNvbmZpcm06IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2NvbmZpcm0nLCB0aGlzLmRhdGEudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBlbWl0Q2hhbmdlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2lucHV0JywgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=