{"version":3,"sources":["src/VueSimplePicker.vue","index.js"],"names":["Vue","component","VueSimplePicker"],"mappings":"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","file":"index.map","sourceRoot":"..","sourcesContent":["<!-- picker -->\n<template>\n  <div class=\"vsim-picker\" :style=\"{fontFamily:defaultStyle.fontFamily || 'inherit',color:defaultStyle.color || '#808080',fontSize:defaultStyle.fontSize || '16px'}\">\n    <div class=\"vsim-picker-line-top\"></div>\n    <div class=\"vsim-picker-content\" ref=\"parent\">\n      <ul class=\"vsim-picker-list\" v-for=\"(list,index) in data\" :key=\"index\" @touchstart.stop=\"onTouchStart($event,index)\" @touchmove.stop=\"onTouchMove($event,index)\" @touchend.stop=\"onTouchEnd($event,index)\" :style=\"{textAlign: list.textAlign || 'center',flex:list.flex || 1}\">\n        <li class=\"vsim-picker-item\" v-for=\"(item,number)  in list.values\" :data-index=\"number\" :key=\"number\">{{list.valueKey ? item[list.valueKey]:item}}</li>\n      </ul>\n    </div>   \n    <div class=\"vsim-picker-line-bottom\"></div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"VuePicker\",\n  props: {\n    data: {\n      default: function() {\n        return [];\n      },\n      type: Array\n    },\n    // 默认样式\n    defaultStyle: {\n      default: function() {\n        return {\n          fontSize: \"16px\",\n          fontFamily: \"inherit\",\n          color: \"#808080\"\n        };\n      },\n      type: Object\n    },\n    // 是否展示滚轮样式\n    wheelStyle: {\n      default: true,\n      type: Boolean\n    },\n    canClick:{\n      default:true,\n      type:Boolean\n    }\n  },\n  data() {\n    return {\n      timer: \"\",\n      value: [],\n      lastValue: [] // 记录上一次的value值判断是否触发change事件\n    };\n  },\n\n  components: {},\n\n  computed: {},\n\n  mounted() {\n    this.pickerInit();\n  },\n  watch: {\n    data: {\n      handler: function(nextProp, oldProp) {\n        if (JSON.stringify(nextProp) === JSON.stringify(oldProp)) {\n          return;\n        }\n        this.value = [];\n        this.pickerInit();\n      },\n      deep: true\n    }\n  },\n  methods: {\n    movePurpose(order, index, e) {\n        this.endMove(\n          e,\n          parseInt(index),\n          2 * parseFloat(this.defaultStyle.fontSize) || 32,\n          0,\n          order\n        );\n    },\n    // 通过索引找到对应数据\n    computeValue(value) {\n      return value.map((item, index) => {\n        return this.data[index].values[item];\n      });\n    },\n    // 给选中的picker加active类名\n    addClass(order, index, num = 2) {\n      this.$nextTick(() => {\n        try {\n          if (this.wheelStyle) {\n            if (this.$refs.parent.children[order].children[index + 1])\n              this.$refs.parent.children[order].children[index + 1].className =\n                \"vsim-picker-item vsim-picker-item-next\";\n\n            if (this.$refs.parent.children[order].children[index - 1])\n              this.$refs.parent.children[order].children[index - 1].className =\n                \"vsim-picker-item vsim-picker-item-next\";\n\n            if (this.$refs.parent.children[order].children[index + 2])\n              this.$refs.parent.children[order].children[index + 2].className =\n                \"vsim-picker-item vsim-picker-item-far\";\n\n            if (this.$refs.parent.children[order].children[index - 2])\n              this.$refs.parent.children[order].children[index - 2].className =\n                \"vsim-picker-item vsim-picker-item-far\";\n          }\n\n          this.$refs.parent.children[order].children[index].className =\n            \"vsim-picker-item vsim-picker-item-active\";\n        } catch (e) {\n          console.warn(e.message, \"vue-simple-picker\");\n        }\n      });\n    },\n    // 设置picker的值\n    setPickerValue(index, defaultValue) {\n      this.endMove(\n        this.$refs.parent.children[index],\n        defaultValue,\n        2 * parseFloat(this.defaultStyle.fontSize) || 32,\n        0,\n        index\n      );\n    },\n    // 加载picker到默认选项\n    pickerInit() {\n      this.$nextTick(() => {\n        [...this.$refs.parent.children].forEach((element, index) => {\n          this.endMove(\n            element,\n            this.data[index].default,\n            2 * parseFloat(this.defaultStyle.fontSize) || 32,\n            0,\n            index\n          );\n        });\n      });\n    },\n    refresh() {\n      this.pickerInit();\n    },\n    // 动画\n    transformStyle(target, moveDistance, transition, timer = 200) {\n      target.style[\"-webkit-transform\"] =\n        \"translate3d(0,\" + moveDistance + \"px,0)\";\n      if (transition) {\n        target.style.transitionDuration = timer + \"ms\";\n      }\n    },\n    // 触摸开始\n    onTouchStart(e, index) {\n      e.preventDefault();\n      // 确定触摸的对象是li\n      let target = e.target;\n      if (e.target.tagName === \"LI\") {\n        target = e.target.parentElement;\n      } else {\n        return;\n      }\n      // 清空选中的active样式\n      [...this.$refs.parent.children[index].children].forEach(item => {\n        item.className = \"vsim-picker-item\";\n      });\n      const touch = e.touches[0];\n      const touchY = touch.screenY;\n      const screenY = touch.screenY;\n      // 记录开始触摸时距屏幕顶端距离\n      target.setAttribute(\"address-start\", touchY);\n      target.setAttribute(\"ismove\", false); // 是否触发\n      const timestamp = new Date().getTime();\n      // 记录开始触摸时间\n      target.setAttribute(\"start-time\", timestamp);\n      // 判断是否是第一次触摸\n      if (!target.getAttribute(\"mov-distance\")) {\n        // 存储当前位置\n        target.setAttribute(\"pos-start\", touchY);\n      } else {\n        target.setAttribute(\n          \"pos-start\",\n          touchY - parseFloat(target.getAttribute(\"mov-distance\"))\n        );\n      }\n      target.style.transitionDuration = \"0ms\";\n    },\n    // 手指移动中\n    onTouchMove(e, index) {\n      e.preventDefault();\n      let target = e.target;\n      if (e.target.tagName === \"LI\") {\n        target = e.target.parentElement;\n      } else {\n        return;\n      }\n      const touch = e.touches[0];\n\n      const touchY = touch.screenY;\n      // 获取移动距离\n      const moveDistance = touchY - target.getAttribute(\"pos-start\");\n      target.setAttribute(\"pos-end\", touchY);\n      target.setAttribute(\"address-end\", touchY);\n      target.setAttribute(\"ismove\", true); // 是否触发\n      // 移动\n      this.transformStyle(target, moveDistance);\n    },\n    // 手指离开\n    onTouchEnd(e, order) {\n      e.preventDefault();\n      const step = 2 * parseFloat(this.defaultStyle.fontSize) || 32;\n      let target = e.target;\n\n      if (e.target.tagName === \"LI\") {\n        target = e.target.parentElement;\n      } else {\n        return;\n      }\n\n      const touchY = target.getAttribute(\"pos-end\");\n      const moveDistance = touchY - target.getAttribute(\"pos-start\");\n\n      // 判断应该移动多少个li\n      let index = Math.abs(Math.round(moveDistance / step));\n\n      // 记录移动的距离\n      const absDistance =\n        parseFloat(target.getAttribute(\"address-start\")) -\n        parseFloat(\n          target.getAttribute(\"address-end\") ||\n            target.getAttribute(\"address-start\")\n        );\n\n      const timestamp = new Date().getTime();\n      // 记录间隔时间\n      const timespace =\n        timestamp - parseFloat(target.getAttribute(\"start-time\"));\n      if(\n        this.canClick &&\n        (Math.abs(absDistance) <= 15 || target.getAttribute(\"ismove\") == 'false') \n        &&\n         timespace <= 90\n        ){ \n        this.movePurpose(order,e.target.getAttribute(\"data-index\"),target)\n        return;\n      }\n      // 计算速度 = 距离/时间\n      const rate = absDistance / timespace;\n      // console.log(rate,'rate')\n      this.timer = rate * 6;\n\n      if (Math.abs(this.timer) <= 2) {\n        this.timer = 0;\n      }\n      // 惯性滚动距离及速度\n      index = Math.round(index + this.timer);\n      let speed = 200;\n      if (Math.abs(Math.floor(this.timer)) >= 2) {\n        speed = 600;\n      }\n      if (Math.abs(Math.floor(this.timer)) >= 4) {\n        speed = 600;\n      }\n      if (Math.abs(Math.floor(this.timer)) > 6) {\n        speed = 800;\n      }\n      if (index < 0) {\n        index = 0;\n      }\n      // 边界情况\n      if (index > this.data[order].values.length - 1) {\n        index = this.data[order].values.length - 1;\n      }\n      this.endMove(target, index, step, moveDistance, order, speed);\n    },\n    // 控制最后的滚动\n    endMove(target, index = 0, step, moveDistance = 0, order = 0, speed = 200) {\n      target.setAttribute(\"mov-distance\", -index * step);\n      this.transformStyle(target, -index * step, true, speed);\n      // 上边界判断\n      if (moveDistance > 0 * step) {\n        index = 0;\n        this.transformStyle(target, index * step);\n        target.setAttribute(\"mov-distance\", index * step);\n      }\n      // 下边界判断\n      if (moveDistance < -(this.data[order].values.length - 1) * step) {\n        index = this.data[order].values.length - 1;\n        this.transformStyle(target, -index * step);\n        target.setAttribute(\"mov-distance\", -index * step);\n      }\n      this.value[order] = index;\n      this.addClass(order, index);\n      if (this.value.length === this.data.length) {\n        if (JSON.stringify(this.lastValue) === JSON.stringify(this.value)) {\n        } else {\n          this.$emit(\"change\", this.computeValue(this.value));\n          this.lastValue = JSON.parse(JSON.stringify(this.value));\n        }\n      }\n    }\n  }\n};\n</script>\n\n<style scoped>\n.vsim-picker {\n  position: relative;\n  /* font-size: 16px; */\n  height: 10em;\n  overflow: hidden;\n  /* font-family: inherit; */\n}\n\n.vsim-picker-content {\n  display: flex;\n  height: 10em;\n  /* padding-top: 4em; */\n  overflow: hidden;\n}\n\n.vsim-picker-line-top {\n  position: absolute;\n  width: 100%;\n  height: 1px;\n  top: 4em;\n  left: 0;\n  background: #e2e2e2;\n  overflow: hidden;\n  transform: scaleY(0.5);\n}\n\n.vsim-picker-line-bottom {\n  overflow: hidden;\n  position: absolute;\n  width: 100%;\n  height: 1px;\n  top: 6em;\n  left: 0;\n  background: #e2e2e2;\n  transform: scaleY(0.5);\n}\n\n.vsim-picker-list {\n  margin-top: 4em;\n  flex: 1;\n  /* font-size: 16px; */\n}\n\n.vsim-picker-item {\n  height: 2em;\n  line-height: 2em;\n}\n.vsim-picker-item-next {\n  transform: scaleY(0.9) translateZ(0);\n}\n.vsim-picker-item-far {\n  transform: scaleY(0.8) translateZ(0);\n}\n.vsim-picker-item-active {\n  transform: scaleY(1) translateZ(0);\n  color: #474747;\n}\n</style>","\nimport VueSimplePicker from './src/VueSimplePicker.vue';\n\nexport default (Vue) => {\n    Vue.component('vs-picker', VueSimplePicker)\n}"]}