"use strict"; var _this = void 0; (function ($) { var inputSelector = "".concat(['text', 'password', 'email', 'url', 'tel', 'number', 'search', 'search-md'].map(function (selector) { return "input[type=".concat(selector, "]"); }).join(', '), ", textarea"); var textAreaSelector = '.materialize-textarea'; var updateTextFields = function updateTextFields($input) { var $labelAndIcon = $input.siblings('label, i'); var hasValue = $input.val().length; var hasPlaceholder = $input.attr('placeholder'); var addOrRemove = "".concat(hasValue || hasPlaceholder ? 'add' : 'remove', "Class"); $labelAndIcon[addOrRemove]('active'); }; var validateField = function validateField($input) { if ($input.hasClass('validate')) { var value = $input.val(); var noValue = !value.length; var isValid = !$input[0].validity.badInput; if (noValue && isValid) { $input.removeClass('valid').removeClass('invalid'); } else { var valid = $input.is(':valid'); var length = Number($input.attr('length')) || 0; if (valid && (!length || length > value.length)) { $input.removeClass('invalid').addClass('valid'); } else { $input.removeClass('valid').addClass('invalid'); } } } }; var textAreaAutoResize = function textAreaAutoResize() { var $textarea = $(_this); if ($textarea.val().length) { var $hiddenDiv = $('.hiddendiv'); var fontFamily = $textarea.css('font-family'); var fontSize = $textarea.css('font-size'); if (fontSize) { $hiddenDiv.css('font-size', fontSize); } if (fontFamily) { $hiddenDiv.css('font-family', fontFamily); } if ($textarea.attr('wrap') === 'off') { $hiddenDiv.css('overflow-wrap', 'normal').css('white-space', 'pre'); } $hiddenDiv.text("".concat($textarea.val(), "\n")); var content = $hiddenDiv.html().replace(/\n/g, '
'); $hiddenDiv.html(content); // When textarea is hidden, width goes crazy. // Approximate with half of window size $hiddenDiv.css('width', $textarea.is(':visible') ? $textarea.width() : $(window).width() / 2); $textarea.css('height', $hiddenDiv.height()); } }; $(inputSelector).each(function (index, input) { var $this = $(input); var $labelAndIcon = $this.siblings('label, i'); updateTextFields($this); var isValid = input.validity.badInput; if (isValid) { $labelAndIcon.addClass('active'); } }); $(document).on('focus', inputSelector, function (e) { $(e.target).siblings('label, i').addClass('active'); }); $(document).on('blur', inputSelector, function (e) { var $this = $(e.target); var noValue = !$this.val(); var invalid = !e.target.validity.badInput; var noPlaceholder = $this.attr('placeholder') === undefined; if (noValue && invalid && noPlaceholder) { $this.siblings('label, i').removeClass('active'); } validateField($this); }); $(document).on('change', inputSelector, function (e) { var $this = $(e.target); updateTextFields($this); validateField($this); }); $('input[autofocus]').siblings('label, i').addClass('active'); $(document).on('reset', function (e) { var $formReset = $(e.target); if ($formReset.is('form')) { var $formInputs = $formReset.find(inputSelector); $formInputs.removeClass('valid').removeClass('invalid').each(function (index, input) { var $this = $(input); var noDefaultValue = !$this.val(); var noPlaceholder = !$this.attr('placeholder'); if (noDefaultValue && noPlaceholder) { $this.siblings('label, i').removeClass('active'); } }); $formReset.find('select.initialized').each(function (index, select) { var $select = $(select); var $visibleInput = $select.siblings('input.select-dropdown'); var defaultValue = $select.children('[selected]').val(); $select.val(defaultValue); $visibleInput.val(defaultValue); }); } }); function init() { var $text = $('.md-textarea-auto'); if ($text.length) { var observe; if (window.attachEvent) { observe = function observe(element, event, handler) { element.attachEvent("on".concat(event), handler); }; } else { observe = function observe(element, event, handler) { element.addEventListener(event, handler, false); }; } $text.each(function () { var self = this; function resize() { self.style.height = 'auto'; self.style.height = "".concat(self.scrollHeight, "px"); } function delayedResize() { window.setTimeout(resize, 0); } observe(self, 'change', resize); observe(self, 'cut', delayedResize); observe(self, 'paste', delayedResize); observe(self, 'drop', delayedResize); observe(self, 'keydown', delayedResize); resize(); }); } } init(); var $body = $('body'); if (!$('.hiddendiv').first().length) { var $hiddenDiv = $('
'); $body.append($hiddenDiv); } $(textAreaSelector).each(textAreaAutoResize); $body.on('keyup keydown', textAreaSelector, textAreaAutoResize); })(jQuery);