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