{"version":3,"sources":["webpack:///./Scripts/buttons.js"],"names":["element","Button","toggled","keyHandler","e","key","which","keyCode","target","document","activeElement","toggle","preventScroll","preventDefault","label","tagName","parentNode","eventTarget","labels","slice","call","getElementsByClassName","input","getElementsByTagName","type","checked","classList","add","getAttribute","setAttribute","remove","removeAttribute","customEvent","i","ll","length","otherLabel","otherInput","contains","setTimeout","addEventListener","querySelector","labelsToActivate","lbll","elements","querySelectorAll"],"mappings":"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","file":"1.js","sourcesContent":["import { customEvent } from './utils';\r\n\r\nexport default element => {\r\n\tvar Button = function (element) {\r\n\t\tvar toggled = false;\r\n\r\n\t\tvar keyHandler = function (e) {\r\n\t\t\tvar key = e.which || e.keyCode;\r\n\t\t\tkey === 32 && e.target === document.activeElement && toggle(e);\r\n\t\t};\r\n\r\n\t\tvar preventScroll = function (e) {\r\n\t\t\tvar key = e.which || e.keyCode;\r\n\t\t\tkey === 32 && e.preventDefault();\r\n\t\t};\r\n\r\n\t\tvar toggle = function (e) {\r\n\t\t\tvar label = e.target.tagName === 'LABEL' ? e.target : e.target.parentNode.tagName === 'LABEL' ? e.target.parentNode : null; // the .btn label\r\n\t\t\tif (!label) return; // react if a label or its immediate child is clicked\r\n\r\n\t\t\tvar eventTarget = e.target; // the button itself, the target of the handler function\r\n\t\t\tvar labels = [].slice.call(eventTarget.parentNode.parentNode.getElementsByClassName('btn'));\r\n\r\n\t\t\tvar input = label.getElementsByTagName('INPUT')[0];\r\n\t\t\tif (!input) return; //return if no input found\r\n\r\n\t\t\t// manage the dom manipulation\r\n\t\t\tif (input.type === 'checkbox') { //checkboxes\r\n\t\t\t\tif (!input.checked) {\r\n\t\t\t\t\tlabel.classList.add('active');\r\n\t\t\t\t\tinput.getAttribute('checked');\r\n\t\t\t\t\tinput.setAttribute('checked', 'checked');\r\n\t\t\t\t\tinput.checked = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlabel.classList.remove('active');\r\n\t\t\t\t\tinput.getAttribute('checked');\r\n\t\t\t\t\tinput.removeAttribute('checked');\r\n\t\t\t\t\tinput.checked = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!toggled) { // prevent triggering the event twice\r\n\t\t\t\t\ttoggled = true;\r\n\r\n\t\t\t\t\tcustomEvent.call(input, 'btn', 'show'); //trigger the change for the input\r\n\t\t\t\t\tcustomEvent.call(element, 'btn', 'show'); //trigger the change for the btn-group\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (input.type === 'radio' && !toggled) { // radio buttons\r\n\t\t\t\tif (!input.checked) { // don't trigger if already active\r\n\t\t\t\t\tlabel.classList.add('active');\r\n\t\t\t\t\tinput.setAttribute('checked', 'checked');\r\n\t\t\t\t\tinput.checked = true;\r\n\t\t\t\t\tcustomEvent.call(input, 'btn', 'change'); // trigger the change for the input\r\n\t\t\t\t\tcustomEvent.call(element, 'btn', 'change'); // trigger the change for the btn-group\r\n\r\n\t\t\t\t\ttoggled = true;\r\n\t\t\t\t\tfor (var i = 0, ll = labels.length; i < ll; i++) {\r\n\t\t\t\t\t\tvar otherLabel = labels[i];\r\n\t\t\t\t\t\tvar otherInput = otherLabel.getElementsByTagName('INPUT')[0];\r\n\t\t\t\t\t\tif (otherLabel !== label && otherLabel.classList.contains('active')) {\r\n\t\t\t\t\t\t\totherLabel.classList.remove('active');\r\n\t\t\t\t\t\t\totherInput.removeAttribute('checked');\r\n\t\t\t\t\t\t\totherInput.checked = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsetTimeout(function () { toggled = false; }, 50);\r\n\t\t}\r\n\r\n\t\tif (!('Button' in element)) { // prevent adding event handlers twice\r\n\t\t\telement.addEventListener('click', toggle, false);\r\n\t\t\telement.querySelector('[tabindex]') && element.addEventListener('keyup', keyHandler, false);\r\n\t\t\telement.addEventListener('keydown', preventScroll, false);\r\n\t\t}\r\n\r\n\t\t// activate items on load\r\n\t\tvar labelsToActivate = [].slice.call(element.getElementsByClassName('btn'));\r\n\t\tvar lbll = labelsToActivate.length;\r\n\r\n\t\tfor (var i = 0; i < lbll; i++) {\r\n\t\t\t!labelsToActivate[i].classList.contains('active') && labelsToActivate[i].querySelector('input:checked') && labelsToActivate[i].classList.add('active');\r\n\t\t}\r\n\t\telement.Button = this;\r\n\t}\r\n\r\n\tvar elements = element.querySelectorAll('[data-toggle=\"buttons\"]');\r\n\tfor (var i = 0; i < elements.length; i++) {\r\n\t\tnew Button(elements[i]);\r\n\t};\r\n};"],"sourceRoot":""}