diff --git a/build/npm/Plugins.js b/build/npm/Plugins.js index 147b2b543..254fe1f49 100644 --- a/build/npm/Plugins.js +++ b/build/npm/Plugins.js @@ -379,6 +379,11 @@ const Plugins = [ from: 'node_modules/ekko-lightbox/dist', to: 'plugins/ekko-lightbox/' }, + // bootstrap-switch + { + from: 'node_modules/bootstrap-switch/dist', + to: 'plugins/bootstrap-switch/' + }, // AdminLTE Dist { diff --git a/build/scss/AdminLTE-raw.scss b/build/scss/AdminLTE-raw.scss index 3509d2722..67b55e76f 100644 --- a/build/scss/AdminLTE-raw.scss +++ b/build/scss/AdminLTE-raw.scss @@ -70,6 +70,8 @@ @import 'plugins/jqvmap'; @import 'plugins/sweetalert2'; @import 'plugins/toastr'; +@import 'plugins/pace'; +@import 'plugins/bootstrap-switch'; @import 'plugins/miscellaneous'; // Miscellaneous diff --git a/build/scss/AdminLTE.scss b/build/scss/AdminLTE.scss index c15a5f901..888174d07 100644 --- a/build/scss/AdminLTE.scss +++ b/build/scss/AdminLTE.scss @@ -67,6 +67,7 @@ @import 'plugins/sweetalert2'; @import 'plugins/toastr'; @import 'plugins/pace'; +@import 'plugins/bootstrap-switch'; @import 'plugins/miscellaneous'; // Miscellaneous diff --git a/build/scss/plugins/_bootstrap-switch.scss b/build/scss/plugins/_bootstrap-switch.scss new file mode 100644 index 000000000..9219c7c07 --- /dev/null +++ b/build/scss/plugins/_bootstrap-switch.scss @@ -0,0 +1,175 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4 (MODDED) + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +$bootstrap-switch-border-radius: $btn-border-radius; +$bootstrap-switch-handle-border-radius: .1rem; + +.bootstrap-switch { + border: $input-border-width solid $input-border-color; + border-radius: $bootstrap-switch-border-radius; + cursor: pointer; + direction: ltr; + display: inline-block; + line-height: .5rem; + overflow: hidden; + position: relative; + text-align: left; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + user-select: none; + vertical-align: middle; + z-index: 0; + + .bootstrap-switch-container { + border-radius: $bootstrap-switch-border-radius; + display: inline-block; + top: 0; + transform: translate3d(0, 0, 0); + + } + + &:focus-within { + box-shadow: $input-btn-focus-box-shadow; + } + + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off, + .bootstrap-switch-label { + box-sizing: border-box; + cursor: pointer; + display: table-cell; + font-size: 1rem; + font-weight: 500; + line-height: 1.2rem; + padding: .25rem .5rem; + vertical-align: middle; + } + + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off { + text-align: center; + z-index: 1; + + &.bootstrap-switch-default { + background: $gray-200; + color: color-yiq($gray-200); + } + + @each $name, $color in $theme-colors { + &.bootstrap-switch-#{$name} { + background: $color; + color: color-yiq($color); + } + } + + @each $name, $color in $colors { + &.bootstrap-switch-#{$name} { + background: $color; + color: color-yiq($color); + } + } + } + + .bootstrap-switch-handle-on { + border-bottom-left-radius: $bootstrap-switch-handle-border-radius; + border-top-left-radius: $bootstrap-switch-handle-border-radius; + } + + .bootstrap-switch-handle-off { + border-bottom-right-radius: $bootstrap-switch-handle-border-radius; + border-top-right-radius: $bootstrap-switch-handle-border-radius; + } + + input[type='radio'], + input[type='checkbox'] { + filter: alpha(opacity=0); + left: 0; + margin: 0; + opacity: 0; + position: absolute; + top: 0; + visibility: hidden; + z-index: -1; + } + + &.bootstrap-switch-mini { + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off, + .bootstrap-switch-label { + font-size: .875rem; + line-height: 1.5; + padding: .1rem .3rem; + } + } + + &.bootstrap-switch-small { + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off, + .bootstrap-switch-label { + font-size: .875rem; + line-height: 1.5; + padding: .2rem .4rem; + } + } + + &.bootstrap-switch-large { + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off, + .bootstrap-switch-label { + font-size: 1.25rem; + line-height: 1.3333333rem; + padding: .3rem .5rem; + } + } + + &.bootstrap-switch-disabled, + &.bootstrap-switch-readonly, + &.bootstrap-switch-indeterminate { + cursor: default; + + .bootstrap-switch-handle-on, + .bootstrap-switch-handle-off, + .bootstrap-switch-label { + cursor: default; + filter: alpha(opacity=50); + opacity: .5; + } + } + + &.bootstrap-switch-animate .bootstrap-switch-container { + transition: margin-left .5s; + } + + &.bootstrap-switch-inverse { + .bootstrap-switch-handle-on { + border-radius: 0 $bootstrap-switch-handle-border-radius $bootstrap-switch-handle-border-radius 0; + } + + .bootstrap-switch-handle-off { + border-radius: $bootstrap-switch-handle-border-radius 0 0 $bootstrap-switch-handle-border-radius; + } + } + + // &.bootstrap-switch-focused { + // border-color: $input-btn-focus-color; + // box-shadow: $input-btn-focus-box-shadow; + // outline: 0; + // } + + &.bootstrap-switch-on .bootstrap-switch-label, + &.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label { + border-bottom-right-radius: $bootstrap-switch-handle-border-radius; + border-top-right-radius: $bootstrap-switch-handle-border-radius; + } + + &.bootstrap-switch-off .bootstrap-switch-label, + &.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label { + border-bottom-left-radius: $bootstrap-switch-handle-border-radius; + border-top-left-radius: $bootstrap-switch-handle-border-radius; + } +} diff --git a/package-lock.json b/package-lock.json index 862370621..2d560415a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "admin-lte", - "version": "3.0.0-beta.2", + "version": "3.0.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3228,6 +3228,11 @@ "resolved": "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz", "integrity": "sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q==" }, + "bootstrap-switch": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/bootstrap-switch/-/bootstrap-switch-3.4.0.tgz", + "integrity": "sha512-P4Qdx7mLjqgilKQeeuDCf8AHWeO7992+NFfh0doAA/ExaJqr02QFHhq18GL8EYd2XRviJ16pUUyMRsfOVaPEVg==" + }, "bootstrap4-duallistbox": { "version": "4.0.1", "resolved": "github:istvan-ujjmeszaros/bootstrap-duallistbox#b3295efa2dc1ca6d6f14531ee0f073c3a45e554f" diff --git a/package.json b/package.json index 3d47ec44a..951fb673b 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "bootstrap": "^4.3.1", "bootstrap-colorpicker": "^3.1.2", "bootstrap-slider": "^10.6.2", + "bootstrap-switch": "^3.4.0", "bootstrap4-duallistbox": "^4.0.1", "chart.js": "^2.8.0", "datatables.net": "^1.10.19", diff --git a/pages/forms/advanced.html b/pages/forms/advanced.html index 4371f66c7..69e4e2a65 100644 --- a/pages/forms/advanced.html +++ b/pages/forms/advanced.html @@ -1025,129 +1025,138 @@
- - -
-
- - +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
-
- - -
-
- - +
+ +
+
+ + +
+
+ + +
+
+ + +
+
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
-
- - +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
-
- - -
-
- - +
+ +
+
+ + +
+
+ + +
+
+ + +
+
- - -
-
- - -
-
- - -
-
- - -
-
- - - - -
-
- - +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - +
+ +
+
+ + +
+
+ + +
+
+ + +
+
@@ -1157,6 +1166,18 @@
+ + +
+
+

