{"version":3,"file":"app/form.elements.js","sources":["form.elements.js"],"sourcesContent":["/*----------------------------------------------------------------------------*\\\r\n FORM.ELEMENTS\r\n Basic javascript functions for form elements\r\n\\*----------------------------------------------------------------------------*/\r\n\r\n/**\r\n * Use strict as per:\r\n * http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/\r\n */\r\n'use strict';\r\n\r\n\r\n/**\r\n * Check if oy object exists, otherwise create it\r\n */\r\nvar oy = oy || {};\r\n\r\n\r\n/**\r\n * Jshint global references\r\n * Please define all third party plugins that you use to not break jshinting\r\n */\r\n\r\n\r\n\r\n/* Component\r\n\\*----------------------------------------------------------------------------*/\r\n\r\noy.form.elements = {\r\n init: function(){\r\n if (oy.cutsMustard) {\r\n this.initControls();\r\n this.initSelect();\r\n this.initPlaceValue();\r\n }\r\n },\r\n\r\n initControls: function ($context) {\r\n if (typeof $context === 'undefined') {\r\n $context = document.body;\r\n }\r\n var $controls = $context.querySelectorAll('.js--control');\r\n\r\n var controlChange = function () {\r\n var $control = this;\r\n var $parent = $control.closest('.js--control');\r\n\r\n if ($control.checked) {\r\n $parent.classList.add('is-checked');\r\n } else {\r\n $parent.classList.remove('is-checked');\r\n }\r\n\r\n if ($control.disabled) {\r\n $parent.classList.add('is-disabled');\r\n } else {\r\n $parent.classList.remove('is-disabled');\r\n }\r\n\r\n // Garbage collection\r\n $control = null;\r\n $parent = null;\r\n };\r\n\r\n for (var i = 0; i < $controls.length; ++i) {\r\n var $control = $controls[i];\r\n var $input = $control.querySelector('.js--control__input');\r\n\r\n $input.onchange = controlChange;\r\n $input.onchange();\r\n }\r\n\r\n // Garbage collection\r\n $controls = null;\r\n },\r\n\r\n\r\n initSelect: function ($context) {\r\n if (typeof $context === 'undefined') {\r\n $context = document.body;\r\n }\r\n let $selects = $context.querySelectorAll('.js--select');\r\n\r\n [].forEach.call($selects, ($select) => {\r\n const $selectElement = $select.querySelector('.js--select__element');\r\n if ($selectElement.disabled) {\r\n $select.classList.add('is-disabled');\r\n } else {\r\n $select.classList.remove('is-disabled');\r\n }\r\n });\r\n\r\n // garbage collection\r\n $selects = null;\r\n },\r\n\r\n\r\n /**\r\n * Function: initPlaceValue\r\n * Initialises form input to be placed somewhere else on a page\r\n */\r\n initPlaceValue: function ($context) {\r\n if (typeof $context === 'undefined') {\r\n $context = document.body;\r\n }\r\n var $sources = $context.querySelectorAll('.js--form-place-value__source');\r\n\r\n /**\r\n * Function: sourceKeyup\r\n * Replaces the text of the source element with the value in the input\r\n */\r\n var sourceKeyup = function () {\r\n // Get $source element\r\n var $source = this;\r\n // Get parent using closest\r\n var $parent = $source.closest('.js--form-place-value');\r\n // Find the target\r\n var $target = $parent.querySelector('.js--form-place-value__target');\r\n // get the value from the $source\r\n var val = $source.value;\r\n\r\n // If there is a value, inject otherwise inject initial value\r\n if (val.length > 0) {\r\n $target.innerHTML = encodeURI(val.toLowerCase());\r\n } else {\r\n $target.innerHTML = $target.dataset.initial;\r\n }\r\n\r\n // Garbage collection\r\n $source = null;\r\n $parent = null;\r\n $target = null;\r\n val = null;\r\n };\r\n\r\n /**\r\n * Loop over $sources and bind keyup events\r\n */\r\n for (var i = 0; i < $sources.length; ++i) {\r\n var $source = $sources[i];\r\n $source.onkeyup = sourceKeyup;\r\n }\r\n }\r\n};\r\n\r\n\r\n/**\r\n * Fire ALL the things\r\n */\r\nwindow.addEventListener('load', function () {\r\n oy.form.elements.init();\r\n}, false);\r\n"],"names":["let","const"],"mappings":"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","sourceRoot":"/source/"}