{"version":3,"sources":["../../../../dev/j/v2/components/cmp-forms.js"],"names":["validFormItem","input","$self","$","checkValidity","removeClass","addClass","dropdownActiveItem","item","parent","parents","thisText","text","thisToggle","find","thisValue","data","html","val","avm","require","$formControlInteractive","$dropdownToggleInteractive","$window","window","$formInputsValidation","filter","$dropdownItem","$dropdowns","on","this","hasClass","each","length","$forms","Array","prototype","call","form","addEventListener","event","preventDefault","stopPropagation","classList","add","root","factory","exports","module","document","SimpleScrollbar","w","d","initEl","el","Object","defineProperty","value","configurable","unbindEl","hasOwnProperty","unBind","dragDealer","context","drag","e","delta","pageY","lastPageY","raf","scrollTop","scrollRatio","stop","remove","body","removeEventListener","ss","target","content","firstElementChild","direction","getComputedStyle","bar","drive","mB","moveBar","bind","wrapper","createElement","setAttribute","appendChild","firstChild","insertAdjacentHTML","lastChild","css","style","height","insertBefore","removeChild","initAll","nodes","querySelectorAll","i","unbindAll","requestAnimationFrame","setImmediate","c","setTimeout","totalHeight","scrollHeight","ownHeight","clientHeight","_this","cssText","Math","max","isRtl","clientWidth"],"mappings":"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","file":"cmp-forms.js","sourcesContent":["(function () {\n\t'use strict';\n\tvar $ = avm.require('cash'),\n\t\t$formControlInteractive = $('.interactive-label-wrapper .form-control'),\n\t\t$dropdownToggleInteractive = $('.interactive-label-wrapper .dropdown-toggle'),\n\t\t$window = $(window),\n\t\t$formInputsValidation = $('.needs-validation input,select,textarea').filter('[required]'),\n\t\t$dropdownItem = $(\".dropdown-menu .dropdown-item\"),\n\t\t$dropdowns = $(\".dropdown\");\n\n\n\t// FORM VALIDATION\n\t$formInputsValidation.on('blur', function() {\n\t\tvalidFormItem(this);\n\t});\n\n\t$formInputsValidation.on('keyup', function() {\n\t\tif ($(this).hasClass('is-invalid')) {\n\t\t\tvalidFormItem(this);\n\t\t}\n\t});\n\n\t$window.on('load', function() {\n\t\t$formControlInteractive.each( function() {\n\t\t\tvar $self = $(this);\n\n\t\t\tif ($self.val().length > 0) {\n\t\t\t\t$self.addClass('js-is-filled');\n\t\t\t}\n\t\t});\n\t\t$dropdownToggleInteractive.each( function() {\n\t\t\tvar $self = $(this);\n\n\t\t\tif ($self.html().length > 0) {\n\t\t\t\t$self.addClass('js-is-filled');\n\t\t\t}\n\t\t});\n\t});\n\n\t$formControlInteractive.on('keyup', function() {\n\t\tvar $self = $(this);\n\n\t\tif ($self.val().length > 0) {\n\n\t\t\tif (!$self.hasClass('js-is-filled')) {\n\t\t\t\t$self.addClass('js-is-filled');\n\t\t\t}\n\t\t} else {\n\n\t\t\tif ($self.hasClass('js-is-filled')) {\n\t\t\t\t$self.removeClass('js-is-filled');\n\t\t\t}\n\t\t}\n\t});\n\n\tfunction validFormItem(input) {\n\t\tvar $self = $(input);\n\t\tif (input.checkValidity()) {\n\t\t\t$self.removeClass('is-invalid');\n\t\t\t$self.addClass('is-valid');\n\t\t} else {\n\t\t\t$self.removeClass('is-valid');\n\t\t\t$self.addClass('is-invalid');\n\t\t}\n\t};\n\n\t// Disabling form submissions if there are invalid fields\n\t$window.on('load', function() {\n\t\t// Fetch all the forms we want to apply custom Bootstrap validation styles to\n\t\tvar $forms = $('.needs-validation');\n\t\t// Loop over them and prevent submission\n\t\tvar validation = Array.prototype.filter.call($forms, function(form) {\n\t\t\tform.addEventListener('submit', function(event) {\n\t\t\t\tif (form.checkValidity() === false) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t\tform.classList.add('was-validated');\n\t\t\t}, false);\n\t\t});\n\t}, false);\n\n\n\n\t// DROPDOWNS\n\t// Makes dropdown behave as select\n\tfunction dropdownActiveItem (item) {\n\t\tvar parent = item.parents('.dropdown'),\n\t\t\tthisText = item.text(),\n\t\t\tthisToggle = parent.find('.dropdown-toggle'),\n\t\t\tthisValue = item.data('value');\n\n\t\tparent.find('.dropdown-item').removeClass('active');\n\t\titem.addClass('active');\n\t\tthisToggle.addClass('js-is-filled');\n\n\t\tthisToggle.html(thisText);\n\t\tthisToggle.val(thisValue);\n\t};\n\n\t// Initial check whether there are active items\n\t$window.on('load', function() {\n\t\t$dropdowns.each( function () {\n\t\t\tvar activeItems = $(this).find('.dropdown-item.active');\n\n\t\t\tactiveItems.each( function () {\n\t\t\t\tif ($(this).hasClass('disabled')) {\n\t\t\t\t\t$(this).removeClass('active');\n\t\t\t\t\treturn;\n\t\t\t\t} else if ($(this).hasClass('active')) {\n\t\t\t\t\tdropdownActiveItem($(this));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t});\n\n\t$dropdownItem.on('click', function() {\n\t\tdropdownActiveItem($(this));\n\t});\n\n})();\n\n\n// SCROLLBAR\n// Altered simple-scrollbar library\n// https://github.com/buzinas/simple-scrollbar\n\n(function(root, factory) {\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory(window, document)\n\t} else {\n\t\troot.SimpleScrollbar = factory(window, document)\n\t}\n})(this, function(w, d) {\n\tvar raf = w.requestAnimationFrame || w.setImmediate || function(c) { return setTimeout(c, 0); };\n\n\tfunction initEl(el) {\n\t\tObject.defineProperty(el, 'data-simple-scrollbar', { value: new SimpleScrollbar(el), configurable: true });\n\t}\n\n\tfunction unbindEl(el) {\n\t\tif (!Object.prototype.hasOwnProperty.call(el, 'data-simple-scrollbar')) return;\n\t\tel['data-simple-scrollbar'].unBind();\n\t\t//Remove the elements property\n\t\tdelete el['data-simple-scrollbar'];\n\t}\n\n\t// Mouse drag handler\n\tfunction dragDealer(el, context) {\n\t\tvar lastPageY;\n\n\t\tel.addEventListener('mousedown', function(e) {\n\t\t\tlastPageY = e.pageY;\n\t\t\tel.classList.add('ss-grabbed');\n\t\t\td.body.classList.add('ss-grabbed');\n\n\t\t\td.addEventListener('mousemove', drag);\n\t\t\td.addEventListener('mouseup', stop);\n\n\t\t\treturn false;\n\t\t});\n\n\t\tfunction drag(e) {\n\t\t\tvar delta = e.pageY - lastPageY;\n\t\t\tlastPageY = e.pageY;\n\n\t\t\traf(function() {\n\t\t\t\tcontext.el.scrollTop += delta / context.scrollRatio;\n\t\t\t});\n\t\t}\n\n\t\tfunction stop() {\n\t\t\tel.classList.remove('ss-grabbed');\n\t\t\td.body.classList.remove('ss-grabbed');\n\t\t\td.removeEventListener('mousemove', drag);\n\t\t\td.removeEventListener('mouseup', stop);\n\t\t}\n\t}\n\n\t// Constructor\n\tfunction ss(el) {\n\t\tthis.target = el;\n\t\tthis.content = el.firstElementChild;\n\n\t\tthis.direction = w.getComputedStyle(this.target).direction;\n\n\t\tthis.bar = '
';\n\t\tthis.drive = '
';\n\t\t//Create a reference to the function binding to remove the event listeners\n\t\tthis.mB = this.moveBar.bind(this);\n\n\t\tthis.wrapper = d.createElement('div');\n\t\tthis.wrapper.setAttribute('class', 'ss-wrapper');\n\n\t\tthis.el = d.createElement('div');\n\t\tthis.el.setAttribute('class', 'ss-content');\n\n\t\tif (this.direction === 'rtl') {\n\t\t\tthis.el.classList.add('rtl');\n\t\t}\n\n\t\tthis.wrapper.appendChild(this.el);\n\n\t\twhile (this.target.firstChild) {\n\t\t\tthis.el.appendChild(this.target.firstChild);\n\t\t}\n\t\tthis.target.appendChild(this.wrapper);\n\n\t\tthis.target.insertAdjacentHTML('beforeend', this.bar);\n\t\tthis.bar = this.target.lastChild;\n\n\t\tthis.target.insertAdjacentHTML('beforeend', this.drive);\n\t\tthis.drive = this.target.lastChild;\n\n\t\tdragDealer(this.bar, this);\n\t\tthis.moveBar();\n\n\t\tw.addEventListener('resize', this.mB);\n\t\tthis.el.addEventListener('scroll', this.mB);\n\t\tthis.el.addEventListener('mouseenter', this.mB);\n\n\t\tthis.target.classList.add('ss-container');\n\n\t\tvar css = w.getComputedStyle(el);\n\t\tif (css['height'] === '0px' && css['max-height'] !== '0px') {\n\t\t\tel.style.height = css['max-height'];\n\t\t}\n\n\t\tthis.unBind = function() {\n\t\t\t//Remove event listeners\n\t\t\tw.removeEventListener('resize', this.mB);\n\t\t\tthis.el.removeEventListener('scroll', this.mB);\n\t\t\tthis.el.removeEventListener('mouseenter', this.mB);\n\n\t\t\tthis.target.classList.remove('ss-container');\n\n\t\t\t//Unwrap the initial content and remove remaining wrappers\n\t\t\tthis.target.insertBefore(this.content, this.wrapper);\n\t\t\tthis.target.removeChild(this.wrapper);\n\n\t\t\t//Remove the bar including its drag-dealer event listener\n\t\t\tthis.target.removeChild(this.bar);\n\t\t\tthis.bar = null; //make way for the garbage collector\n\t\t}\n\t}\n\n\tss.prototype = {\n\t\tmoveBar: function(e) {\n\t\t\tvar totalHeight = this.el.scrollHeight,\n\t\t\t\townHeight = this.el.clientHeight,\n\t\t\t\t_this = this;\n\n\t\t\tthis.scrollRatio = ownHeight / totalHeight;\n\t\t\tthis.bar.style.cssText = 'height: calc(' + Math.max(_this.scrollRatio * 100, 10) + '% - 2rem); top: calc(' + (_this.el.scrollTop / totalHeight ) * 100 + '% + 1rem)';\n\n\t\t\tvar isRtl = _this.direction === 'rtl';\n\t\t\tvar right = isRtl ?\n\t\t\t\t(_this.target.clientWidth - _this.bar.clientWidth + 18) :\n\t\t\t\t(_this.target.clientWidth - _this.bar.clientWidth) * -1;\n\n\t\t\traf(function() {\n\t\t\t\t// Hide scrollbar if no scrolling is possible\n\t\t\t\tif(_this.scrollRatio >= 1) {\n\t\t\t\t\t_this.bar.classList.add('ss-hidden')\n\t\t\t\t\t_this.drive.classList.add('ss-hidden')\n\t\t\t\t} else {\n\t\t\t\t\t_this.bar.classList.remove('ss-hidden')\n\t\t\t\t\t_this.drive.classList.remove('ss-hidden')\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction initAll() {\n\t\tvar nodes = d.querySelectorAll('*[ss-container]');\n\n\t\tfor (var i = 0; i < nodes.length; i++) {\n\t\t\tinitEl(nodes[i]);\n\t\t}\n\t}\n\n\tfunction unbindAll() {\n\t\tvar nodes = d.querySelectorAll('.ss-container');\n\n\t\tfor (var i = 0; i < nodes.length; i++) {\n\t\t\tunbindEl(nodes[i]);\n\t\t}\n\t}\n\n\td.addEventListener('DOMContentLoaded', initAll);\n\tss.initEl = initEl;\n\tss.initAll = initAll;\n\tss.unbindEl = unbindEl;\n\tss.unbindAll = unbindAll;\n\n\tvar SimpleScrollbar = ss;\n\treturn SimpleScrollbar;\n});\n"]}