From 7a8473e12c26dadab11a3575ddcfca467c3203ae Mon Sep 17 00:00:00 2001 From: Matthew Banning Date: Sat, 6 Nov 2021 10:25:38 +0000 Subject: [PATCH 1/2] Fix unchecked disabled switch being in 'on' position upon initialization --- dist/bootstrap-switch-button.min.js | 4 +-- dist/bootstrap-switch-button.min.js.map | 2 +- package.json | 4 +-- src/bootstrap-switch-button.js | 42 +++++++++++++++---------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/dist/bootstrap-switch-button.min.js b/dist/bootstrap-switch-button.min.js index 0e77c07..65dcae2 100644 --- a/dist/bootstrap-switch-button.min.js +++ b/dist/bootstrap-switch-button.min.js @@ -1,3 +1,3 @@ -/*! bootstrap-switch-button 2020-02-16 */ -"use strict";!function(){class t{constructor(t,e){const s="On",i="primary",n="Off",o="light",h="",l="",d=null,a=null;e=e||{},this.element=t,this.options={onlabel:t.getAttribute("data-onlabel")||e.onlabel||s,onstyle:t.getAttribute("data-onstyle")||e.onstyle||i,offlabel:t.getAttribute("data-offlabel")||e.offlabel||n,offstyle:t.getAttribute("data-offstyle")||e.offstyle||o,size:t.getAttribute("data-size")||e.size||h,style:t.getAttribute("data-style")||e.style||l,width:t.getAttribute("data-width")||e.width||d,height:t.getAttribute("data-height")||e.height||a},this.render()}render(){function t(t){const e=window.getComputedStyle(t),s=t.offsetHeight,i=parseFloat(e.borderTopWidth);return s-parseFloat(e.borderBottomWidth)-i-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom)}var e=document.createElement("label");e.setAttribute("class","btn btn-"+this.options.onstyle+" btn-"+this.options.size),e.setAttribute("for",this.element.id),e.innerHTML=this.options.onlabel;var s=document.createElement("label");s.setAttribute("class","btn btn-"+this.options.offstyle+" btn-"+this.options.size),e.setAttribute("for",this.element.id),s.innerHTML=this.options.offlabel;var i=document.createElement("span");i.setAttribute("class","switch-handle btn btn-light btn-"+this.options.size);var n=document.createElement("div");n.setAttribute("class","switch-group"),n.appendChild(e),n.appendChild(s),n.appendChild(i);var o=document.createElement("div");o.setAttribute("class","switch btn"),o.classList.add(this.element.checked?"btn-"+this.options.onstyle:"btn-"+this.options.offstyle),this.options.size&&o.classList.add("btn-"+this.options.size),this.options.style&&o.classList.add(this.options.style),this.element.parentElement.insertBefore(o,this.element),o.appendChild(this.element),o.appendChild(n),o.style.width=(this.options.width||Math.max(e.getBoundingClientRect().width,s.getBoundingClientRect().width+i.getBoundingClientRect().width/2))+"px",o.style.height=(this.options.height||Math.max(e.getBoundingClientRect().height,s.getBoundingClientRect().height))+"px",e.classList.add("switch-on"),s.classList.add("switch-off"),this.options.height&&(e.style.lineHeight=t(e)+"px",s.style.lineHeight=t(s)+"px"),o.addEventListener("touchstart",this.toggle.bind(this)),o.addEventListener("click",this.toggle.bind(this)),this.switch=o,this.element.switchBtn=this,this.update(!0)}toggle(t){this.element.checked?this.off():this.on(),void 0!==t&&t&&t.preventDefault()}on(t){if(this.element.disabled)return!1;this.switch.classList.remove("btn-"+this.options.offstyle),this.switch.classList.add("btn-"+this.options.onstyle),this.switch.classList.remove("off"),this.element.checked=!0,t||this.trigger()}off(t){if(this.element.disabled)return!1;this.switch.classList.remove("btn-"+this.options.onstyle),this.switch.classList.add("btn-"+this.options.offstyle),this.switch.classList.add("off"),this.element.checked=!1,t||this.trigger()}enable(){this.switch.classList.remove("disabled"),this.switch.removeAttribute("disabled"),this.element.removeAttribute("disabled")}disable(){this.switch.classList.add("disabled"),this.switch.setAttribute("disabled","disabled"),this.element.setAttribute("disabled","disabled")}update(t){this.element.disabled?this.disable():this.enable(),this.element.checked?this.on(t):this.off(t)}trigger(t){t||this.element.dispatchEvent(new Event("change",{bubbles:!0}))}destroy(){this.switch.parentNode.insertBefore(this.element,this.switch),this.switch.parentNode.removeChild(this.switch),delete this.element.switchBtn,delete this.switch}}Element.prototype.switchButton=function(e,s){var i=this.switchBtn||new t(this,e);e&&"string"==typeof e&&("toggle"==e.toLowerCase()?i.toggle():"on"==e.toLowerCase()?i.on(s):"off"==e.toLowerCase()?i.off(s):"enable"==e.toLowerCase()?i.enable():"disable"==e.toLowerCase()?i.disable():"destroy"==e.toLowerCase()&&i.destroy())},"undefined"!=typeof window&&(window.onload=function(){document.querySelectorAll('input[type=checkbox][data-toggle="switchbutton"]').forEach(function(t){t.switchButton()})}),"undefined"!=typeof module&&module.exports&&(module.exports=t)}(); +/*! bootstrap-switch-button 2021-11-06 */ +"use strict";!function(){class t{constructor(t,e){const s="On",i="primary",n="Off",o="light",h="",l="",d=null,a=null;e=e||{},this.element=t,this.options={onlabel:t.getAttribute("data-onlabel")||e.onlabel||s,onstyle:t.getAttribute("data-onstyle")||e.onstyle||i,offlabel:t.getAttribute("data-offlabel")||e.offlabel||n,offstyle:t.getAttribute("data-offstyle")||e.offstyle||o,size:t.getAttribute("data-size")||e.size||h,style:t.getAttribute("data-style")||e.style||l,width:t.getAttribute("data-width")||e.width||d,height:t.getAttribute("data-height")||e.height||a},this.render()}render(){function t(t){const e=window.getComputedStyle(t),s=t.offsetHeight,i=parseFloat(e.borderTopWidth);return s-parseFloat(e.borderBottomWidth)-i-parseFloat(e.paddingTop)-parseFloat(e.paddingBottom)}var e=document.createElement("label");e.setAttribute("class","btn btn-"+this.options.onstyle+" btn-"+this.options.size),e.setAttribute("for",this.element.id),e.innerHTML=this.options.onlabel;var s=document.createElement("label");s.setAttribute("class","btn btn-"+this.options.offstyle+" btn-"+this.options.size),e.setAttribute("for",this.element.id),s.innerHTML=this.options.offlabel;var i=document.createElement("span");i.setAttribute("class","switch-handle btn btn-light btn-"+this.options.size);var n=document.createElement("div");n.setAttribute("class","switch-group"),n.appendChild(e),n.appendChild(s),n.appendChild(i);var o=document.createElement("div");o.setAttribute("class","switch btn"),this.options.size&&o.classList.add("btn-"+this.options.size),this.options.style&&o.classList.add(this.options.style),this.element.parentElement.insertBefore(o,this.element),o.appendChild(this.element),o.appendChild(n),o.style.width=(this.options.width||Math.max(e.getBoundingClientRect().width,s.getBoundingClientRect().width+i.getBoundingClientRect().width/2))+"px",o.style.height=(this.options.height||Math.max(e.getBoundingClientRect().height,s.getBoundingClientRect().height))+"px",e.classList.add("switch-on"),s.classList.add("switch-off"),this.options.height&&(e.style.lineHeight=t(e)+"px",s.style.lineHeight=t(s)+"px"),o.addEventListener("touchstart",this.toggle.bind(this)),o.addEventListener("click",this.toggle.bind(this)),this.switch=o,this.element.switchBtn=this,this.update(!0)}toggle(t){this.element.checked?this.off():this.on(),void 0!==t&&t&&t.preventDefault()}on(t){if(this.element.disabled)return!1;this.element.checked=!0,this.update(t)}off(t){if(this.element.disabled)return!1;this.element.checked=!1,this.update(t)}enable(){this.element.removeAttribute("disabled"),this.update()}disable(){this.switch.classList.add("disabled"),this.update()}update(t){this.element.disabled?(this.switch.classList.add("disabled"),this.switch.setAttribute("disabled","disabled"),this.element.setAttribute("disabled","disabled")):(this.switch.classList.remove("disabled"),this.switch.removeAttribute("disabled"),this.element.removeAttribute("disabled")),this.element.checked?(this.switch.classList.remove("btn-"+this.options.offstyle),this.switch.classList.add("btn-"+this.options.onstyle),this.switch.classList.remove("off")):(this.switch.classList.remove("btn-"+this.options.onstyle),this.switch.classList.add("btn-"+this.options.offstyle),this.switch.classList.add("off")),this.trigger(t)}trigger(t){t||this.element.dispatchEvent(new Event("change",{bubbles:!0}))}destroy(){this.switch.parentNode.insertBefore(this.element,this.switch),this.switch.parentNode.removeChild(this.switch),delete this.element.switchBtn,delete this.switch}}Element.prototype.switchButton=function(e,s){var i=this.switchBtn||new t(this,e);e&&"string"==typeof e&&("toggle"==e.toLowerCase()?i.toggle():"on"==e.toLowerCase()?i.on(s):"off"==e.toLowerCase()?i.off(s):"enable"==e.toLowerCase()?i.enable():"disable"==e.toLowerCase()?i.disable():"destroy"==e.toLowerCase()&&i.destroy())},"undefined"!=typeof window&&(window.onload=function(){document.querySelectorAll('input[type=checkbox][data-toggle="switchbutton"]').forEach(function(t){t.switchButton()})}),"undefined"!=typeof module&&module.exports&&(module.exports=t)}(); //# sourceMappingURL=bootstrap-switch-button.min.js.map \ No newline at end of file diff --git a/dist/bootstrap-switch-button.min.js.map b/dist/bootstrap-switch-button.min.js.map index d365355..0650a49 100644 --- a/dist/bootstrap-switch-button.min.js.map +++ b/dist/bootstrap-switch-button.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/bootstrap-switch-button.js"],"names":["SwitchBtn","[object Object]","element","options","DEFAULTS","this","onlabel","getAttribute","onstyle","offlabel","offstyle","size","style","width","height","render","calcH","el","styles","window","getComputedStyle","offsetHeight","borderTopWidth","parseFloat","borderBottomWidth","paddingTop","paddingBottom","switchOn","document","createElement","setAttribute","id","innerHTML","switchOff","switchHandle","switchGroup","appendChild","switchCont","classList","add","checked","parentElement","insertBefore","Math","max","getBoundingClientRect","lineHeight","addEventListener","toggle","bind","switch","switchBtn","update","event","off","on","preventDefault","silent","disabled","remove","trigger","removeAttribute","disable","enable","dispatchEvent","Event","bubbles","parentNode","removeChild","Element","prototype","switchButton","_switchBtn","toLowerCase","destroy","onload","querySelectorAll","forEach","ele","module","exports"],"mappings":"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","file":"bootstrap-switch-button.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/bootstrap-switch-button.js"],"names":["SwitchBtn","[object Object]","element","options","DEFAULTS","this","onlabel","getAttribute","onstyle","offlabel","offstyle","size","style","width","height","render","calcH","el","styles","window","getComputedStyle","offsetHeight","borderTopWidth","parseFloat","borderBottomWidth","paddingTop","paddingBottom","switchOn","document","createElement","setAttribute","id","innerHTML","switchOff","switchHandle","switchGroup","appendChild","switchCont","classList","add","parentElement","insertBefore","Math","max","getBoundingClientRect","lineHeight","addEventListener","toggle","bind","switch","switchBtn","update","event","checked","off","on","preventDefault","silent","disabled","removeAttribute","remove","trigger","dispatchEvent","Event","bubbles","parentNode","removeChild","Element","prototype","switchButton","_switchBtn","toLowerCase","enable","disable","destroy","onload","querySelectorAll","forEach","ele","module","exports"],"mappings":"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","file":"bootstrap-switch-button.min.js"} \ No newline at end of file diff --git a/package.json b/package.json index 02dbbab..11fd127 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/gitbrent/bootstrap-switch-button.git" + "url": "https://github.com/matthew-banning/bootstrap-switch-button.git" }, "keywords": [ "bootstrap", @@ -46,6 +46,6 @@ "bootstrap-toggle" ], "bugs": { - "url": "https://github.com/gitbrent/bootstrap-switch-button/issues" + "url": "https://github.com/matthew-banning/bootstrap-switch-button/issues" } } diff --git a/src/bootstrap-switch-button.js b/src/bootstrap-switch-button.js index f33ae9d..e95c12b 100755 --- a/src/bootstrap-switch-button.js +++ b/src/bootstrap-switch-button.js @@ -102,7 +102,6 @@ // 5: Container var switchCont = document.createElement('div'); switchCont.setAttribute('class', 'switch btn'); - switchCont.classList.add(this.element.checked ? 'btn-' + this.options.onstyle : 'btn-' + this.options.offstyle); if (this.options.size) switchCont.classList.add('btn-' + this.options.size); if (this.options.style) switchCont.classList.add(this.options.style); @@ -154,40 +153,49 @@ } on(silent) { if (this.element.disabled) return false; - this.switch.classList.remove('btn-' + this.options.offstyle); - this.switch.classList.add('btn-' + this.options.onstyle); - this.switch.classList.remove('off'); this.element.checked = true; - if (!silent) this.trigger(); + this.update(silent) } off(silent) { if (this.element.disabled) return false; - this.switch.classList.remove('btn-' + this.options.onstyle); - this.switch.classList.add('btn-' + this.options.offstyle); - this.switch.classList.add('off'); this.element.checked = false; - if (!silent) this.trigger(); + this.update(silent) } /** * Keep Switch-Button and corresponding checkbox in-sync */ enable() { - this.switch.classList.remove('disabled'); - this.switch.removeAttribute('disabled'); this.element.removeAttribute('disabled'); + this.update(); } disable() { this.switch.classList.add('disabled'); - this.switch.setAttribute('disabled', 'disabled'); - this.element.setAttribute('disabled', 'disabled'); + this.update(); } update(silent) { - if (this.element.disabled) this.disable(); - else this.enable(); - if (this.element.checked) this.on(silent); - else this.off(silent); + if (this.element.disabled) { + this.switch.classList.add('disabled'); + this.switch.setAttribute('disabled', 'disabled'); + this.element.setAttribute('disabled', 'disabled'); + } else { + this.switch.classList.remove('disabled'); + this.switch.removeAttribute('disabled'); + this.element.removeAttribute('disabled'); + } + + if (this.element.checked) { + this.switch.classList.remove('btn-' + this.options.offstyle); + this.switch.classList.add('btn-' + this.options.onstyle); + this.switch.classList.remove('off'); + } else { + this.switch.classList.remove('btn-' + this.options.onstyle); + this.switch.classList.add('btn-' + this.options.offstyle); + this.switch.classList.add('off'); + } + + this.trigger(silent); } trigger(silent) { if (!silent) this.element.dispatchEvent(new Event('change', { bubbles: true })); From 8060f4b724607c65c6fe696f4048fb0a6fcf5965 Mon Sep 17 00:00:00 2001 From: LAAJIMI Fahmi Date: Tue, 18 Oct 2022 15:34:21 +0200 Subject: [PATCH 2/2] Revert package.json --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 11fd127..02dbbab 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/matthew-banning/bootstrap-switch-button.git" + "url": "https://github.com/gitbrent/bootstrap-switch-button.git" }, "keywords": [ "bootstrap", @@ -46,6 +46,6 @@ "bootstrap-toggle" ], "bugs": { - "url": "https://github.com/matthew-banning/bootstrap-switch-button/issues" + "url": "https://github.com/gitbrent/bootstrap-switch-button/issues" } }