range.html 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. {% assign min = include.min | default: 0 %}
  2. {% assign max = include.max | default: 100 %}
  3. {% assign step = include.step | default: 10 %}
  4. {% assign value = include.value | default: 50 %}
  5. {% assign id = include.id %}
  6. {% if id %}
  7. <div class="form-range mb-2{% if include.class %} {{ include.class }}{% endif %}" id="range-{{ id }}"></div>
  8. {% capture_script %}
  9. <script>
  10. {% assign value = value | split: ',' %}
  11. document.addEventListener("DOMContentLoaded", function () {
  12. window.noUiSlider && (noUiSlider.create(document.getElementById('range-{{ id }}'), {
  13. start: {% if value.size > 1 %}[{{ value | join: ', ' }}]{% else %}{{ value }}{% endif %},
  14. {% if value.size > 1 or include.connect %}
  15. connect: [{% for i in (2..value.size) %}{% cycle 'false', 'true' %}, {% endfor %}true, false],
  16. {% endif %}
  17. step: {{ step }},
  18. range: {
  19. min: {{ min }},
  20. max: {{ max }}
  21. }
  22. }));
  23. });
  24. </script>
  25. {% endcapture_script %}
  26. {% else %}
  27. <input type="range" class="form-range mb-2{% if include.class %} {{ include.class }}{% endif %}" value="{{ value }}" min="{{ min }}" max="{{ max }}" step="{{ step }}">
  28. {% endif %}