PageSourceSearch

https://www.mortgagenewsdaily.com/lib/bootstrap-switch/dist/js/boo…ecwfW9Xbfvty4r5TIOAOtN_aMiorvYMpfS2Og6H2HWs

js mortgagenewsdaily.com collected 2026-10-02 02:45:14 UTC 25,530 bytes, 710 lines download raw bytes

1/* ========================================================================
2 * bootstrap-switch - v3.3.2
3 * http://www.bootstrap-switch.org
4 * ========================================================================
5 * Copyright 2012-2013 Mattia Larentis
6 *
7 * ========================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 *     http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ========================================================================
20 */
21
22(function() {
23  var __slice = [].slice;
24
25  (function($, window) {
26    "use strict";
27    var BootstrapSwitch;
28    BootstrapSwitch = (function() {
29      function BootstrapSwitch(element, options) {
30        if (options == null) {
31          options = {};
32        }
33        this.$element = $(element);
34        this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, {
35          state: this.$element.is(":checked"),
36          size: this.$element.data("size"),
37          animate: this.$element.data("animate"),
38          disabled: this.$element.is(":disabled"),
39          readonly: this.$element.is("[readonly]"),
40          indeterminate: this.$element.data("indeterminate"),
41          inverse: this.$element.data("inverse"),
42          radioAllOff: this.$element.data("radio-all-off"),
43          onColor: this.$element.data("on-color"),
44          offColor: this.$element.data("off-color"),
45          onText: this.$element.data("on-text"),
46          offText: this.$element.data("off-text"),
47          labelText: this.$element.data("label-text"),
48          handleWidth: this.$element.data("handle-width"),
49          labelWidth: this.$element.data("label-width"),
50          baseClass: this.$element.data("base-class"),
51          wrapperClass: this.$element.data("wrapper-class")
52        }, options);
53        this.$wrapper = $("<div>", {
54          "class": (function(_this) {
55            return function() {
56              var classes;
57              classes = ["" + _this.options.baseClass].concat(_this._getClasses(_this.options.wrapperClass));
58              classes.push(_this.options.state ? "" + _this.options.baseClass + "-on" : "" + _this.options.baseClass + "-off");
59              if (_this.options.size != null) {
60                classes.push("" + _this.options.baseClass + "-" + _this.options.size);
61              }
62              if (_this.options.disabled) {
63                classes.push("" + _this.options.baseClass + "-disabled");
64              }
65              if (_this.options.readonly) {
66                classes.push("" + _this.options.baseClass + "-readonly");
67              }
68              if (_this.options.indeterminate) {
69                classes.push("" + _this.options.baseClass + "-indeterminate");
70              }
71              if (_this.options.inverse) {
72                classes.push("" + _this.options.baseClass + "-inverse");
73              }
74              if (_this.$element.attr("id")) {
75                classes.push("" + _this.options.baseClass + "-id-" + (_this.$element.attr("id")));
76              }
77              return classes.join(" ");
78            };
79          })(this)()
80        });
81        this.$container = $("<div>", {
82          "class": "" + this.options.baseClass + "-container"
83        });
84        this.$on = $("<span>", {
85          html: this.options.onText,
86          "class": "" + this.options.baseClass + "-handle-on " + this.options.baseClass + "-" + this.options.onColor
87        });
88        this.$off = $("<span>", {
89          html: this.options.offText,
90          "class": "" + this.options.baseClass + "-handle-off " + this.options.baseClass + "-" + this.options.offColor
91        });
92        this.$label = $("<span>", {
93          html: this.options.labelText,
94          "class": "" + this.options.baseClass + "-label"
95        });
96        this.$element.on("init.bootstrapSwitch", (function(_this) {
97          return function() {
98            return _this.options.onInit.apply(element, arguments);
99          };
100        })(this));
101        this.$element.on("switchChange.bootstrapSwitch", (function(_this) {
102          return function() {
103            return _this.options.onSwitchChange.apply(element, arguments);
104          };
105        })(this));
106        this.$container = this.$element.wrap(this.$container).parent();
107        this.$wrapper = this.$container.wrap(this.$wrapper).parent();
108        this.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);
109        if (this.options.indeterminate) {
110          this.$element.prop("indeterminate", true);
111        }
112        this._init();
113        this._elementHandlers();
114        this._handleHandlers();
115        this._labelHandlers();
116        this._formHandler();
117        this._externalLabelHandler();
118        this.$element.trigger("init.bootstrapSwitch");
119      }
120
121      BootstrapSwitch.prototype._constructor = BootstrapSwitch;
122
123      BootstrapSwitch.prototype.state = function(value, skip) {
124        if (typeof value === "undefined") {
125          return this.options.state;
126        }
127        if (this.options.disabled || this.options.readonly) {
128          return this.$element;
129        }
130        if (this.options.state && !this.options.radioAllOff && this.$element.is(":radio")) {
131          return this.$element;
132        }
133        if (this.options.indeterminate) {
134          this.indeterminate(false);
135        }
136        value = !!value;
137        this.$element.prop("checked", value).trigger("change.bootstrapSwitch", skip);
138        return this.$element;
139      };
140
141      BootstrapSwitch.prototype.toggleState = function(skip) {
142        if (this.options.disabled || this.options.readonly) {
143          return this.$element;
144        }
145        if (this.options.indeterminate) {
146          this.indeterminate(false);
147          return this.state(true);
148        } else {
149          return this.$element.prop("checked", !this.options.state).trigger("change.bootstrapSwitch", skip);
150        }
151      };
152
153      BootstrapSwitch.prototype.size = function(value) {
154        if (typeof value === "undefined") {
155          return this.options.size;
156        }
157        if (this.options.size != null) {
158          this.$wrapper.removeClass("" + this.options.baseClass + "-" + this.options.size);
159        }
160        if (value) {
161          this.$wrapper.addClass("" + this.options.baseClass + "-" + value);
162        }
163        this._width();
164        this._containerPosition();
165        this.options.size = value;
166        return this.$element;
167      };
168
169      BootstrapSwitch.prototype.animate = function(value) {
170        if (typeof value === "undefined") {
171          return this.options.animate;
172        }
173        value = !!value;
174        if (value === this.options.animate) {
175          return this.$element;
176        }
177        return this.toggleAnimate();
178      };
179
180      BootstrapSwitch.prototype.toggleAnimate = function() {
181        this.options.animate = !this.options.animate;
182        this.$wrapper.toggleClass("" + this.options.baseClass + "-animate");
183        return this.$element;
184      };
185
186      BootstrapSwitch.prototype.disabled = function(value) {
187        if (typeof value === "undefined") {
188          return this.options.disabled;
189        }
190        value = !!value;
191        if (value === this.options.disabled) {
192          return this.$element;
193        }
194        return this.toggleDisabled();
195      };
196
197      BootstrapSwitch.prototype.toggleDisabled = function() {
198        this.options.disabled = !this.options.disabled;
199        this.$element.prop("disabled", this.options.disabled);
200        this.$wrapper.toggleClass("" + this.options.baseClass + "-disabled");
201        return this.$element;
202      };
203
204      BootstrapSwitch.prototype.readonly = function(value) {
205        if (typeof value === "undefined") {
206          return this.options.readonly;
207        }
208        value = !!value;
209        if (value === this.options.readonly) {
210          return this.$element;
211        }
212        return this.toggleReadonly();
213      };
214
215      BootstrapSwitch.prototype.toggleReadonly = function() {
216        this.options.readonly = !this.options.readonly;
217        this.$element.prop("readonly", this.options.readonly);
218        this.$wrapper.toggleClass("" + this.options.baseClass + "-readonly");
219        return this.$element;
220      };
221
222      BootstrapSwitch.prototype.indeterminate = function(value) {
223        if (typeof value === "undefined") {
224          return this.options.indeterminate;
225        }
226        value = !!value;
227        if (value === this.options.indeterminate) {
228          return this.$element;
229        }
230        return this.toggleIndeterminate();
231      };
232
233      BootstrapSwitch.prototype.toggleIndeterminate = function() {
234        this.options.indeterminate = !this.options.indeterminate;
235        this.$element.prop("indeterminate", this.options.indeterminate);
236        this.$wrapper.toggleClass("" + this.options.baseClass + "-indeterminate");
237        this._containerPosition();
238        return this.$element;
239      };
240
241      BootstrapSwitch.prototype.inverse = function(value) {
242        if (typeof value === "undefined") {
243          return this.options.inverse;
244        }
245        value = !!value;
246        if (value === this.options.inverse) {
247          return this.$element;
248        }
249        return this.toggleInverse();
250      };
251
252      BootstrapSwitch.prototype.toggleInverse = function() {
253        var $off, $on;
254        this.$wrapper.toggleClass("" + this.options.baseClass + "-inverse");
255        $on = this.$on.clone(true);
256        $off = this.$off.clone(true);
257        this.$on.replaceWith($off);
258        this.$off.replaceWith($on);
259        this.$on = $off;
260        this.$off = $on;
261        this.options.inverse = !this.options.inverse;
262        return this.$element;
263      };
264
265      BootstrapSwitch.prototype.onColor = function(value) {
266        var color;
267        color = this.options.onColor;
268        if (typeof value === "undefined") {
269          return color;
270        }
271        if (color != null) {
272          this.$on.removeClass("" + this.options.baseClass + "-" + color);
273        }
274        this.$on.addClass("" + this.options.baseClass + "-" + value);
275        this.options.onColor = value;
276        return this.$element;
277      };
278
279      BootstrapSwitch.prototype.offColor = function(value) {
280        var color;
281        color = this.options.offColor;
282        if (typeof value === "undefined") {
283          return color;
284        }
285        if (color != null) {
286          this.$off.removeClass("" + this.options.baseClass + "-" + color);
287        }
288        this.$off.addClass("" + this.options.baseClass + "-" + value);
289        this.options.offColor = value;
290        return this.$element;
291      };
292
293      BootstrapSwitch.prototype.onText = function(value) {
294        if (typeof value === "undefined") {
295          return this.options.onText;
296        }
297        this.$on.html(value);
298        this._width();
299        this._containerPosition();
300        this.options.onText = value;
301        return this.$element;
302      };
303
304      BootstrapSwitch.prototype.offText = function(value) {
305        if (typeof value === "undefined") {
306          return this.options.offText;
307        }
308        this.$off.html(value);
309        this._width();
310        this._containerPosition();
311        this.options.offText = value;
312        return this.$element;
313      };
314
315      BootstrapSwitch.prototype.labelText = function(value) {
316        if (typeof value === "undefined") {
317          return this.options.labelText;
318        }
319        this.$label.html(value);
320        this._width();
321        this.options.labelText = value;
322        return this.$element;
323      };
324
325      BootstrapSwitch.prototype.handleWidth = function(value) {
326        if (typeof value === "undefined") {
327          return this.options.handleWidth;
328        }
329        this.options.handleWidth = value;
330        this._width();
331        this._containerPosition();
332        return this.$element;
333      };
334
335      BootstrapSwitch.prototype.labelWidth = function(value) {
336        if (typeof value === "undefined") {
337          return this.options.labelWidth;
338        }
339        this.options.labelWidth = value;
340        this._width();
341        this._containerPosition();
342        return this.$element;
343      };
344
345      BootstrapSwitch.prototype.baseClass = function(value) {
346        return this.options.baseClass;
347      };
348
349      BootstrapSwitch.prototype.wrapperClass = function(value) {
350        if (typeof value === "undefined") {
351          return this.options.wrapperClass;
352        }
353        if (!value) {
354          value = $.fn.bootstrapSwitch.defaults.wrapperClass;
355        }
356        this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" "));
357        this.$wrapper.addClass(this._getClasses(value).join(" "));
358        this.options.wrapperClass = value;
359        return this.$element;
360      };
361
362      BootstrapSwitch.prototype.radioAllOff = function(value) {
363        if (typeof value === "undefined") {
364          return this.options.radioAllOff;
365        }
366        value = !!value;
367        if (value === this.options.radioAllOff) {
368          return this.$element;
369        }
370        this.options.radioAllOff = value;
371        return this.$element;
372      };
373
374      BootstrapSwitch.prototype.onInit = function(value) {
375        if (typeof value === "undefined") {
376          return this.options.onInit;
377        }
378        if (!value) {
379          value = $.fn.bootstrapSwitch.defaults.onInit;
380        }
381        this.options.onInit = value;
382        return this.$element;
383      };
384
385      BootstrapSwitch.prototype.onSwitchChange = function(value) {
386        if (typeof value === "undefined") {
387          return this.options.onSwitchChange;
388        }
389        if (!value) {
390          value = $.fn.bootstrapSwitch.defaults.onSwitchChange;
391        }
392        this.options.onSwitchChange = value;
393        return this.$element;
394      };
395
396      BootstrapSwitch.prototype.destroy = function() {
397        var $form;
398        $form = this.$element.closest("form");
399        if ($form.length) {
400          $form.off("reset.bootstrapSwitch").removeData("bootstrap-switch");
401        }
402        this.$container.children().not(this.$element).remove();
403        this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch");
404        return this.$element;
405      };
406
407      BootstrapSwitch.prototype._width = function() {
408        var $handles, handleWidth;
409        $handles = this.$on.add(this.$off);
410        $handles.add(this.$label).css("width", "");
411        handleWidth = this.options.handleWidth === "auto" ? Math.max(this.$on.width(), this.$off.width()) : this.options.handleWidth;
412        $handles.width(handleWidth);
413        this.$label.width((function(_this) {
414          return function(index, width) {
415            if (_this.options.labelWidth !== "auto") {
416              return _this.options.labelWidth;
417            }
418            if (width < handleWidth) {
419              return handleWidth;
420            } else {
421              return width;
422            }
423          };
424        })(this));
425        this._handleWidth = this.$on.outerWidth();
426        this._labelWidth = this.$label.outerWidth();
427        this.$container.width((this._handleWidth * 2) + this._labelWidth);
428        return this.$wrapper.width(this._handleWidth + this._labelWidth);
429      };
430
431      BootstrapSwitch.prototype._containerPosition = function(state, callback) {
432        if (state == null) {
433          state = this.options.state;
434        }
435        this.$container.css("margin-left", (function(_this) {
436          return function() {
437            var values;
438            values = [0, "-" + _this._handleWidth + "px"];
439            if (_this.options.indeterminate) {
440              return "-" + (_this._handleWidth / 2) + "px";
441            }
442            if (state) {
443              if (_this.options.inverse) {
444                return values[1];
445              } else {
446                return values[0];
447              }
448            } else {
449              if (_this.options.inverse) {
450                return values[0];
451              } else {
452                return values[1];
453              }
454            }
455          };
456        })(this));
457        if (!callback) {
458          return;
459        }
460        return setTimeout(function() {
461          return callback();
462        }, 50);
463      };
464
465      BootstrapSwitch.prototype._init = function() {
466        var init, initInterval;
467        init = (function(_this) {
468          return function() {
469            _this._width();
470            return _this._containerPosition(null, function() {
471              if (_this.options.animate) {
472                return _this.$wrapper.addClass("" + _this.options.baseClass + "-animate");
473              }
474            });
475          };
476        })(this);
477        if (this.$wrapper.is(":visible")) {
478          return init();
479        }
480        return initInterval = window.setInterval((function(_this) {
481          return function() {
482            if (_this.$wrapper.is(":visible")) {
483              init();
484              return window.clearInterval(initInterval);
485            }
486          };
487        })(this), 50);
488      };
489
490      BootstrapSwitch.prototype._elementHandlers = function() {
491        return this.$element.on({
492          "change.bootstrapSwitch": (function(_this) {
493            return function(e, skip) {
494              var state;
495              e.preventDefault();
496              e.stopImmediatePropagation();
497              state = _this.$element.is(":checked");
498              _this._containerPosition(state);
499              if (state === _this.options.state) {
500                return;
501              }
502              _this.options.state = state;
503              _this.$wrapper.toggleClass("" + _this.options.baseClass + "-off").toggleClass("" + _this.options.baseClass + "-on");
504              if (!skip) {
505                if (_this.$element.is(":radio")) {
506                  $("[name='" + (_this.$element.attr('name')) + "']").not(_this.$element).prop("checked", false).trigger("change.bootstrapSwitch", true);
507                }
508                return _this.$element.trigger("switchChange.bootstrapSwitch", [state]);
509              }
510            };
511          })(this),
512          "focus.bootstrapSwitch": (function(_this) {
513            return function(e) {
514              e.preventDefault();
515              return _this.$wrapper.addClass("" + _this.options.baseClass + "-focused");
516            };
517          })(this),
518          "blur.bootstrapSwitch": (function(_this) {
519            return function(e) {
520              e.preventDefault();
521              return _this.$wrapper.removeClass("" + _this.options.baseClass + "-focused");
522            };
523          })(this),
524          "keydown.bootstrapSwitch": (function(_this) {
525            return function(e) {
526              if (!e.which || _this.options.disabled || _this.options.readonly) {
527                return;
528              }
529              switch (e.which) {
530                case 37:
531                  e.preventDefault();
532                  e.stopImmediatePropagation();
533                  return _this.state(false);
534                case 39:
535                  e.preventDefault();
536                  e.stopImmediatePropagation();
537                  return _this.state(true);
538              }
539            };
540          })(this)
541        });
542      };
543
544      BootstrapSwitch.prototype._handleHandlers = function() {
545        this.$on.on("click.bootstrapSwitch", (function(_this) {
546          return function(event) {
547            event.preventDefault();
548            event.stopPropagation();
549            _this.state(false);
550            return _this.$element.trigger("focus.bootstrapSwitch");
551          };
552        })(this));
553        return this.$off.on("click.bootstrapSwitch", (function(_this) {
554          return function(event) {
555            event.preventDefault();
556            event.stopPropagation();
557            _this.state(true);
558            return _this.$element.trigger("focus.bootstrapSwitch");
559          };
560        })(this));
561      };
562
563      BootstrapSwitch.prototype._labelHandlers = function() {
564        return this.$label.on({
565          "mousedown.bootstrapSwitch touchstart.bootstrapSwitch": (function(_this) {
566            return function(e) {
567              if (_this._dragStart || _this.options.disabled || _this.options.readonly) {
568                return;
569              }
570              e.preventDefault();
571              e.stopPropagation();
572              _this._dragStart = (e.pageX || e.originalEvent.touches[0].pageX) - parseInt(_this.$container.css("margin-left"), 10);
573              if (_this.options.animate) {
574                _this.$wrapper.removeClass("" + _this.options.baseClass + "-animate");
575              }
576              return _this.$element.trigger("focus.bootstrapSwitch");
577            };
578          })(this),
579          "mousemove.bootstrapSwitch touchmove.bootstrapSwitch": (function(_this) {
580            return function(e) {
581              var difference;
582              if (_this._dragStart == null) {
583                return;
584              }
585              e.preventDefault();
586              difference = (e.pageX || e.originalEvent.touches[0].pageX) - _this._dragStart;
587              if (difference < -_this._handleWidth || difference > 0) {
588                return;
589              }
590              _this._dragEnd = difference;
591              return _this.$container.css("margin-left", "" + _this._dragEnd + "px");
592            };
593          })(this),
594          "mouseup.bootstrapSwitch touchend.bootstrapSwitch": (function(_this) {
595            return function(e) {
596              var state;
597              if (!_this._dragStart) {
598                return;
599              }
600              e.preventDefault();
601              if (_this.options.animate) {
602                _this.$wrapper.addClass("" + _this.options.baseClass + "-animate");
603              }
604              if (_this._dragEnd) {
605                state = _this._dragEnd > -(_this._handleWidth / 2);
606                _this._dragEnd = false;
607                _this.state(_this.options.inverse ? !state : state);
608              } else {
609                _this.state(!_this.options.state);
610              }
611              return _this._dragStart = false;
612            };
613          })(this),
614          "mouseleave.bootstrapSwitch": (function(_this) {
615            return function(e) {
616              return _this.$label.trigger("mouseup.bootstrapSwitch");
617            };
618          })(this)
619        });
620      };
621
622      BootstrapSwitch.prototype._externalLabelHandler = function() {
623        var $externalLabel;
624        $externalLabel = this.$element.closest("label");
625        return $externalLabel.on("click", (function(_this) {
626          return function(event) {
627            event.preventDefault();
628            event.stopImmediatePropagation();
629            if (event.target === $externalLabel[0]) {
630              return _this.toggleState();
631            }
632          };
633        })(this));
634      };
635
636      BootstrapSwitch.prototype._formHandler = function() {
637        var $form;
638        $form = this.$element.closest("form");
639        if ($form.data("bootstrap-switch")) {
640          return;
641        }
642        return $form.on("reset.bootstrapSwitch", function() {
643          return window.setTimeout(function() {
644            return $form.find("input").filter(function() {
645              return $(this).data("bootstrap-switch");
646            }).each(function() {
647              return $(this).bootstrapSwitch("state", this.checked);
648            });
649          }, 1);
650        }).data("bootstrap-switch", true);
651      };
652
653      BootstrapSwitch.prototype._getClasses = function(classes) {
654        var c, cls, _i, _len;
655        if (!$.isArray(classes)) {
656          return ["" + this.options.baseClass + "-" + classes];
657        }
658        cls = [];
659        for (_i = 0, _len = classes.length; _i < _len; _i++) {
660          c = classes[_i];
661          cls.push("" + this.options.baseClass + "-" + c);
662        }
663        return cls;
664      };
665
666      return BootstrapSwitch;
667
668    })();
669    $.fn.bootstrapSwitch = function() {
670      var args, option, ret;
671      option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
672      ret = this;
673      this.each(function() {
674        var $this, data;
675        $this = $(this);
676        data = $this.data("bootstrap-switch");
677        if (!data) {
678          $this.data("bootstrap-switch", data = new BootstrapSwitch(this, option));
679        }
680        if (typeof option === "string") {
681          return ret = data[option].apply(data, args);
682        }
683      });
684      return ret;
685    };
686    $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;
687    return $.fn.bootstrapSwitch.defaults = {
688      state: true,
689      size: null,
690      animate: true,
691      disabled: false,
692      readonly: false,
693      indeterminate: false,
694      inverse: false,
695      radioAllOff: false,
696      onColor: "primary",
697      offColor: "default",
698      onText: "ON",
699      offText: "OFF",
700      labelText: "&nbsp;",
701      handleWidth: "auto",
702      labelWidth: "auto",
703      baseClass: "bootstrap-switch",
704      wrapperClass: "wrapper",
705      onInit: function() {},
706      onSwitchChange: function() {}
707    };
708  })(window.jQuery, window);
709
710}).call(this);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.