https://www.oficinadeagosto.com.br/catalog/view/global/dist/js/form_validation.min.js?v=140920261015
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.