| 
 | 1 | +var Slider = require("bootstrap-slider");  | 
 | 2 | + | 
 | 3 | +function init(Survey) {  | 
 | 4 | +  var widget = {  | 
 | 5 | +    name: "bootstrap-slider",  | 
 | 6 | +    title: "Bootstrap Slider",  | 
 | 7 | +    iconName: "icon-bootstrap-slider",  | 
 | 8 | +    widgetIsLoaded: function() {  | 
 | 9 | +      return typeof Slider != "undefined";  | 
 | 10 | +    },  | 
 | 11 | +    isFit: function(question) {  | 
 | 12 | +      return question.getType() === "bootstrapslider";  | 
 | 13 | +    },  | 
 | 14 | +    htmlTemplate: "<div></div>",  | 
 | 15 | +    activatedByChanged: function(activatedBy) {  | 
 | 16 | +      Survey.JsonObject.metaData.addClass("bootstrapslider", [], null, "empty");  | 
 | 17 | +      Survey.JsonObject.metaData.addProperties("bootstrapslider", [  | 
 | 18 | +        {  | 
 | 19 | +          name: "step:number",  | 
 | 20 | +          default: 1  | 
 | 21 | +        },  | 
 | 22 | +        {  | 
 | 23 | +          name: "rangeMin:number",  | 
 | 24 | +          default: 0  | 
 | 25 | +        },  | 
 | 26 | +        {  | 
 | 27 | +          name: "rangeMax:number",  | 
 | 28 | +          default: 100  | 
 | 29 | +        }  | 
 | 30 | +      ]);  | 
 | 31 | +    },  | 
 | 32 | +    afterRender: function(question, el) {  | 
 | 33 | +      var inputEl = document.createElement("input");  | 
 | 34 | +      inputEl.id = question.id;  | 
 | 35 | +      inputEl.type = "text";  | 
 | 36 | +      inputEl.setAttribute("data-slider-id", question.name + "_" + question.id);  | 
 | 37 | +      inputEl.setAttribute("data-slider-min", question.rangeMin);  | 
 | 38 | +      inputEl.setAttribute("data-slider-max", question.rangeMax);  | 
 | 39 | +      inputEl.setAttribute("data-slider-step", question.step);  | 
 | 40 | +      inputEl.setAttribute("data-slider-value", question.value);  | 
 | 41 | +      el.appendChild(inputEl);  | 
 | 42 | +      var slider = new Slider(inputEl, {});  | 
 | 43 | + | 
 | 44 | +      slider.on("change", function(valueObj) {  | 
 | 45 | +        question.value = slider.getValue();  | 
 | 46 | +      });  | 
 | 47 | +      var updateValueHandler = function() {  | 
 | 48 | +        slider.setValue(question.value);  | 
 | 49 | +      };  | 
 | 50 | +      question.bootstrapSlider = slider;  | 
 | 51 | +      question.valueChangedCallback = updateValueHandler;  | 
 | 52 | +    },  | 
 | 53 | +    willUnmount: function(question, el) {  | 
 | 54 | +      question.bootstrapSlider.destroy();  | 
 | 55 | +      question.bootstrapSlider = null;  | 
 | 56 | +    }  | 
 | 57 | +  };  | 
 | 58 | + | 
 | 59 | +  Survey.CustomWidgetCollection.Instance.addCustomWidget(widget, "customtype");  | 
 | 60 | +}  | 
 | 61 | + | 
 | 62 | +if (typeof Survey !== "undefined") {  | 
 | 63 | +  init(Survey);  | 
 | 64 | +}  | 
 | 65 | + | 
 | 66 | +export default init;  | 
0 commit comments