src/index.js   A
last analyzed

Complexity

Total Complexity 10
Complexity/F 2.5

Size

Lines of Code 46
Function Count 4

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
wmc 10
eloc 29
c 1
b 0
f 0
nc 32
mnd 1
bc 5
fnc 4
dl 0
loc 46
rs 10
bpm 1.25
cpm 2.5
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A $.fn.enableNoUISlider 0 42 1
1
const $ = require('jquery'); // eslint-disable-line import/no-unresolved
2
const NoUISlider = require('nouislider');
3
const wNumb = require('wnumb');
4
5
$.fn.enableNoUISlider = function() {
6
    this.filter('input[type=range]:not(.js-nouislider-initialized)').each(function() {
7
        const $rangeInput = $(this);
8
9
        $rangeInput.css({display: 'none'}).addClass('js-nouislider-initialized');
10
11
        const $wrapper = $('<div class="nouislider-range-wrapper"><div></div></div>')
12
            .insertAfter($rangeInput);
13
14
        const min         = $rangeInput.attr('min')          ? Number($rangeInput.attr('min'))   : 0;
15
        const max         = $rangeInput.attr('max')          ? Number($rangeInput.attr('max'))   : 100;
16
        const step        = $rangeInput.attr('step')         ? Number($rangeInput.attr('step'))  : 1;
17
        const value       = $rangeInput.attr('value')        ? Number($rangeInput.attr('value')) : 1;
18
        const wnumbFormat = $rangeInput.data('wnumb-format') ? $rangeInput.data('wnumb-format')  : null;
19
20
        const options = {
21
            start: value, // [value, value2...]
22
            step,
23
            // connect: false,  // Display colored bars between handles
24
            range: {
25
                min,
26
                max,
27
            },
28
            tooltips: [true],
29
        };
30
31
        if (wnumbFormat !== null) {
32
            options.format = wNumb(wnumbFormat);
33
        }
34
35
        const noUiSliderInstance = NoUISlider.create($wrapper.find('div').get(0), options);
36
37
        $rangeInput.on('change', function () {
38
            noUiSliderInstance.set(this.value);
39
        });
40
41
        noUiSliderInstance.on('change', (values, handle, unencoded/* , tap, positions */) => {
42
            $rangeInput.val(unencoded[0]).trigger('change');
43
            noUiSliderInstance.set(unencoded[0]);
44
        });
45
    });
46
};
47