Vue

by Max Sinev

HTML

<div id="app">
    <vue-slide-bar v-model="sliderWithLabel.value" :data="sliderWithLabel.data" :range="sliderWithLabel.range"
      @callbackRange="callbackRange">
    </vue-slide-bar>
  </div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

li {
  margin: 8px 0;
}

h2 {
  font-weight: bold;
  margin-bottom: 15px;
}

del {
  color: rgba(0, 0, 0, 0.3);
}

Vue

Vue.component('vue-slide-bar', VueSlideBar);
new Vue({
  el: "#app",
  data: {
    sliderWithLabel: {
      value: 45,
      data: [
        15,
        30,
        45,
        60,
        75,
        90,
        120
      ],
      range: [
        {
          label: '15 mins'
        },
        {
          label: '30 mins',
          isHide: true
        },
        {
          label: '45 mins'
        },
        {
          label: '1 hr',
          isHide: true
        },
        {
          label: '1 hr 15 mins'
        },
        {
          label: '1 hr 30 mins',
          isHide: true
        },
        {
          label: '2 hrs'
        }
      ],
      rangeValue: {}
    }
  },
  methods: {
  	toggle: function(todo){
    	todo.done = !todo.done
    }
  }
})