{"version":3,"sources":["https:\/\/avenue.ca\/classroom\/theme\/boost\/amd\/src\/bootstrap\/button.js"],"names":["DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_INPUT","SELECTOR_BUTTON","EVENT_CLICK_DATA_API","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","element","_element","triggerChangeEvent","addAriaPressed","rootElement","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","trigger","focus","hasAttribute","setAttribute","toggleClass","removeData","config","each","data","document","on","event","button","target","initialButton","hasClass","preventDefault","inputBtn","tagName","_jQueryInterface","call","test","window","buttons","slice","querySelectorAll","i","len","length","add","remove","getAttribute","Constructor","noConflict"],"mappings":"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","sourcesContent":["\/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.0): button.js\n * Licensed under MIT (https:\/\/github.com\/twbs\/bootstrap\/blob\/master\/LICENSE)\n * --------------------------------------------------------------------------\n *\/\n\nimport $ from 'jquery'\n\n\/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n *\/\n\nconst NAME = 'button'\nconst VERSION = '4.5.0'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n\/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n *\/\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n \/\/ Getters\n\n static get VERSION() {\n return VERSION\n }\n\n \/\/ Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n \/\/ if it's not a radio button or checkbox don't add a pointless\/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n \/\/ Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n\/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n *\/\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() \/\/ work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() \/\/ work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'LABEL' && inputBtn && inputBtn.type === 'checkbox') {\n event.preventDefault() \/\/ work around event sent to label and input\n }\n Button._jQueryInterface.call($(button), 'toggle')\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, \/^focus(in)?$\/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n \/\/ ensure correct active class is set to match the controls' actual values\/states\n\n \/\/ find all checkboxes\/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n \/\/ find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n\/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n *\/\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n"],"file":"button.min.js"}