diff --git a/dev/index.html b/dev/index.html index 5987ae71..a0212314 100644 --- a/dev/index.html +++ b/dev/index.html @@ -10,6 +10,8 @@ + + @@ -21,6 +23,7 @@ +
diff --git a/dev/schema.js b/dev/schema.js index 237665a9..5b18de9d 100644 --- a/dev/schema.js +++ b/dev/schema.js @@ -298,6 +298,27 @@ module.exports = { valueOff: "male" }, + { + type: "noUiSlider", + label: "Rank (noUiSlider field)", + model: "rank", + multi: true, + min: 1, + max: 10, + required: true, + sliderOptions: { + // connect: "lower", // "lower", "upper", true, false + // margin: 2 //number + // limit: 2 //number + step:1, + // orientation:"horizontal", //"vertical", "horizontal" + // direction: "ltr", //"ltr", "rtl" + // tooltips: false, // false, true, formatter, array[formatter or false] + // animate: true, + }, + // validator: validators.integer + }, + { type: "slider", label: "Rank (slider field)", @@ -309,7 +330,7 @@ module.exports = { sliderOptions: { grid: true }, - validator: validators.integer + // validator: validators.integer }, { diff --git a/package.json b/package.json index 0d65a02b..a6a8af1a 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "files": [ "dist/vue-form-generator.js", "dist/vue-form-generator.min.js", + "dist/vue-form-generator.css", "src" ], "author": "Icebob", diff --git a/src/fields/fieldNoUiSlider.vue b/src/fields/fieldNoUiSlider.vue new file mode 100644 index 00000000..4aa944b0 --- /dev/null +++ b/src/fields/fieldNoUiSlider.vue @@ -0,0 +1,56 @@ + + div.slider + + + + + diff --git a/test/unit/specs/fields/fieldNoUiSlider.spec.js b/test/unit/specs/fields/fieldNoUiSlider.spec.js new file mode 100644 index 00000000..5955f9b2 --- /dev/null +++ b/test/unit/specs/fields/fieldNoUiSlider.spec.js @@ -0,0 +1,42 @@ +import { expect } from "chai"; +import { createVueField } from "../util"; + +import Vue from "vue"; +import fieldNoUiSlider from "src/fields/fieldNoUiSlider.vue"; + +Vue.component("fieldNoUiSlider", fieldNoUiSlider); + +// eslint-disable-next-line +let el, vm, field; + +function createField(schema = {}, model = null, disabled = false, options) { + [ el, vm, field ] = createVueField("fieldNoUiSlider", schema, model, disabled, options); +} + +describe("fieldNoUiSlider.vue", () => { + + describe("check template", () => { + let schema = { + type: "range", + label: "Rating", + model: "rating", + min: 1, + max: 10 + }; + let model = { rating: 8 }; + let input; + + before( () => { + createField(schema, model, false); + input = el.getElementsByClassName("slider")[0]; + }); + + it("should contain a div element", () => { + expect(field).to.be.exist; + expect(field.$el).to.be.exist; + + expect(input).to.be.defined; + expect(input.classList.contains("slider")).to.be.true; + }); + }); +});