| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- /**
- * Sliders
- */
- 'use strict';
-
- (function () {
- const sliderBasic = document.getElementById('slider-basic'),
- sliderHandles = document.getElementById('slider-handles'),
- sliderSteps = document.getElementById('slider-steps'),
- sliderTap = document.getElementById('slider-tap'),
- sliderDrag = document.getElementById('slider-drag'),
- sliderFixedDrag = document.getElementById('slider-fixed-drag'),
- sliderCombined = document.getElementById('slider-combined-options'),
- sliderHover = document.getElementById('slider-hover'),
- sliderPips = document.getElementById('slider-pips');
-
- // Basic
- // --------------------------------------------------------------------
-
- if (sliderBasic) {
- noUiSlider.create(sliderBasic, {
- start: [50],
- connect: [true, false],
- direction: isRtl ? 'rtl' : 'ltr',
- range: {
- min: 0,
- max: 100
- }
- });
- }
-
- // Handles
- // --------------------------------------------------------------------
- if (sliderHandles) {
- noUiSlider.create(sliderHandles, {
- start: [0, 50],
- direction: isRtl ? 'rtl' : 'ltr',
- step: 5,
- connect: true,
- range: {
- min: 0,
- max: 100
- },
- pips: {
- mode: 'range',
- density: 5,
- stepped: true
- }
- });
- }
-
- // Steps
- // --------------------------------------------------------------------
- if (sliderSteps) {
- noUiSlider.create(sliderSteps, {
- start: [0, 30],
- snap: true,
- connect: true,
- direction: isRtl ? 'rtl' : 'ltr',
- range: {
- min: 0,
- '10%': 10,
- '20%': 20,
- '30%': 30,
- '40%': 40,
- '50%': 50,
- max: 100
- }
- });
- }
-
- // Tap
- // --------------------------------------------------------------------
- if (sliderTap) {
- noUiSlider.create(sliderTap, {
- start: [10, 30],
- behaviour: 'tap',
- direction: isRtl ? 'rtl' : 'ltr',
- connect: true,
- range: {
- min: 10,
- max: 100
- }
- });
- }
-
- // Drag
- // --------------------------------------------------------------------
- if (sliderDrag) {
- noUiSlider.create(sliderDrag, {
- start: [40, 60],
- limit: 20,
- behaviour: 'drag',
- direction: isRtl ? 'rtl' : 'ltr',
- connect: true,
- range: {
- min: 20,
- max: 80
- }
- });
- }
-
- // Fixed Drag
- // --------------------------------------------------------------------
- if (sliderFixedDrag) {
- noUiSlider.create(sliderFixedDrag, {
- start: [40, 60],
- behaviour: 'drag-fixed',
- direction: isRtl ? 'rtl' : 'ltr',
- connect: true,
- range: {
- min: 20,
- max: 80
- }
- });
- }
-
- // Combined Options
- // --------------------------------------------------------------------
- if (sliderCombined) {
- noUiSlider.create(sliderCombined, {
- start: [40, 60],
- behaviour: 'drag-tap',
- direction: isRtl ? 'rtl' : 'ltr',
- connect: true,
- range: {
- min: 20,
- max: 80
- }
- });
- }
-
- // Hover
- // --------------------------------------------------------------------
- if (sliderHover) {
- noUiSlider.create(sliderHover, {
- start: 20,
- behaviour: 'hover-snap-tap',
- direction: isRtl ? 'rtl' : 'ltr',
- range: {
- min: 0,
- max: 100
- }
- });
-
- sliderHover.noUiSlider.on('hover', function (value) {
- document.getElementById('slider-val').innerHTML = value;
- });
- }
-
- // Scale and Pips
- // --------------------------------------------------------------------
- if (sliderPips) {
- noUiSlider.create(sliderPips, {
- start: [10],
- behaviour: 'tap-drag',
- step: 10,
- tooltips: true,
- range: {
- min: 0,
- max: 100
- },
- pips: {
- mode: 'steps',
- stepped: true,
- density: 5
- },
- direction: isRtl ? 'rtl' : 'ltr'
- });
- }
-
- // colors
- // --------------------------------------------------------------------
- const sliderPrimary = document.getElementById('slider-primary'),
- sliderSuccess = document.getElementById('slider-success'),
- sliderDanger = document.getElementById('slider-danger'),
- sliderInfo = document.getElementById('slider-info'),
- sliderWarning = document.getElementById('slider-warning'),
- colorOptions = {
- start: [30, 50],
- connect: true,
- behaviour: 'tap-drag',
- step: 10,
- tooltips: true,
- range: {
- min: 0,
- max: 100
- },
- pips: {
- mode: 'steps',
- stepped: true,
- density: 5
- },
- direction: isRtl ? 'rtl' : 'ltr'
- };
-
- if (sliderPrimary) {
- noUiSlider.create(sliderPrimary, colorOptions);
- }
- if (sliderSuccess) {
- noUiSlider.create(sliderSuccess, colorOptions);
- }
- if (sliderDanger) {
- noUiSlider.create(sliderDanger, colorOptions);
- }
- if (sliderInfo) {
- noUiSlider.create(sliderInfo, colorOptions);
- }
- if (sliderWarning) {
- noUiSlider.create(sliderWarning, colorOptions);
- }
-
- // Dynamic Slider
- // --------------------------------------------------------------------
- const dynamicSlider = document.getElementById('slider-dynamic'),
- sliderSelect = document.getElementById('slider-select'),
- sliderInput = document.getElementById('slider-input');
-
- if (dynamicSlider) {
- noUiSlider.create(dynamicSlider, {
- start: [10, 30],
- connect: true,
- direction: isRtl ? 'rtl' : 'ltr',
- range: {
- min: -20,
- max: 40
- }
- });
-
- dynamicSlider.noUiSlider.on('update', function (values, handle) {
- const value = values[handle];
-
- if (handle) {
- sliderInput.value = value;
- } else {
- sliderSelect.value = Math.round(value);
- }
- });
- }
-
- if (sliderSelect) {
- for (let i = -20; i <= 40; i++) {
- let option = document.createElement('option');
- option.text = i;
- option.value = i;
-
- sliderSelect.appendChild(option);
- }
- sliderSelect.addEventListener('change', function () {
- dynamicSlider.noUiSlider.set([this.value, null]);
- });
- }
-
- if (sliderInput) {
- sliderInput.addEventListener('change', function () {
- dynamicSlider.noUiSlider.set([null, this.value]);
- });
- }
-
- // Vertical
- // --------------------------------------------------------------------
- const defaultVertical = document.getElementById('slider-vertical'),
- connectVertical = document.getElementById('slider-connect-upper'),
- tooltipVertical = document.getElementById('slider-vertical-tooltip'),
- limitVertical = document.getElementById('slider-vertical-limit');
-
- // Default
- if (defaultVertical) {
- defaultVertical.style.height = '200px';
- noUiSlider.create(defaultVertical, {
- start: [40, 60],
- orientation: 'vertical',
- behaviour: 'drag',
- connect: true,
- range: {
- min: 0,
- max: 100
- }
- });
- }
-
- // Connect Upper
- if (connectVertical) {
- connectVertical.style.height = '200px';
- noUiSlider.create(connectVertical, {
- start: 40,
- orientation: 'vertical',
- behaviour: 'drag',
- connect: 'upper',
- range: {
- min: 0,
- max: 100
- }
- });
- }
-
- // Vertical Tooltip
- if (tooltipVertical) {
- tooltipVertical.style.height = '200px';
- noUiSlider.create(tooltipVertical, {
- start: 10,
- orientation: 'vertical',
- behaviour: 'drag',
- tooltips: true,
- range: {
- min: 0,
- max: 100
- }
- });
- }
-
- // Limit
- if (limitVertical) {
- limitVertical.style.height = '200px';
- noUiSlider.create(limitVertical, {
- start: [0, 40],
- orientation: 'vertical',
- behaviour: 'drag',
- limit: 60,
- tooltips: true,
- connect: true,
- range: {
- min: 0,
- max: 100
- }
- });
- }
- })();
|