index.js 10 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var component_1 = require('./../common/component.js');
  4. var touch_1 = require('./../mixins/touch.js');
  5. component_1.VantComponent({
  6. mixins: [touch_1.touch],
  7. props: {
  8. disabled: Boolean,
  9. useButtonSlot: Boolean,
  10. activeColor: String,
  11. inactiveColor: String,
  12. max: {
  13. type: Number,
  14. value: 100
  15. },
  16. min: {
  17. type: Number,
  18. value: 0
  19. },
  20. step: {
  21. type: Number,
  22. value: 1
  23. },
  24. value: {
  25. type: Number,
  26. value: 0
  27. },
  28. barHeight: {
  29. type: String,
  30. value: '2px'
  31. }
  32. },
  33. watch: {
  34. value: function value(_value) {
  35. this.updateValue(_value, false);
  36. }
  37. },
  38. created: function created() {
  39. this.updateValue(this.data.value);
  40. },
  41. methods: {
  42. onTouchStart: function onTouchStart(event) {
  43. if (this.data.disabled) return;
  44. this.touchStart(event);
  45. this.startValue = this.format(this.data.value);
  46. },
  47. onTouchMove: function onTouchMove(event) {
  48. var _this = this;
  49. if (this.data.disabled) return;
  50. this.touchMove(event);
  51. this.getRect('.van-slider').then(function (rect) {
  52. var diff = _this.deltaX / rect.width * 100;
  53. _this.newValue = _this.startValue + diff;
  54. _this.updateValue(_this.newValue, false, true);
  55. });
  56. },
  57. onTouchEnd: function onTouchEnd() {
  58. if (this.data.disabled) return;
  59. this.updateValue(this.newValue, true);
  60. },
  61. onClick: function onClick(event) {
  62. var _this = this;
  63. if (this.data.disabled) return;
  64. this.getRect('.van-slider').then(function (rect) {
  65. var value = (event.detail.x - rect.left) / rect.width * 100;
  66. _this.updateValue(value, true);
  67. });
  68. },
  69. updateValue: function updateValue(value, end, drag) {
  70. value = this.format(value);
  71. this.set({
  72. value: value,
  73. barStyle: "width: " + value + "%; height: " + this.data.barHeight + ";"
  74. });
  75. if (drag) {
  76. this.$emit('drag', { value: value });
  77. }
  78. if (end) {
  79. this.$emit('change', value);
  80. }
  81. },
  82. format: function format(value) {
  83. var _a = this.data,
  84. max = _a.max,
  85. min = _a.min,
  86. step = _a.step;
  87. return Math.round(Math.max(min, Math.min(value, max)) / step) * step;
  88. }
  89. }
  90. });
  91. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwidG91Y2hfMSIsIm1peGlucyIsInByb3BzIiwiZGlzYWJsZWQiLCJ1c2VCdXR0b25TbG90IiwiYWN0aXZlQ29sb3IiLCJpbmFjdGl2ZUNvbG9yIiwibWF4IiwidHlwZSIsIm1pbiIsInN0ZXAiLCJiYXJIZWlnaHQiLCJ3YXRjaCIsImNyZWF0ZWQiLCJtZXRob2RzIiwib25Ub3VjaFN0YXJ0Iiwib25Ub3VjaE1vdmUiLCJfdGhpcyIsImRpZmYiLCJyZWN0Iiwib25Ub3VjaEVuZCIsIm9uQ2xpY2siLCJldmVudCIsInVwZGF0ZVZhbHVlIiwiYmFyU3R5bGUiLCJmb3JtYXQiLCJfYSIsIk1hdGgiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxjQUFjQyxRQUFsQiwwQkFBa0JBLENBQWxCO0FBQ0EsSUFBSUMsVUFBVUQsUUFBZCxzQkFBY0EsQ0FBZDtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkcsWUFBUSxDQUFDRCxRQURhLEtBQ2QsQ0FEYztBQUV0QkUsV0FBTztBQUNIQyxrQkFERyxPQUFBO0FBRUhDLHVCQUZHLE9BQUE7QUFHSEMscUJBSEcsTUFBQTtBQUlIQyx1QkFKRyxNQUFBO0FBS0hDLGFBQUs7QUFDREMsa0JBREMsTUFBQTtBQUVEWCxtQkFBTztBQUZOLFNBTEY7QUFTSFksYUFBSztBQUNERCxrQkFEQyxNQUFBO0FBRURYLG1CQUFPO0FBRk4sU0FURjtBQWFIYSxjQUFNO0FBQ0ZGLGtCQURFLE1BQUE7QUFFRlgsbUJBQU87QUFGTCxTQWJIO0FBaUJIQSxlQUFPO0FBQ0hXLGtCQURHLE1BQUE7QUFFSFgsbUJBQU87QUFGSixTQWpCSjtBQXFCSGMsbUJBQVc7QUFDUEgsa0JBRE8sTUFBQTtBQUVQWCxt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LEtBQUFBLEdBQUFBLENBQUFBLEtBQUFBLEVBQWRBLEdBQWNBLENBQWRBLElBQVhBLElBQUFBLElBQVAsSUFBQTtBQUNIO0FBaERJO0FBcENhLENBQTFCN0IiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBjb21wb25lbnRfMSA9IHJlcXVpcmUoXCIuLi9jb21tb24vY29tcG9uZW50XCIpO1xudmFyIHRvdWNoXzEgPSByZXF1aXJlKFwiLi4vbWl4aW5zL3RvdWNoXCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgbWl4aW5zOiBbdG91Y2hfMS50b3VjaF0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4sXG4gICAgICAgIHVzZUJ1dHRvblNsb3Q6IEJvb2xlYW4sXG4gICAgICAgIGFjdGl2ZUNvbG9yOiBTdHJpbmcsXG4gICAgICAgIGluYWN0aXZlQ29sb3I6IFN0cmluZyxcbiAgICAgICAgbWF4OiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICB2YWx1ZTogMTAwXG4gICAgICAgIH0sXG4gICAgICAgIG1pbjoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgdmFsdWU6IDBcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgdmFsdWU6IDFcbiAgICAgICAgfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHZhbHVlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIGJhckhlaWdodDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgdmFsdWU6ICcycHgnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHdhdGNoOiB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgY3JlYXRlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGF0YS52YWx1ZSk7XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIG9uVG91Y2hTdGFydDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudG91Y2hTdGFydChldmVudCk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VmFsdWUgPSB0aGlzLmZvcm1hdCh0aGlzLmRhdGEudmFsdWUpO1xuICAgICAgICB9LFxuICAgICAgICBvblRvdWNoTW92ZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZShldmVudCk7XG4gICAgICAgICAgICB0aGlzLmdldFJlY3QoJy52YW4tc2xpZGVyJykudGhlbihmdW5jdGlvbiAocmVjdCkge1xuICAgICAgICAgICAgICAgIHZhciBkaWZmID0gX3RoaXMuZGVsdGFYIC8gcmVjdC53aWR0aCAqIDEwMDtcbiAgICAgICAgICAgICAgICBfdGhpcy5uZXdWYWx1ZSA9IF90aGlzLnN0YXJ0VmFsdWUgKyBkaWZmO1xuICAgICAgICAgICAgICAgIF90aGlzLnVwZGF0ZVZhbHVlKF90aGlzLm5ld1ZhbHVlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25Ub3VjaEVuZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubmV3VmFsdWUsIHRydWUpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVjdCgnLnZhbi1zbGlkZXInKS50aGVuKGZ1bmN0aW9uIChyZWN0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gKGV2ZW50LmRldGFpbC54IC0gcmVjdC5sZWZ0KSAvIHJlY3Qud2lkdGggKiAxMDA7XG4gICAgICAgICAgICAgICAgX3RoaXMudXBkYXRlVmFsdWUodmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZVZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGVuZCwgZHJhZykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm1hdCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGJhclN0eWxlOiBcIndpZHRoOiBcIiArIHZhbHVlICsgXCIlOyBoZWlnaHQ6IFwiICsgdGhpcy5kYXRhLmJhckhlaWdodCArIFwiO1wiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChkcmFnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZW1pdCgnZHJhZycsIHsgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZScsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZm9ybWF0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMuZGF0YSwgbWF4ID0gX2EubWF4LCBtaW4gPSBfYS5taW4sIHN0ZXAgPSBfYS5zdGVwO1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoTWF0aC5tYXgobWluLCBNYXRoLm1pbih2YWx1ZSwgbWF4KSkgLyBzdGVwKSAqIHN0ZXA7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJmaWxlIjoiaW5kZXguanMifQ==