Bootstrap Switch

+
+
+ + +
+
+
@@ -1199,6 +1220,8 @@ + + @@ -1263,6 +1286,8 @@ $('.my-colorpicker2').on('colorpickerChange', function(event) { $('.my-colorpicker2 .fa-square').css('color', event.color.toString()); }); + + $("[data-bootstrap-switch]").bootstrapSwitch(); }) diff --git a/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.css b/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.css new file mode 100644 index 000000000..c51c5492d --- /dev/null +++ b/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.css @@ -0,0 +1,510 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; + line-height: 0; +} +.clearfix:after { + clear: both; +} +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.bootstrap-switch { + display: inline-block; + direction: ltr; + cursor: pointer; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + border: 1px solid; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + 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; + -o-user-select: none; + user-select: none; + vertical-align: middle; + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -moz-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; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.bootstrap-switch .bootstrap-switch-handle-on, +.bootstrap-switch .bootstrap-switch-handle-off, +.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; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 8px; + padding-right: 8px; + font-size: 14px; + line-height: 20px; +} +.bootstrap-switch .bootstrap-switch-handle-on, +.bootstrap-switch .bootstrap-switch-handle-off { + text-align: center; + z-index: 1; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #005fcc; + background-image: -moz-linear-gradient(top, #0044cc, #08c); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0044cc), to(#08c)); + background-image: -webkit-linear-gradient(top, #0044cc, #08c); + background-image: -o-linear-gradient(top, #0044cc, #08c); + background-image: linear-gradient(to bottom, #0044cc, #08c); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0044cc', endColorstr='#ff0088cc', GradientType=0); + border-color: #08c #08c #005580; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #08c; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary[disabled] { + color: #fff; + background-color: #08c; + *background-color: #0077b3; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active { + background-color: #006699 \9; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41a7c5; + background-image: -moz-linear-gradient(top, #2f96b4, #5bc0de); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2f96b4), to(#5bc0de)); + background-image: -webkit-linear-gradient(top, #2f96b4, #5bc0de); + background-image: -o-linear-gradient(top, #2f96b4, #5bc0de); + background-image: linear-gradient(to bottom, #2f96b4, #5bc0de); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f96b4', endColorstr='#ff5bc0de', GradientType=0); + border-color: #5bc0de #5bc0de #28a1c5; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #5bc0de; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info[disabled] { + color: #fff; + background-color: #5bc0de; + *background-color: #46b8da; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active { + background-color: #31b0d5 \9; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #58b058; + background-image: -moz-linear-gradient(top, #51a351, #62c462); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#51a351), to(#62c462)); + background-image: -webkit-linear-gradient(top, #51a351, #62c462); + background-image: -o-linear-gradient(top, #51a351, #62c462); + background-image: linear-gradient(to bottom, #51a351, #62c462); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff51a351', endColorstr='#ff62c462', GradientType=0); + border-color: #62c462 #62c462 #3b9e3b; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #62c462; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success[disabled] { + color: #fff; + background-color: #62c462; + *background-color: #4fbd4f; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active { + background-color: #42b142 \9; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #f9a123; + background-image: -moz-linear-gradient(top, #f89406, #fbb450); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f89406), to(#fbb450)); + background-image: -webkit-linear-gradient(top, #f89406, #fbb450); + background-image: -o-linear-gradient(top, #f89406, #fbb450); + background-image: linear-gradient(to bottom, #f89406, #fbb450); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff89406', endColorstr='#fffbb450', GradientType=0); + border-color: #fbb450 #fbb450 #f89406; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #fbb450; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning[disabled] { + color: #fff; + background-color: #fbb450; + *background-color: #faa937; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active { + background-color: #fa9f1e \9; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger { + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #d14641; + background-image: -moz-linear-gradient(top, #bd362f, #ee5f5b); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bd362f), to(#ee5f5b)); + background-image: -webkit-linear-gradient(top, #bd362f, #ee5f5b); + background-image: -o-linear-gradient(top, #bd362f, #ee5f5b); + background-image: linear-gradient(to bottom, #bd362f, #ee5f5b); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbd362f', endColorstr='#ffee5f5b', GradientType=0); + border-color: #ee5f5b #ee5f5b #e51d18; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #ee5f5b; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled] { + color: #fff; + background-color: #ee5f5b; + *background-color: #ec4844; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active { + background-color: #e9322d \9; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default { + color: #333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + background-color: #f0f0f0; + background-image: -moz-linear-gradient(top, #e6e6e6, #fff); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#fff)); + background-image: -webkit-linear-gradient(top, #e6e6e6, #fff); + background-image: -o-linear-gradient(top, #e6e6e6, #fff); + background-image: linear-gradient(to bottom, #e6e6e6, #fff); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffffffff', GradientType=0); + border-color: #fff #fff #d9d9d9; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #fff; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:hover, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:focus, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:focus, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.disabled, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled], +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default[disabled] { + color: #333; + background-color: #fff; + *background-color: #f2f2f2; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active, +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active { + background-color: #e6e6e6 \9; +} +.bootstrap-switch .bootstrap-switch-label { + text-align: center; + margin-top: -1px; + margin-bottom: -1px; + z-index: 100; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + color: #333; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #f5f5f5; + background-image: -moz-linear-gradient(top, #fff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #fff, #e6e6e6); + background-image: -o-linear-gradient(top, #fff, #e6e6e6); + background-image: linear-gradient(to bottom, #fff, #e6e6e6); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #e6e6e6; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.bootstrap-switch .bootstrap-switch-label:hover, +.bootstrap-switch .bootstrap-switch-label:focus, +.bootstrap-switch .bootstrap-switch-label:active, +.bootstrap-switch .bootstrap-switch-label.active, +.bootstrap-switch .bootstrap-switch-label.disabled, +.bootstrap-switch .bootstrap-switch-label[disabled] { + color: #333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} +.bootstrap-switch .bootstrap-switch-label:active, +.bootstrap-switch .bootstrap-switch-label.active { + background-color: #cccccc \9; +} +.bootstrap-switch span::before { + content: "\200b"; +} +.bootstrap-switch .bootstrap-switch-handle-on { + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.bootstrap-switch .bootstrap-switch-handle-off { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.bootstrap-switch input[type='radio'], +.bootstrap-switch input[type='checkbox'] { + position: absolute !important; + top: 0; + left: 0; + opacity: 0; + filter: alpha(opacity=0); + z-index: -1; + visibility: hidden; +} +.bootstrap-switch input[type='radio'].form-control, +.bootstrap-switch input[type='checkbox'].form-control { + height: auto; +} +.bootstrap-switch.bootstrap-switch-mini { + min-width: 71px; +} +.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label { + padding: 3px 6px; + font-size: 10px; + line-height: 9px; +} +.bootstrap-switch.bootstrap-switch-small { + min-width: 79px; +} +.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label { + padding: 3px 6px; + font-size: 12px; + line-height: 18px; +} +.bootstrap-switch.bootstrap-switch-large { + min-width: 120px; +} +.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label { + padding: 9px 12px; + font-size: 16px; + line-height: normal; +} +.bootstrap-switch.bootstrap-switch-disabled, +.bootstrap-switch.bootstrap-switch-readonly, +.bootstrap-switch.bootstrap-switch-indeterminate { + cursor: default !important; +} +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default !important; +} +.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { + -webkit-transition: margin-left 0.5s; + -moz-transition: margin-left 0.5s; + -o-transition: margin-left 0.5s; + transition: margin-left 0.5s; +} +.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on { + -webkit-border-top-left-radius: 0; + -moz-border-radius-topleft: 0; + border-top-left-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; + border-bottom-left-radius: 0; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off { + -webkit-border-top-right-radius: 0; + -moz-border-radius-topright: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; + border-bottom-right-radius: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.bootstrap-switch.bootstrap-switch-focused { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82, 168, 236, .6); +} +.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label { + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} diff --git a/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.min.css b/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.min.css new file mode 100644 index 000000000..8b7c11ede --- /dev/null +++ b/plugins/bootstrap-switch/css/bootstrap2/bootstrap-switch.min.css @@ -0,0 +1,10 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:1px solid;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);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;-o-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-moz-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-handle-on,.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-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;font-size:14px;line-height:20px;padding:4px 8px}.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;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#005fcc;background-image:-moz-linear-gradient(top,#04c,#08c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#04c),to(#08c));background-image:-webkit-linear-gradient(top,#04c,#08c);background-image:-o-linear-gradient(top,#04c,#08c);background-image:linear-gradient(to bottom,#04c,#08c);background-repeat:repeat-x;border-color:#08c #08c #005580;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary[disabled]{color:#fff;background-color:#08c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:active{background-color:#069\9}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#41a7c5;background-image:-moz-linear-gradient(top,#2f96b4,#5bc0de);background-image:-webkit-gradient(linear,0 0,0 100%,from(#2f96b4),to(#5bc0de));background-image:-webkit-linear-gradient(top,#2f96b4,#5bc0de);background-image:-o-linear-gradient(top,#2f96b4,#5bc0de);background-image:linear-gradient(to bottom,#2f96b4,#5bc0de);background-repeat:repeat-x;border-color:#5bc0de #5bc0de #28a1c5;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info[disabled]{color:#fff;background-color:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info:active{background-color:#31b0d5\9}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#58b058;background-image:-moz-linear-gradient(top,#51a351,#62c462);background-image:-webkit-gradient(linear,0 0,0 100%,from(#51a351),to(#62c462));background-image:-webkit-linear-gradient(top,#51a351,#62c462);background-image:-o-linear-gradient(top,#51a351,#62c462);background-image:linear-gradient(to bottom,#51a351,#62c462);background-repeat:repeat-x;border-color:#62c462 #62c462 #3b9e3b;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success[disabled]{color:#fff;background-color:#62c462}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success:active{background-color:#42b142\9}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#f9a123;background-image:-moz-linear-gradient(top,#f89406,#fbb450);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f89406),to(#fbb450));background-image:-webkit-linear-gradient(top,#f89406,#fbb450);background-image:-o-linear-gradient(top,#f89406,#fbb450);background-image:linear-gradient(to bottom,#f89406,#fbb450);background-repeat:repeat-x;border-color:#fbb450 #fbb450 #f89406;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning[disabled]{color:#fff;background-color:#fbb450}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning:active{background-color:#fa9f1e\9}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#d14641;background-image:-moz-linear-gradient(top,#bd362f,#ee5f5b);background-image:-webkit-gradient(linear,0 0,0 100%,from(#bd362f),to(#ee5f5b));background-image:-webkit-linear-gradient(top,#bd362f,#ee5f5b);background-image:-o-linear-gradient(top,#bd362f,#ee5f5b);background-image:linear-gradient(to bottom,#bd362f,#ee5f5b);background-repeat:repeat-x;border-color:#ee5f5b #ee5f5b #e51d18;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger[disabled]{color:#fff;background-color:#ee5f5b}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active{background-color:#e9322d\9}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#e6e6e6,#fff);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#fff));background-image:-webkit-linear-gradient(top,#e6e6e6,#fff);background-image:-o-linear-gradient(top,#e6e6e6,#fff);background-image:linear-gradient(to bottom,#e6e6e6,#fff);background-repeat:repeat-x;border-color:#fff #fff #d9d9d9;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:focus,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:hover,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default[disabled],.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.disabled,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:focus,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled]{color:#333;background-color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default.active,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:active{background-color:#e6e6e6\9}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;border-left:1px solid #ccc;border-right:1px solid #ccc;color:#333;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bootstrap-switch .bootstrap-switch-label.active,.bootstrap-switch .bootstrap-switch-label.disabled,.bootstrap-switch .bootstrap-switch-label:active,.bootstrap-switch .bootstrap-switch-label:focus,.bootstrap-switch .bootstrap-switch-label:hover,.bootstrap-switch .bootstrap-switch-label[disabled]{color:#333;background-color:#e6e6e6}.bootstrap-switch .bootstrap-switch-label.active,.bootstrap-switch .bootstrap-switch-label:active{background-color:#ccc\9}.bootstrap-switch span::before{content:"\200b"}.bootstrap-switch .bootstrap-switch-handle-on{border-top-left-radius:4px;border-bottom-left-radius:4px}.bootstrap-switch .bootstrap-switch-handle-off{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1;visibility:hidden}.bootstrap-switch input[type=radio].form-control,.bootstrap-switch input[type=checkbox].form-control{height:auto}.bootstrap-switch.bootstrap-switch-mini{min-width:71px}.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:3px 6px;font-size:10px;line-height:9px}.bootstrap-switch.bootstrap-switch-small{min-width:79px}.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:3px 6px;font-size:12px;line-height:18px}.bootstrap-switch.bootstrap-switch-large{min-width:120px}.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:9px 12px;font-size:16px;line-height:normal}.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;-moz-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{-webkit-border-top-left-radius:0;-moz-border-radius-topleft:0;-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-radius:0 4px 4px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{-webkit-border-top-right-radius:0;-moz-border-radius-topright:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-radius:4px 0 0 4px}.bootstrap-switch.bootstrap-switch-focused{border-color:rgba(82,168,236,.8);outline:0;outline:dotted thin\9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px} \ No newline at end of file diff --git a/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.css b/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.css new file mode 100644 index 000000000..417091c32 --- /dev/null +++ b/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.css @@ -0,0 +1,187 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +.bootstrap-switch { + display: inline-block; + direction: ltr; + cursor: pointer; + border-radius: 4px; + border: 1px solid; + border-color: #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-on, +.bootstrap-switch .bootstrap-switch-handle-off, +.bootstrap-switch .bootstrap-switch-label { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + display: table-cell; + vertical-align: middle; + padding: 6px 12px; + font-size: 14px; + line-height: 20px; +} +.bootstrap-switch .bootstrap-switch-handle-on, +.bootstrap-switch .bootstrap-switch-handle-off { + text-align: center; + z-index: 1; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary { + color: #fff; + background: #337ab7; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info { + color: #fff; + background: #5bc0de; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success { + color: #fff; + background: #5cb85c; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning { + background: #f0ad4e; + color: #fff; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger { + color: #fff; + background: #d9534f; +} +.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default, +.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default { + color: #000; + background: #eeeeee; +} +.bootstrap-switch .bootstrap-switch-label { + text-align: center; + margin-top: -1px; + margin-bottom: -1px; + z-index: 100; + color: #333; + background: #fff; +} +.bootstrap-switch span::before { + content: "\200b"; +} +.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); + visibility: hidden; +} +.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off, +.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-on, +.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off, +.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-on, +.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off, +.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-readonly, +.bootstrap-switch.bootstrap-switch-indeterminate { + cursor: default !important; +} +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on, +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off, +.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default !important; +} +.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container { + -webkit-transition: margin-left 0.5s; + -o-transition: margin-left 0.5s; + transition: margin-left 0.5s; +} +.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 3px; + border-top-left-radius: 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, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label, +.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} diff --git a/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.min.css b/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.min.css new file mode 100644 index 000000000..8f30f54a5 --- /dev/null +++ b/plugins/bootstrap-switch/css/bootstrap3/bootstrap-switch.min.css @@ -0,0 +1,10 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +.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:table-cell;vertical-align:middle;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 span::before{content:"\200b"}.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);visibility:hidden}.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} \ No newline at end of file diff --git a/plugins/bootstrap-switch/js/bootstrap-switch.js b/plugins/bootstrap-switch/js/bootstrap-switch.js new file mode 100644 index 000000000..2ca36943a --- /dev/null +++ b/plugins/bootstrap-switch/js/bootstrap-switch.js @@ -0,0 +1,767 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define(['jquery'], factory); + } else if (typeof exports !== "undefined") { + factory(require('jquery')); + } else { + var mod = { + exports: {} + }; + factory(global.jquery); + global.bootstrapSwitch = mod.exports; + } +})(this, function (_jquery) { + 'use strict'; + + var _jquery2 = _interopRequireDefault(_jquery); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + + var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + var _createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + var $ = _jquery2.default || window.jQuery || window.$; + + function getClasses(options, id) { + var state = options.state, + size = options.size, + disabled = options.disabled, + readonly = options.readonly, + indeterminate = options.indeterminate, + inverse = options.inverse; + + return [state ? 'on' : 'off', size, disabled ? 'disabled' : undefined, readonly ? 'readonly' : undefined, indeterminate ? 'indeterminate' : undefined, inverse ? 'inverse' : undefined, id ? 'id-' + id : undefined].filter(function (v) { + return v == null; + }); + } + + function prvgetElementOptions() { + return { + 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') + }; + } + + function prvwidth() { + var _this = this; + + var $handles = this.$on.add(this.$off).add(this.$label).css('width', ''); + var handleWidth = this.options.handleWidth === 'auto' ? Math.round(Math.max(this.$on.width(), this.$off.width())) : this.options.handleWidth; + $handles.width(handleWidth); + this.$label.width(function (index, width) { + if (_this.options.labelWidth !== 'auto') { + return _this.options.labelWidth; + } + if (width < handleWidth) { + return handleWidth; + } + return width; + }); + this.privateHandleWidth = this.$on.outerWidth(); + this.privateLabelWidth = this.$label.outerWidth(); + this.$container.width(this.privateHandleWidth * 2 + this.privateLabelWidth); + return this.$wrapper.width(this.privateHandleWidth + this.privateLabelWidth); + } + + function prvcontainerPosition() { + var _this2 = this; + + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.ope; + + this.$container.css('margin-left', function () { + var values = [0, '-' + _this2.privateHandleWidth + 'px']; + if (_this2.options.indeterminate) { + return '-' + _this2.privateHandleWidth / 2 + 'px'; + } + if (state) { + if (_this2.options.inverse) { + return values[1]; + } + return values[0]; + } + if (_this2.options.inverse) { + return values[0]; + } + return values[1]; + }); + } + + function prvgetClass(name) { + return this.options.baseClass + '-' + name; + } + + function prvinit() { + var _this3 = this; + + var init = function init() { + _this3.setPrevOptions(); + prvwidth.call(_this3); + prvcontainerPosition.call(_this3); + setTimeout(function () { + return _this3.options.animate && _this3.$wrapper.addClass(prvgetClass.call(_this3, 'animate')); + }, 50); + }; + if (this.$wrapper.is(':visible')) { + init(); + return; + } + var initInterval = window.setInterval(function () { + return _this3.$wrapper.is(':visible') && (init() || true) && window.clearInterval(initInterval); + }, 50); + } + + function prvelementHandlers() { + var _this4 = this; + + return this.$element.on({ + 'setPreviousOptions.bootstrapSwitch': function setPreviousOptionsBootstrapSwitch() { + return _this4.setPrevOptions(); + }, + + 'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() { + _this4.options = _this4.prevOptions; + if (_this4.options.indeterminate) { + _this4.$wrapper.addClass(prvgetClass.call(_this4, 'indeterminate')); + } + _this4.$element.prop('checked', _this4.options.state).trigger('change.bootstrapSwitch', true); + }, + + 'change.bootstrapSwitch': function changeBootstrapSwitch(event, skip) { + event.preventDefault(); + event.stopImmediatePropagation(); + var state = _this4.$element.is(':checked'); + prvcontainerPosition.call(_this4, state); + if (state === _this4.options.state) { + return; + } + _this4.options.state = state; + _this4.$wrapper.toggleClass(prvgetClass.call(_this4, 'off')).toggleClass(prvgetClass.call(_this4, 'on')); + if (!skip) { + if (_this4.$element.is(':radio')) { + $('[name="' + _this4.$element.attr('name') + '"]').not(_this4.$element).prop('checked', false).trigger('change.bootstrapSwitch', true); + } + _this4.$element.trigger('switchChange.bootstrapSwitch', [state]); + } + }, + + 'focus.bootstrapSwitch': function focusBootstrapSwitch(event) { + event.preventDefault(); + _this4.$wrapper.addClass(prvgetClass.call(_this4, 'focused')); + }, + + 'blur.bootstrapSwitch': function blurBootstrapSwitch(event) { + event.preventDefault(); + _this4.$wrapper.removeClass(prvgetClass.call(_this4, 'focused')); + }, + + 'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) { + if (!event.which || _this4.options.disabled || _this4.options.readonly) { + return; + } + if (event.which === 37 || event.which === 39) { + event.preventDefault(); + event.stopImmediatePropagation(); + _this4.state(event.which === 39); + } + } + }); + } + + function prvhandleHandlers() { + var _this5 = this; + + this.$on.on('click.bootstrapSwitch', function (event) { + event.preventDefault(); + event.stopPropagation(); + _this5.state(false); + return _this5.$element.trigger('focus.bootstrapSwitch'); + }); + return this.$off.on('click.bootstrapSwitch', function (event) { + event.preventDefault(); + event.stopPropagation(); + _this5.state(true); + return _this5.$element.trigger('focus.bootstrapSwitch'); + }); + } + + function prvlabelHandlers() { + var _this6 = this; + + var dragStart = void 0; + var dragEnd = void 0; + var handlers = { + click: function click(event) { + event.stopPropagation(); + }, + + + 'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) { + if (dragStart || _this6.options.disabled || _this6.options.readonly) { + return; + } + event.preventDefault(); + event.stopPropagation(); + dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(_this6.$container.css('margin-left'), 10); + if (_this6.options.animate) { + _this6.$wrapper.removeClass(prvgetClass.call(_this6, 'animate')); + } + _this6.$element.trigger('focus.bootstrapSwitch'); + }, + + 'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) { + if (dragStart == null) { + return; + } + var difference = (event.pageX || event.originalEvent.touches[0].pageX) - dragStart; + event.preventDefault(); + if (difference < -_this6.privateHandleWidth || difference > 0) { + return; + } + dragEnd = difference; + _this6.$container.css('margin-left', dragEnd + 'px'); + }, + + 'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) { + if (!dragStart) { + return; + } + event.preventDefault(); + if (_this6.options.animate) { + _this6.$wrapper.addClass(prvgetClass.call(_this6, 'animate')); + } + if (dragEnd) { + var state = dragEnd > -(_this6.privateHandleWidth / 2); + dragEnd = false; + _this6.state(_this6.options.inverse ? !state : state); + } else { + _this6.state(!_this6.options.state); + } + dragStart = false; + }, + + 'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() { + _this6.$label.trigger('mouseup.bootstrapSwitch'); + } + }; + this.$label.on(handlers); + } + + function prvexternalLabelHandler() { + var _this7 = this; + + var $externalLabel = this.$element.closest('label'); + $externalLabel.on('click', function (event) { + event.preventDefault(); + event.stopImmediatePropagation(); + if (event.target === $externalLabel[0]) { + _this7.toggleState(); + } + }); + } + + function prvformHandler() { + function isBootstrapSwitch() { + return $(this).data('bootstrap-switch'); + } + + function performReset() { + return $(this).bootstrapSwitch('state', this.checked); + } + + var $form = this.$element.closest('form'); + if ($form.data('bootstrap-switch')) { + return; + } + $form.on('reset.bootstrapSwitch', function () { + window.setTimeout(function () { + $form.find('input').filter(isBootstrapSwitch).each(performReset); + }, 1); + }).data('bootstrap-switch', true); + } + + function prvgetClasses(classes) { + var _this8 = this; + + if (!$.isArray(classes)) { + return [prvgetClass.call(this, classes)]; + } + return classes.map(function (v) { + return prvgetClass.call(_this8, v); + }); + } + + var BootstrapSwitch = function () { + function BootstrapSwitch(element) { + var _this9 = this; + + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + _classCallCheck(this, BootstrapSwitch); + + this.$element = $(element); + this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, prvgetElementOptions.call(this), options); + this.prevOptions = {}; + this.$wrapper = $('
', { + class: function _class() { + return getClasses(_this9.options, _this9.$element.attr('id')).map(function (v) { + return prvgetClass.call(_this9, v); + }).concat([_this9.options.baseClass], prvgetClasses.call(_this9, _this9.options.wrapperClass)).join(' '); + } + }); + this.$container = $('
', { class: prvgetClass.call(this, 'container') }); + this.$on = $('', { + html: this.options.onText, + class: prvgetClass.call(this, 'handle-on') + ' ' + prvgetClass.call(this, this.options.onColor) + }); + this.$off = $('', { + html: this.options.offText, + class: prvgetClass.call(this, 'handle-off') + ' ' + prvgetClass.call(this, this.options.offColor) + }); + this.$label = $('', { + html: this.options.labelText, + class: prvgetClass.call(this, 'label') + }); + + this.$element.on('init.bootstrapSwitch', function () { + return _this9.options.onInit(element); + }); + this.$element.on('switchChange.bootstrapSwitch', function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var changeState = _this9.options.onSwitchChange.apply(element, args); + if (changeState === false) { + if (_this9.$element.is(':radio')) { + $('[name="' + _this9.$element.attr('name') + '"]').trigger('previousState.bootstrapSwitch', true); + } else { + _this9.$element.trigger('previousState.bootstrapSwitch', true); + } + } + }); + + 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); + + if (this.options.indeterminate) { + this.$element.prop('indeterminate', true); + } + + prvinit.call(this); + prvelementHandlers.call(this); + prvhandleHandlers.call(this); + prvlabelHandlers.call(this); + prvformHandler.call(this); + prvexternalLabelHandler.call(this); + this.$element.trigger('init.bootstrapSwitch', this.options.state); + } + + _createClass(BootstrapSwitch, [{ + key: 'setPrevOptions', + value: function setPrevOptions() { + this.prevOptions = _extends({}, this.options); + } + }, { + key: 'state', + value: function state(value, skip) { + if (typeof value === 'undefined') { + return this.options.state; + } + if (this.options.disabled || this.options.readonly || this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) { + return this.$element; + } + if (this.$element.is(':radio')) { + $('[name="' + this.$element.attr('name') + '"]').trigger('setPreviousOptions.bootstrapSwitch'); + } else { + this.$element.trigger('setPreviousOptions.bootstrapSwitch'); + } + if (this.options.indeterminate) { + this.indeterminate(false); + } + this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip); + return this.$element; + } + }, { + key: 'toggleState', + value: function toggleState(skip) { + if (this.options.disabled || this.options.readonly) { + return this.$element; + } + if (this.options.indeterminate) { + this.indeterminate(false); + return this.state(true); + } + return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip); + } + }, { + key: 'size', + value: function size(value) { + if (typeof value === 'undefined') { + return this.options.size; + } + if (this.options.size != null) { + this.$wrapper.removeClass(prvgetClass.call(this, this.options.size)); + } + if (value) { + this.$wrapper.addClass(prvgetClass.call(this, value)); + } + prvwidth.call(this); + prvcontainerPosition.call(this); + this.options.size = value; + return this.$element; + } + }, { + key: 'animate', + value: function animate(value) { + if (typeof value === 'undefined') { + return this.options.animate; + } + if (this.options.animate === Boolean(value)) { + return this.$element; + } + return this.toggleAnimate(); + } + }, { + key: 'toggleAnimate', + value: function toggleAnimate() { + this.options.animate = !this.options.animate; + this.$wrapper.toggleClass(prvgetClass.call(this, 'animate')); + return this.$element; + } + }, { + key: 'disabled', + value: function disabled(value) { + if (typeof value === 'undefined') { + return this.options.disabled; + } + if (this.options.disabled === Boolean(value)) { + return this.$element; + } + return this.toggleDisabled(); + } + }, { + key: 'toggleDisabled', + value: function toggleDisabled() { + this.options.disabled = !this.options.disabled; + this.$element.prop('disabled', this.options.disabled); + this.$wrapper.toggleClass(prvgetClass.call(this, 'disabled')); + return this.$element; + } + }, { + key: 'readonly', + value: function readonly(value) { + if (typeof value === 'undefined') { + return this.options.readonly; + } + if (this.options.readonly === Boolean(value)) { + return this.$element; + } + return this.toggleReadonly(); + } + }, { + key: 'toggleReadonly', + value: function toggleReadonly() { + this.options.readonly = !this.options.readonly; + this.$element.prop('readonly', this.options.readonly); + this.$wrapper.toggleClass(prvgetClass.call(this, 'readonly')); + return this.$element; + } + }, { + key: 'indeterminate', + value: function indeterminate(value) { + if (typeof value === 'undefined') { + return this.options.indeterminate; + } + if (this.options.indeterminate === Boolean(value)) { + return this.$element; + } + return this.toggleIndeterminate(); + } + }, { + key: 'toggleIndeterminate', + value: function toggleIndeterminate() { + this.options.indeterminate = !this.options.indeterminate; + this.$element.prop('indeterminate', this.options.indeterminate); + this.$wrapper.toggleClass(prvgetClass.call(this, 'indeterminate')); + prvcontainerPosition.call(this); + return this.$element; + } + }, { + key: 'inverse', + value: function inverse(value) { + if (typeof value === 'undefined') { + return this.options.inverse; + } + if (this.options.inverse === Boolean(value)) { + return this.$element; + } + return this.toggleInverse(); + } + }, { + key: 'toggleInverse', + value: function toggleInverse() { + this.$wrapper.toggleClass(prvgetClass.call(this, 'inverse')); + var $on = this.$on.clone(true); + var $off = this.$off.clone(true); + this.$on.replaceWith($off); + this.$off.replaceWith($on); + this.$on = $off; + this.$off = $on; + this.options.inverse = !this.options.inverse; + return this.$element; + } + }, { + key: 'onColor', + value: function onColor(value) { + if (typeof value === 'undefined') { + return this.options.onColor; + } + if (this.options.onColor) { + this.$on.removeClass(prvgetClass.call(this, this.options.onColor)); + } + this.$on.addClass(prvgetClass.call(this, value)); + this.options.onColor = value; + return this.$element; + } + }, { + key: 'offColor', + value: function offColor(value) { + if (typeof value === 'undefined') { + return this.options.offColor; + } + if (this.options.offColor) { + this.$off.removeClass(prvgetClass.call(this, this.options.offColor)); + } + this.$off.addClass(prvgetClass.call(this, value)); + this.options.offColor = value; + return this.$element; + } + }, { + key: 'onText', + value: function onText(value) { + if (typeof value === 'undefined') { + return this.options.onText; + } + this.$on.html(value); + prvwidth.call(this); + prvcontainerPosition.call(this); + this.options.onText = value; + return this.$element; + } + }, { + key: 'offText', + value: function offText(value) { + if (typeof value === 'undefined') { + return this.options.offText; + } + this.$off.html(value); + prvwidth.call(this); + prvcontainerPosition.call(this); + this.options.offText = value; + return this.$element; + } + }, { + key: 'labelText', + value: function labelText(value) { + if (typeof value === 'undefined') { + return this.options.labelText; + } + this.$label.html(value); + prvwidth.call(this); + this.options.labelText = value; + return this.$element; + } + }, { + key: 'handleWidth', + value: function handleWidth(value) { + if (typeof value === 'undefined') { + return this.options.handleWidth; + } + this.options.handleWidth = value; + prvwidth.call(this); + prvcontainerPosition.call(this); + return this.$element; + } + }, { + key: 'labelWidth', + value: function labelWidth(value) { + if (typeof value === 'undefined') { + return this.options.labelWidth; + } + this.options.labelWidth = value; + prvwidth.call(this); + prvcontainerPosition.call(this); + return this.$element; + } + }, { + key: 'baseClass', + value: function baseClass() { + return this.options.baseClass; + } + }, { + key: 'wrapperClass', + value: function wrapperClass(value) { + if (typeof value === 'undefined') { + return this.options.wrapperClass; + } + var wrapperClass = value || $.fn.bootstrapSwitch.defaults.wrapperClass; + this.$wrapper.removeClass(prvgetClasses.call(this, this.options.wrapperClass).join(' ')); + this.$wrapper.addClass(prvgetClasses.call(this, wrapperClass).join(' ')); + this.options.wrapperClass = wrapperClass; + return this.$element; + } + }, { + key: 'radioAllOff', + value: function radioAllOff(value) { + if (typeof value === 'undefined') { + return this.options.radioAllOff; + } + var val = Boolean(value); + if (this.options.radioAllOff === val) { + return this.$element; + } + this.options.radioAllOff = val; + return this.$element; + } + }, { + key: 'onInit', + value: function onInit(value) { + if (typeof value === 'undefined') { + return this.options.onInit; + } + this.options.onInit = value || $.fn.bootstrapSwitch.defaults.onInit; + return this.$element; + } + }, { + key: 'onSwitchChange', + value: function onSwitchChange(value) { + if (typeof value === 'undefined') { + return this.options.onSwitchChange; + } + this.options.onSwitchChange = value || $.fn.bootstrapSwitch.defaults.onSwitchChange; + return this.$element; + } + }, { + key: 'destroy', + value: function destroy() { + var $form = this.$element.closest('form'); + if ($form.length) { + $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch'); + } + this.$container.children().not(this.$element).remove(); + this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch'); + return this.$element; + } + }]); + + return BootstrapSwitch; + }(); + + function bootstrapSwitch(option) { + for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + function reducer(ret, next) { + var $this = $(next); + var existingData = $this.data('bootstrap-switch'); + var data = existingData || new BootstrapSwitch(next, option); + if (!existingData) { + $this.data('bootstrap-switch', data); + } + if (typeof option === 'string') { + return data[option].apply(data, args); + } + return ret; + } + return Array.prototype.reduce.call(this, reducer, this); + } + + $.fn.bootstrapSwitch = bootstrapSwitch; + $.fn.bootstrapSwitch.Constructor = BootstrapSwitch; + $.fn.bootstrapSwitch.defaults = { + state: true, + size: null, + animate: true, + disabled: false, + readonly: false, + indeterminate: false, + inverse: false, + radioAllOff: false, + onColor: 'primary', + offColor: 'default', + onText: 'ON', + offText: 'OFF', + labelText: ' ', + handleWidth: 'auto', + labelWidth: 'auto', + baseClass: 'bootstrap-switch', + wrapperClass: 'wrapper', + onInit: function onInit() {}, + onSwitchChange: function onSwitchChange() {} + }; +}); diff --git a/plugins/bootstrap-switch/js/bootstrap-switch.min.js b/plugins/bootstrap-switch/js/bootstrap-switch.min.js new file mode 100644 index 000000000..4ab8b2d81 --- /dev/null +++ b/plugins/bootstrap-switch/js/bootstrap-switch.min.js @@ -0,0 +1,10 @@ +/** + * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. + * + * @version v3.4.0 + * @homepage https://bttstrp.github.io/bootstrap-switch + * @author Mattia Larentis (http://larentis.eu) + * @license MIT + */ + +(function(a,b){if('function'==typeof define&&define.amd)define(['jquery'],b);else if('undefined'!=typeof exports)b(require('jquery'));else{b(a.jquery),a.bootstrapSwitch={exports:{}}.exports}})(this,function(a){'use strict';function c(x,y){if(!(x instanceof y))throw new TypeError('Cannot call a class as a function')}function d(x,y){var z=x.state,A=x.size,B=x.disabled,C=x.readonly,D=x.indeterminate,E=x.inverse;return[z?'on':'off',A,B?'disabled':void 0,C?'readonly':void 0,D?'indeterminate':void 0,E?'inverse':void 0,y?'id-'+y:void 0].filter(function(F){return null==F})}function e(){return{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')}}function f(){var x=this,y=this.$on.add(this.$off).add(this.$label).css('width',''),z='auto'===this.options.handleWidth?Math.round(Math.max(this.$on.width(),this.$off.width())):this.options.handleWidth;return y.width(z),this.$label.width(function(A,B){return'auto'===x.options.labelWidth?B-(x.privateHandleWidth/2);z=!1,x.state(x.options.inverse?!D:D)}else x.state(!x.options.state);y=!1}},'mouseleave.bootstrapSwitch':function(){x.$label.trigger('mouseup.bootstrapSwitch')}})}function n(){var x=this,y=this.$element.closest('label');y.on('click',function(z){z.preventDefault(),z.stopImmediatePropagation(),z.target===y[0]&&x.toggleState()})}function o(){function x(){return u(this).data('bootstrap-switch')}function y(){return u(this).bootstrapSwitch('state',this.checked)}var z=this.$element.closest('form');z.data('bootstrap-switch')||z.on('reset.bootstrapSwitch',function(){window.setTimeout(function(){z.find('input').filter(x).each(y)},1)}).data('bootstrap-switch',!0)}function p(x){var y=this;return u.isArray(x)?x.map(function(z){return h.call(y,z)}):[h.call(this,x)]}var r=function(x){return x&&x.__esModule?x:{default:x}}(a),s=Object.assign||function(x){for(var z,y=1;y',{class:function(){return d(z.options,z.$element.attr('id')).map(function(C){return h.call(z,C)}).concat([z.options.baseClass],p.call(z,z.options.wrapperClass)).join(' ')}}),this.$container=u('
',{class:h.call(this,'container')}),this.$on=u('',{html:this.options.onText,class:h.call(this,'handle-on')+' '+h.call(this,this.options.onColor)}),this.$off=u('',{html:this.options.offText,class:h.call(this,'handle-off')+' '+h.call(this,this.options.offColor)}),this.$label=u('',{html:this.options.labelText,class:h.call(this,'label')}),this.$element.on('init.bootstrapSwitch',function(){return z.options.onInit(y)}),this.$element.on('switchChange.bootstrapSwitch',function(){for(var B=arguments.length,C=Array(B),D=0;D