index.js 7.5 KB

1
  1. "use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames2=_interopRequireDefault(require("../helpers/libs/classNames")),_eventsMixin=_interopRequireDefault(require("../helpers/mixins/eventsMixin")),_styleToCssString=_interopRequireDefault(require("../helpers/libs/styleToCssString")),_gestures=require("../helpers/shared/gestures"),_useDOM=require("../helpers/hooks/useDOM");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,e){var r;if(t)return"string"==typeof t?_arrayLikeToArray(t,e):"Map"===(r="Object"===(r=Object.prototype.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(t,e):void 0}function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=new Array(e);r<e;r++)a[r]=t[r];return a}function _defineProperty(t,e,r){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"==_typeof(t)?t:String(t)}function _toPrimitive(t,e){if("object"!=_typeof(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0===r)return("string"===e?String:Number)(t);r=r.call(t,e||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}var getPrecision=function(t){t=t.toString();return 0<=t.indexOf(".")?t.length-t.indexOf(".")-1:0},checkValuePrecision=function(t,e,r){t=Math.round((t-r)/e)*e+r,r=getPrecision(e);return parseFloat(t.toFixed(r))},getStyles=function(t){return Array.isArray(t)?t.map(function(t){return(0,_styleToCssString.default)(t)}):(0,_styleToCssString.default)(t)},defaultEvents={onChange:function(){},onAfterChange:function(){}};(0,_baseComponent.default)({behaviors:[(0,_eventsMixin.default)({defaultEvents:defaultEvents})],relations:{"../field/index":{type:"ancestor"}},properties:{prefixCls:{type:String,value:"wux-slider"},min:{type:Number,value:0,observer:"getMarks"},max:{type:Number,value:100,observer:"getMarks"},step:{type:Number,value:1,observer:"getMarks"},defaultValue:{type:Array,value:[0]},value:{type:Array,value:[0],observer:function(t){this.data.controlled&&this.updated(t)}},controlled:{type:Boolean,value:!1},disabled:{type:Boolean,value:!1},showMark:{type:Boolean,value:!1},showValue:{type:[Boolean,Object],value:!1},tipFormatter:{type:String,value:"{d}"},markStyle:{type:[String,Object,Array],value:"",observer:function(t){this.setData({extMarkStyle:getStyles(t)})}},handleStyle:{type:[String,Object,Array],value:"",observer:function(t){this.setData({extHandleStyle:getStyles(t)})}},trackStyle:{type:[String,Object,Array],value:"",observer:function(t){this.setData({extTrackStyle:getStyles(t)})}},railStyle:{type:[String,Object],value:"",observer:function(t){this.setData({extRailStyle:(0,_styleToCssString.default)(t)})}},wrapStyle:{type:[String,Object],value:"",observer:function(t){this.setData({extWrapStyle:(0,_styleToCssString.default)(t)})}}},data:{offsets:[],inputValue:[],extMarkStyle:"",extHandleStyle:"",extTrackStyle:"",extRailStyle:"",extWrapStyle:"",isTouched:!1,swiping:!1},computed:{classes:["prefixCls, disabled, tipFormatter",function(t,e,r){return{wrap:(0,_classNames2.default)(t,_defineProperty(_defineProperty({},"".concat(t,"--disabled"),e),"".concat(t,"--has-tip"),!!r)),min:"".concat(t,"__min"),railWrap:"".concat(t,"__rail-wrap"),rail:"".concat(t,"__rail"),mark:"".concat(t,"__mark"),track:"".concat(t,"__track"),handle:"".concat(t,"__handle"),max:"".concat(t,"__max")}}]},observers:{inputValue:function(t){var e=this,t=t.map(function(t){return e.calcOffset(e.checkValue(t))});this.setData({offsets:t})}},methods:{updated:function(t){this.hasFieldDecorator||this.data.inputValue!==t&&this.setData({inputValue:t})},onTouchStart:function(t){var e;this.data.disabled||1<(0,_gestures.getPointsNumber)(t)||(e=t.currentTarget.dataset.index,this.isMoved=!1,this.startX=(0,_gestures.getTouchPoints)(t).x,this.moveX=0,this.startPos=this.data.offsets[e]||0,this.setData({last:e,isTouched:!0,isMoved:!1}))},onTouchMove:function(t){var n,e,s=this;this.data.disabled||1<(0,_gestures.getPointsNumber)(t)||(n=t.currentTarget.dataset.index,e=this.data.prefixCls,this.isMoved=!0,this.setData({isMoved:!0}),this.moveX=(0,_gestures.getTouchPoints)(t).x,(0,_useDOM.useRect)(".".concat(e,"__rail"),this).then(function(t){var e,r,a,i;t&&s.isMoved&&(t=(s.moveX-s.startX)/t.width*100,e=_toConsumableArray(s.data.offsets),t=s.checkValue(s.startPos+t,0,100),r=s.data.inputValue,t=s.calcValue(t),i=r[n-1],a=r[n+1],e[n]=s.calcOffset(t),i&&t<i&&(e[n]=s.calcOffset(i)),a&&a<t&&(e[n]=s.calcOffset(a)),r[n]!==t)&&(i=s.getValue(e),s.data.controlled||s.updated(i),s.triggerEvent("change",{offsets:e,value:i}))}))},onTouchEnd:function(t){var e;this.data.disabled||1<(0,_gestures.getPointsNumber)(t)||!this.isMoved||(this.isMoved=!1,this.setData({isTouched:!1,isMoved:!1}),t=this.data.offsets,e=this.getValue(t),this.triggerEvent("afterChange",{offsets:t,value:e}))},calcValue:function(t){var e=this.data,r=e.min,e=e.max;return this.trimValue(t*(e-r)/100+r)},calcOffset:function(t){var e=this.data,r=e.min;return 100*((t-r)/(e.max-r))},checkValue:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:this.data.min,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:this.data.max;return t<=e?e:r<=t?r:t},trimValue:function(t){return checkValuePrecision(this.checkValue(t),this.data.step,this.data.min)},getValue:function(){var e=this;return(0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.data.offsets).map(function(t){return e.calcValue(t)})},getMarks:function(){if(this.data.showMark){for(var t=this.data,e=t.min,r=t.max,t=t.step,a=(r-e)/t,i=[],n=100*t/(r-e),s=1;s<a;s++)i.push(s*n);this.setData({marks:i})}},noop:function(){},getValueByPosition:function(t){var e=this.data,r=e.min,a=e.max,e=100/((a-r)/e.step);return Math.round((t<r?r:a<t?a:t)/e)*e*(a-r)*.01+r},onRailClick:function(u){var t,e,l,c,f,d=this;this.data.disabled||1<(0,_gestures.getPointsNumber)(u)||(e=(t=this.data).prefixCls,l=t.min,c=t.max,f=t.inputValue,(0,_useDOM.useRect)(".".concat(e,"__rail-wrap"),this).then(function(t){var t=((0,_gestures.getTouchPoints)(u).x-t.left)/Math.ceil(t.width)*(c-l)+l,e=d.getValueByPosition(t),t=f.length-1,r=0<t,a=_toConsumableArray(d.data.offsets),i=_toConsumableArray(f),n=0;if(r){for(var s=0,r=null,o=t;0<=o;o--)if(f[o]<=e){s=o;break}s===t?s=(r=s)-1:r=s+1,Math.abs(e-f[s])>Math.abs(e-f[r])?i[n=r]=e:i[n=s]=e}else i=[e];a[n]=d.calcOffset(e),f[n]!==e&&(d.data.controlled||d.updated(i),d.triggerEvent("change",{offsets:a,value:i}),d.triggerEvent("afterChange",{offsets:a,value:i}))}))}},attached:function(){var t=this.data,e=t.defaultValue,r=t.value,t=t.controlled?r:e;this.getMarks(),this.updated(t)}});