{"version":3,"sources":["amain-dcc.main.js"],"names":["ControlBinders","componentsToBind","register","selector","binder","push","bind","run","scope","arguments","length","undefined","document","forEach","wrapper","Array","isArray","item","querySelectorAll","elm","runWrapper","debounce","func","_this","this","timer","timeout","_len","args","_key","clearTimeout","setTimeout","apply","addEventListener","serialize","form","serialized","i","elements","field","name","disabled","type","n","options","selected","encodeURIComponent","value","checked","join","BaseClass","[object Object]","element","eventListeners","eventType","callback","data","filter","x","toggleClass","el","className","classList","toggle","classes","split","existingIndex","indexOf","splice","viewport","window","matchMedia","matches","e","targetElement","target","dataset","tcTarget","setClass","tcClass","t","tcHtmlOverflow","querySelector"],"mappings":"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","sourcesContent":["//global bindings\r\nconst ControlBinders = (() => {\r\n const componentsToBind = [];\r\n\r\n const runWrapper = (scope, wrapper) => {\r\n if (Array.isArray(scope)) {\r\n scope.forEach(item => {\r\n item.querySelectorAll(wrapper.selector).forEach(elm => wrapper.bind(elm));\r\n });\r\n } else {\r\n scope.querySelectorAll(wrapper.selector).forEach(elm => wrapper.bind(elm));\r\n }\r\n }\r\n\r\n const register = (selector, binder) => {\r\n componentsToBind.push({selector: selector, bind: binder});\r\n }\r\n\r\n const run = (scope = document) => {\r\n componentsToBind.forEach(wrapper => runWrapper(scope, wrapper));\r\n }\r\n\r\n return {\r\n register,\r\n run\r\n };\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n ControlBinders.run();\r\n});\r\n\r\n\r\n// as long as it continues to be invoked, it will not be triggered\r\nfunction debounce(func, timeout = 300) {\r\n let timer;\r\n return (...args) => {\r\n clearTimeout(timer);\r\n timer = setTimeout(() => {\r\n func.apply(this, args);\r\n }, timeout);\r\n };\r\n}\r\n\r\n// Serialize all form data into a query string\r\n// (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com\r\n// @param {Node} form The form to serialize\r\n// @return {String} The serialized form data\r\nvar serialize = function (form) {\r\n\r\n // Setup our serialized data\r\n var serialized = [];\r\n\r\n // Loop through each field in the form\r\n for (var i = 0; i < form.elements.length; i++) {\r\n\r\n var field = form.elements[i];\r\n\r\n // Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields\r\n if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue;\r\n\r\n // If a multi-select, get all selections\r\n if (field.type === 'select-multiple') {\r\n for (var n = 0; n < field.options.length; n++) {\r\n if (!field.options[n].selected) continue;\r\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.options[n].value));\r\n }\r\n }\r\n\r\n // Convert field data to a query string\r\n else if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) {\r\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.value));\r\n }\r\n }\r\n\r\n return serialized.join('&');\r\n\r\n};\r\n\r\n\r\n//for adding custom events\r\nclass BaseClass {\r\n constructor(element) {\r\n this.element = element;\r\n this.element.wrapper = this;\r\n this.eventListeners = [];\r\n }\r\n\r\n addEventListener(eventType, callback) {\r\n this.eventListeners.push({\r\n eventType, callback\r\n });\r\n }\r\n\r\n raiseEvent(eventType, data = undefined) {\r\n this.eventListeners\r\n .filter(x => x.eventType === eventType)\r\n .forEach(x => x.callback(data));\r\n }\r\n}\r\n\r\n//toggle on targeted element,\r\ndocument.querySelectorAll(\"[data-tc-target]\").forEach(i => {\r\n\r\n i.addEventListener('click', e => {\r\n\r\n let targetElement = e.target.dataset.tcTarget;\r\n\r\n let setClass = e.target.dataset.tcClass;\r\n if (setClass === undefined) {\r\n setClass = 'open';\r\n }\r\n\r\n document.querySelectorAll(targetElement).forEach(t => {\r\n toggleClass(t, setClass);\r\n });\r\n\r\n if (e.target.dataset.tcHtmlOverflow) {\r\n toggleClass(document.querySelector('html'), e.target.dataset.tcHtmlOverflow);\r\n }\r\n\r\n })\r\n});\r\n\r\n//toggle class\r\nfunction toggleClass(el, className) {\r\n if (el.classList) {\r\n el.classList.toggle(className);\r\n } else {\r\n var classes = el.className.split(' ');\r\n var existingIndex = classes.indexOf(className);\r\n\r\n if (existingIndex >= 0)\r\n classes.splice(existingIndex, 1);\r\n else\r\n classes.push(className);\r\n\r\n el.className = classes.join(' ');\r\n }\r\n}\r\n\r\nfunction viewport() {\r\n let viewport = 0;\r\n\r\n if (window.matchMedia('(min-width: 1600px)').matches) {\r\n viewport = 4;\r\n } else if (window.matchMedia('(min-width: 1260px)').matches) {\r\n viewport = 3;\r\n } else if (window.matchMedia('(min-width: 1024px)').matches) {\r\n viewport = 2;\r\n } else if (window.matchMedia('(min-width: 768px)').matches) {\r\n viewport = 1;\r\n }\r\n return viewport;\r\n}"],"file":"amain-dcc.main-min.js"}