autoform-nouislider for materializecss

AutoForm nouislider input type with materilizecss styling.

Setup

meteor add mozfet:autoform-nouislider

This package is part of a suite

mozfet:meteor-autoform-materialize mozfet:meteor-autoform-modals-materialize mozfet:meteor-autoform-nouislider mozfet:meteor-autoform-medium mozfet:meteor-autoform-materialize-playground

Configuration

Adds the noUiSlider type to autoform. It uses min, max, and step attributes like a normal slider, so it can be a drop in replacement, but options passed as noUiSliderOptions are passed directly to nouislider for advanced control.

Usage

Collection2 basic

const schema = new SimpleSchema({
  'basic': {
    type: Number,
    min: 10,
    max: 26,
    autoform: {
      type: 'noUiSlider'
    }
  }
}, {tracker: Tracker})

Template.slidersExample.helpers({
  doc() {
    return {}
  },
  schema() {
    return schema
  }
})
{{> quickForm id="slidersExample" type="normal" doc=doc schema=schema}}

Collection2 with pips

const schema = new SimpleSchema({
  'rangeArrayPips': {
    type: Array,
    optional: true,
    autoform: {
      type: 'noUiSlider',
      step: 2,
      noUiSliderOptions: {
        start: [700,8000],
        connect: true,
        range: {
          'min': [0],
          '10%': [500,500],
          '50%': [4000,1000],
          'max': [10000]
        },
        pips: {
          mode: 'range',
          density: 3
        }
      }
    }
  },
  'rangeArrayPips.$': {
    type: Number
  }
}, {tracker: Tracker})

Template.slidersExample.helpers({
  doc() {
    return {}
  },
  schema() {
    return schema
  }
})
{{> quickForm id="slidersExample" type="normal" doc=doc schema=schema}}

Single values

CollectionSchema = new SimpleSchema({
  slider: {
    type: Number,
    max: 150,
    min: 30,
    autoform: {
      type: "noUiSlider",
      step: 10,    
      noUiSlider_pipsOptions: {
        mode: 'steps',
        density: 5
      }
    }
  }
}, {tracker: Tracker});

Overridding start and range

You can override start and range by passing the options in.

{{#autoForm id="slidersAutoFormExample1" type="normal" doc=doc schema=schema}}
  {{> afQuickField name="basic" min=2 max=50 label="Overwritten Min and Max"}}
  <button type="submit" class="btn btn-primary">Submit</button>
{{/autoForm}}
{{#autoForm id="slidersAutoFormExample2" type="normal" doc=doc schema=schema}}
  {{> afQuickField name="basic" range='{"min":0, "max":100}'
      label="Overwritten range"}}
  <button type="submit" class="btn btn-primary">Submit</button>
{{/autoForm}}
{{#autoForm id="slidersAutoFormExample3" type="normal" doc=doc schema=schema}}
  {{> afQuickField name="basic" start=20 label="Overwritten Start"}}
  <button type="submit" class="btn btn-primary">Submit</button>
{{/autoForm}}
{{#autoForm id="slidersAutoFormExample4" type="normal" doc=doc schema=schema}}
  {{> afQuickField name="rangeArrayPips" start='[100,3000]' label="Overwritten Start"}}
  <button type="submit" class="btn btn-primary">Submit</button>
{{/autoForm}}

Labels

Show a label left and/or right of the slider

{{> afFieldInput type="noUiSlider" name="foo" labelLeft="ugly" labelRight="delicious" min=0 max=1 step=0.1}}

Credits

Forks

We forked in order to upgrade dependancies for our suite and to add MaterializeCSS styling.

Forked from muqube:meteor-autoform-nouislider which forked from elevatedevdesign:autoform-nouslider.

Dependancies

MaterializeCSS v1.0.0 - extras/noUiSlider; which includes nouislider v9.1.0