PageSourceSearch

https://www.oficinadeagosto.com.br/catalog/view/global/dist/js/form_validation.min.js?v=140920261015

js oficinadeagosto.com.br collected 2026-09-26 18:24:34 UTC 20,467 bytes, 480 lines download raw bytes

1/*! Irroba Platform - 2026-07-07T16:40:44.851Z */
2(function webpackUniversalModuleDefinition(root, factory) {
3	if(typeof exports === 'object' && typeof module === 'object')
4		module.exports = factory();
5	else if(typeof define === 'function' && define.amd)
6		define([], factory);
7	else {
8		var a = factory();
9		for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
10	}
11})(typeof self !== "undefined" ? self : this, () => {
12return /******/ (() => { // webpackBootstrap
13/******/ 	var __webpack_modules__ = ({
14
15/***/ 30:
16/***/ (function(module, exports, __webpack_require__) {
17
18var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
19  if (true) {
20    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(42)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
21		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
22		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
23		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
24  } else { var mod; }
25})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _formValidation) {
26  "use strict";
27
28  Object.defineProperty(_exports, "__esModule", {
29    value: true
30  });
31  Object.defineProperty(_exports, "clearFieldValidation", {
32    enumerable: true,
33    get: function get() {
34      return _formValidation.clearFieldValidation;
35    }
36  });
37  _exports.formValidation = _exports.exposeFormValidation = _exports.default = void 0;
38  Object.defineProperty(_exports, "initFormValidation", {
39    enumerable: true,
40    get: function get() {
41      return _formValidation.initFormValidation;
42    }
43  });
44  Object.defineProperty(_exports, "validateField", {
45    enumerable: true,
46    get: function get() {
47      return _formValidation.validateField;
48    }
49  });
50  Object.defineProperty(_exports, "validateForm", {
51    enumerable: true,
52    get: function get() {
53      return _formValidation.validateForm;
54    }
55  });
56  var formValidation = _exports.formValidation = {
57    init: _formValidation.initFormValidation,
58    validateField: _formValidation.validateField,
59    validateForm: _formValidation.validateForm,
60    clearFieldValidation: _formValidation.clearFieldValidation
61  };
62  var exposeFormValidation = _exports.exposeFormValidation = function exposeFormValidation() {
63    var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : typeof window !== 'undefined' ? window : null;
64    if (target) {
65      target.IrrobaFormValidation = formValidation;
66    }
67    return formValidation;
68  };
69  if (typeof window !== 'undefined') {
70    exposeFormValidation(window);
71  }
72  var _default = _exports.default = formValidation;
73});
74
75/***/ }),
76
77/***/ 42:
78/***/ (function(module, exports) {
79
80var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
81  if (true) {
82    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
83		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
84		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
85		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
86  } else { var mod; }
87})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports) {
88  "use strict";
89
90  Object.defineProperty(_exports, "__esModule", {
91    value: true
92  });
93  _exports.validateForm = _exports.validateField = _exports.initFormValidation = _exports.default = _exports.clearFieldValidation = void 0;
94  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
95  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
96  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {};
96 r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
97  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
98  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
99  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
100  var DEFAULT_OPTIONS = {
101    fieldSelector: 'input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]), select, textarea',
102    fieldWrapperSelector: '[data-validate-field], .form-group, .custom-field, .input-group',
103    errorClass: 'has-error',
104    errorMessageClass: 'form-validation',
105    errorMessage: 'Campo obrigatorio',
106    invalidMessageTemplate: 'Informe {field}.',
107    selectMessageTemplate: 'Selecione {field}.',
108    focusInvalid: true
109  };
110  var TRUE_VALUES = ['1', 'true', 'required', 'yes'];
111  var FALSE_VALUES = ['0', 'false', 'optional', 'no'];
112  var mergeOptions = function mergeOptions() {
113    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
114    return _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);
115  };
116  var toBoolean = function toBoolean(value) {
117    if (typeof value === 'boolean') {
118      return value;
119    }
120    if (typeof value !== 'string') {
121      return false;
122    }
123    return TRUE_VALUES.includes(value.toLowerCase());
124  };
125  var isFalseValue = function isFalseValue(value) {
126    return typeof value === 'string' && FALSE_VALUES.includes(value.toLowerCase());
127  };
128  var normalizeText = function normalizeText() {
129    var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
130    return value.replace(/\*/g, '').replace(/\s+/g, ' ').trim();
131  };
132  var escapeAttributeValue = function escapeAttributeValue() {
133    var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
134    return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
135  };
136  var isElementVisible = function isElementVisible(element) {
137    if (!element || element.type === 'hidden' || element.disabled) {
138      return false;
139    }
140    if (element.closest('[hidden], [data-validate-ignore]')) {
141      return false;
142    }
143    var current = element;
144    while (current && current !== document.documentElement) {
145      var style = window.getComputedStyle(current);
146      if (style.display === 'none' || style.visibility === 'hidden') {
147        return false;
148      }
149      current = current.parentElement;
150    }
151    return Boolean(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
152  };
153  var getFieldWrapper = function getFieldWrapper(field, options) {
154    return field.closest(options.fieldWrapperSelector) || field.parentElement;
155  };
156  var getFieldLabel = function getFieldLabel(field, wrapper) {
157    if (field.dataset.validateLabel) {
158      return field.dataset.validateLabel;
159    }
160    if (field.id) {
161      var label = document.querySelector("label[for=\"".concat(field.id, "\"]"));
162      if (label) {
163        return label.textContent;
164      }
165    }
166    var wrapperLabel = wrapper ? wrapper.querySelector('label') : null;
167    if (wrapperLabel) {
168      return wrapperLabel.textContent;
169    }
170    return field.getAttribute('aria-label') || field.placeholder || field.name || 'este campo';
171  };
172  var hasRequiredMarker = function hasRequiredMarker() {
173    var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
174    var normalized = text.toLowerCase();
175    if (normalized.includes('opcional') || normalized.includes('optional')) {
176      return false;
177    }
178    return text.includes('*');
179  };
180  var isFieldRequired = function isFieldRequired(field, options) {
181    var wrapper = getFieldWrapper(field, options);
182    if (isFalseValue(field.dataset.validateRequired)) {
183      return false;
184    }
185    if (field.required || toBoolean(field.dataset.validateRequired) || field.getAttribute('aria-required') === 'true') {
186      return true;
187    }
188    if (wrapper && (wrapper.classList.contains('required') || toBoolean(wrapper.dataset.validateRequired))) {
189      return true;
190    }
191    return hasRequiredMarker(getFieldLabel(field, wrapper)) || hasRequiredMarker(field.getAttribute('aria-label') || '');
192  };
193  var getGroupFields = function getGroupFields(form, field) {
194    if (!field.name || field.type !== 'radio' && field.type !== 'checkbox') {
195      return [field];
196    }
197    return Array.from(form.querySelectorAll("[name=\"".concat(escapeAttributeValue(field.name), "\"]")));
198  };
199  var getFieldValue = function getFieldValue(field, form) {
200    if (field.type === 'radio' || field.type === 'checkbox') {
201      return getGroupFields(form, field).some(function (item) {
202        return item.checked;
203      }) ? 'checked' : '';
204    }
205    if (field.tagName === 'SELECT') {
206      return field.value;
207    }
208    return (field.value || '').trim();
209  };
210  var hasFieldValue = function hasFieldValue(field, form) {
211    var value = getFieldValue(field, form);
212    var emptyValues = (field.dataset.validateEmptyValues || '').split(',').map(function (item) {
213      return item.trim();
214    }).filter(Boolean);
215    return Boolean(value) && !emptyValues.includes(value);
216  };
217  var getRequiredMessage = function getRequiredMessage(field, options, wrapper) {
218    if (field.dataset.validateMessage) {
219      return field.dataset.validateMessage;
220    }
221    if (wrapper && wrapper.dataset.validateMessage) {
222      return wrapper.dataset.validateMessage;
223    }
224    var fieldLabel = normalizeText(getFieldLabel(field, wrapper));
225    var fallbackLabel = fieldLabel || options.errorMessage;
226    var template = field.tagName === 'SELECT' || field.type === 'radio' || field.type === 'checkbox' ? options.selectMessageTemplate : options.invalidMessageTemplate;
227    return template.replace('{field}', fallbackLabel);
228  };
229  var ensureErrorId = function ensureErrorId(field) {
230    if (field.id) {
231      return "error-".concat(field.id.replace(/^input-/, '').replace(/_/g, '-'));
232    }
233    return "error-".concat(field.name.replace(/[\[\]_]+/g, '-'));
234  };
235  var getExistingError = function getExistingError(wrapper, options) {
236    return wrapper ? wrapper.querySelector(".".concat(options.errorMessageClass, "[data-form-validation-error=\"true\"]")) : null;
237  };
238  var getAnyError = function getAnyError(wrapper, options) {
239    return wrapper ? wrapper.querySelector(".".concat(options.errorMessageClass)) : null;
240  };
241  var syncAriaDescribedBy = function syncAriaDescribedBy(field, errorId, shouldAdd) {
242    var values = (field.getAttribute('aria-describedby') || '').split(/\s+/).filter(Boolean);
243    var hasErrorId = values.includes(errorId);
244    if (shouldAdd && !hasErrorId) {
245      values.push(errorId);
246    }
247    if (!shouldAdd && hasErrorId) {
248      values.splice(values.indexOf(errorId), 1);
249    }
250    if (values.length) {
251      field.setAttribute('aria-describedby', values.join(' '));
252    } else {
253      field.removeAttribute('aria-describedby');
254    }
255  };
256  var clearFieldValidation = _exports.clearFieldValidation = function clearFieldValidation(field) {
257    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
258    var config = mergeOptions(options);
259    var wrapper = getFieldWrapper(field, config);
260    var error = getExistingError(wrapper, config);
261    var fields = field.form ? getGroupFields(field.form, field) : [field];
262    if (wrapper) {
263      wrapper.classList.remove(config.errorClass);
264    }
265    fields.forEach(function (item) {
266      item.removeAttribute('aria-invalid');
267      if (error && error.id) {
268        syncAriaDescribedBy(item, error.id, false);
269      }
270    });
271    if (error) {
272      error.remove();
273    }
274  };
275  var showFieldValidation = function showFieldValidation(field, message, options) {
276    var wrapper = getFieldWrapper(field, options);
277    var fields = field.form ? getGroupFields(field.form, field) : [field];
278    var errorId = ensureErrorId(field);
279    var error = getExistingError(wrapper, options) || getAnyError(wrapper, options);
280    var shouldUpdateMessage = !error || error.dataset.formValidationError === 'true';
281    if (error && !error.id) {
282      error.id = errorId;
283    }
284    if (wrapper) {
285      wrapper.classList.add(options.errorClass);
286    }
287    fields.forEach(function (item) {
288      item.setAttribute('aria-invalid', 'true');
289      syncAriaDescribedBy(item, errorId, true);
290    });
291    if (!error) {
292      error = document.createElement('span');
293      error.className = options.errorMessageClass;
294      error.dataset.formValidationError = 'true';
295      error.setAttribute('role', 'alert');
296      error.id = errorId;
297      if (wrapper) {
298        wrapper.appendChild(error);
299      }
300    }
301    if (shouldUpdateMessage) {
302      error.textContent = message;
303    }
304  };
305  var validateField = _exports.validateField = function validateField(field) {
306    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
307    var config = mergeOptions(options);
308    var form = field.form;
309    var wrapper = getFieldWrapper(field, config);
310    if (!form || !isElementVisible(field) || !isFieldRequired(field, config)) {
311      clearFieldValidation(field, config);
312      return true;
313    }
314    if (hasFieldValue(field, form)) {
315      clearFieldValidation(field, config);
316      return true;
317    }
318    showFieldValidation(field, getRequiredMessage(field, config, wrapper), config);
319    return false;
320  };
321  var getRequiredFields = function getRequiredFields(form, options) {
322    return Array.from(form.querySelectorAll(options.fieldSelector)).filter(function (field) {
323      return isElementVisible(field) && isFieldRequired(field, options);
324    }).filter(function (field, index, fields) {
325      if (field.type !== 'radio' && field.type !== 'checkbox') {
326        return true;
327      }
328      return fields.findIndex(function (item) {
329        return item.name === field.name;
330      }) === index;
331    });
332  };
333  var validateForm = _exports.validateForm = function validateForm(form) {
334    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
335    var config = mergeOptions(options);
336    var fields = getRequiredFields(form, config);
337    var firstInvalidField = null;
338    fields.forEach(function (field) {
339      var isValid = validateField(field, config);
340      if (!isValid && !firstInvalidField) {
341        firstInvalidField = field;
342      }
343    });
344    if (firstInvalidField && config.focusInvalid) {
345      try {
346        firstInvalidField.focus({
347          preventScroll: true
348        });
349      } catch (error) {
350        firstInvalidField.focus();
351      }
352      try {
353        firstInvalidField.scrollIntoView({
354          behavior: 'smooth',
355          block: 'center'
356        });
357      } catch (error) {
358        firstInvalidField.scrollIntoView();
359      }
360    }
361    return !firstInvalidField;
362  };
363  var bindFieldEvents = function bindFieldEvents(form, field, options) {
364    var validate = function validate() {
365      return validateField(field, options);
366    };
367    var clearWhenFilled = function clearWhenFilled() {
368      if (hasFieldValue(field, form)) {
369        clearFieldValidation(field, options);
370      }
371    };
372    if (field.type === 'radio' || field.type === 'checkbox' || field.tagName === 'SELECT') {
373      field.addEventListener('change', validate);
374      return;
375    }
376    field.addEventListener('blur', validate);
377    field.addEventListener('input', clearWhenFilled);
378  };
379  var initFormValidation = _exports.initFormValidation = function initFormValidation() {
380    var formSelector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '[data-validate-form]';
381    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
382    var config = mergeOptions(options);
383    var forms = typeof formSelector === 'string' ? Array.from(document.querySelectorAll(formSelector)) : [formSelector].filter(Boolean);
384    forms.forEach(function (form) {
385      if (form.dataset.formValidationReady === 'true') {
386        return;
387      }
388      form.dataset.formValidationReady = 'true';
389      Array.from(form.querySelectorAll(config.fieldSelector)).forEach(function (field) {
390        bindFieldEvents(form, field, config);
391      });
392      form.addEventListener('submit', function (event) {
393        if (!validateForm(form, config)) {
394          event.preventDefault();
395          event.stopImmediatePropagation();
396        }
397      });
398    });
399  };
400  var _default = _exports.default = {
401    init: initFormValidation,
402    validateField: validateField,
403    validateForm: validateForm,
404    clearFieldValidation: clearFieldValidation
405  };
406});
407
408/***/ }),
409
410/***/ 837:
411/***/ (function(module, exports, __webpack_require__) {
412
413var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
414  if (true) {
415    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(30)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
416		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
417		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
418		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
419  } else { var mod; }
420})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_form) {
421  "use strict";
422
423  /**
424   * Form Validation Standalone Script
425   * @description Carrega apenas o módulo de validação de formulários (window.IrrobaFormValidation)
426   *              para temas fora da estrutura starter, que não carregam account.min.js.
427   * @version 1.0.0
428   * @author Irroba Platform
429   */
430
431  var init = function init() {
432    return (0, _form.initFormValidation)('[data-validate-form], [data-account-form]');
433  };
434  if (document.readyState === 'loading') {
435    document.addEventListener('DOMContentLoaded', init);
436  } else {
437    init();
438  }
439});
440
441/***/ })
442
443/******/ 	});
444/************************************************************************/
445/******/ 	// The module cache
446/******/ 	var __webpack_module_cache__ = {};
447/******/ 	
448/******/ 	// The require function
449/******/ 	function __webpack_require__(moduleId) {
450/******/ 		// Check if module is in cache
451/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
452/******/ 		if (cachedModule !== undefined) {
453/******/ 			return cachedModule.exports;
454/******/ 		}
455/******/ 		// Create a new module (and put it into the cache)
456/******/ 		var module = __webpack_module_cache__[moduleId] = {
457/******/ 			// no module.id needed
458/******/ 			// no module.loaded needed
459/******/ 			exports: {}
460/******/ 		};
461/******/ 	
462/******/ 		// Execute the module function
463/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
464/******/ 	
465/******/ 		// Return the exports of the module
466/******/ 		return module.exports;
467/******/ 	}
468/******/ 	
469/************************************************************************/
470/******/ 	
471/******/ 	// startup
472/******/ 	// Load entry module and return exports
473/******/ 	// This entry module is referenced by other modules so it can't be inlined
474/******/ 	var __webpack_exports__ = __webpack_require__(837);
475/******/ 	
476/******/ 	return __webpack_exports__;
477/******/ })()
478;
479});
480//# sourceMappingURL=form_validation.min.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.