UNPKG

@t7/utils

Version:

Utility methods for T7 components.

71 lines (49 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ = require("./"); /* Parses all inputs in a `<form>`, and returns a formatted object. */ // Dependencies. var parseFormData = function parseFormData(form) { // Array method. var f = Array.prototype.map; // Build selector. var str = ['[contenteditable="true"]', 'input', 'select', 'textarea'].join(','); // Get elements. var list = form.querySelectorAll(str); // Build in a loop. var data = []; // Loop through. f.call(list, function (el) { // Exit if disabled. if (el.disabled || el.hasAttribute('disabled')) { return; } // Get attributes. var name = el.getAttribute('name'); var type = el.getAttribute('type'); var isTextdiv = el.getAttribute('contenteditable'); // Set in conditional. var value; // If it's a <Textdiv>, treat differently. if (isTextdiv) { // Get placeholder. var placeholder = el.getAttribute('placeholder'); // Get value. value = (0, _.contentToText)(el.innerHTML); // Ensure value isn't placeholder. if (value === placeholder) { value = ''; } // Else, typical form element. } else { value = el.value; } var item = { name: name, value: value // Pass `checked`? }; if (type === 'radio' || type === 'checkbox') { item.checked = el.checked; } // Add to data. data.push(item); }); // Send back object. return data; }; // Expose function. var _default = parseFormData; exports.default = _default;