c') !== 'bc';\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = globalThis.parseInt;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(globalThis.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: globalThis.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(globalThis.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: globalThis.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","module.exports = __webpack_public_path__ + \"css/main.css\";","const regex = {\r\n spaces: / +/gi,\r\n slashes: /\\/+/gi,\r\n not_digits: /[^0-9]+/gi,\r\n not_alpha: /[^-'a-zA-ZÀ-ÖØ-öø-ſ ]+/gi,\r\n not_date_chars: /[^0-9/]/gi,\r\n postal: /^(\\d{5})-?(\\d{1,3})/,\r\n tel: /^(\\d{2})(\\d{1,5})?(\\d{4})?$/,\r\n rg: /^(\\d{1,2})(\\d{1,3})?(\\d{1,3})?(\\d)?$/,\r\n iscnpj: /^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{1,2})?/,\r\n cnpj: /^(\\d{2})(\\d{1,3})?(\\d{1,3})?(\\d{1,4})?(\\d{1,2})?/,\r\n cpf: /^(\\d{1,3})?(\\d{1,3})?(\\d{1,3})?(\\d{1,2})?/,\r\n date: /^(\\d\\/|\\d{2})\\/*(\\d\\/|\\d{2})?\\/*(\\d{1,4})?/,\r\n};\r\n\r\nexport const name = val => val\r\n .replace(regex.not_alpha, '')\r\n .replace(regex.spaces, ' ');\r\n\r\nexport const number = val => val\r\n .replace(regex.not_digits, '');\r\n\r\nexport const postalCode = val => val\r\n .replace(regex.not_digits, '')\r\n .substr(0, 8)\r\n .replace(regex.postal, '$1-$2');\r\n\r\nexport const cep = postalCode;\r\n\r\nexport const tel = val => val\r\n .replace(regex.not_digits, '')\r\n .substr(0, 11)\r\n .replace(regex.tel, (\r\n all, ddd, area, final,\r\n ) => (\r\n `${\r\n ddd ? `(${ddd}` : ''\r\n }${\r\n area ? `) ${area}` : ''\r\n }${\r\n final ? `-${final}` : ''\r\n }`\r\n ));\r\n\r\nexport const rg = val => val\r\n .replace(regex.not_digits, '')\r\n .substr(0, 9)\r\n .replace(regex.rg, (\r\n all, p1, p2, p3, p4,\r\n ) => {\r\n const lastChar = val.substr(-1, 1);\r\n const x = lastChar.toUpperCase() === 'X' ? '-X' : '';\r\n return `${\r\n p1 || ''\r\n }${\r\n p2 ? `.${p2}` : ''\r\n }${\r\n p3 ? `.${p3}` : ''\r\n }${\r\n p4 ? `-${p4}` : x\r\n }`;\r\n });\r\n\r\nexport const cnpj = val => val\r\n .replace(regex.not_digits, '')\r\n .substr(0, 14)\r\n .replace(regex.cnpj, (\r\n all, p1, p2, p3, p4, p5,\r\n ) => `${\r\n p1 || ''\r\n }${\r\n p2 ? `.${p2}` : ''\r\n }${\r\n p3 ? `.${p3}` : ''\r\n }${\r\n p4 ? `/${p4}` : ''\r\n }${\r\n p5 ? `-${p5}` : ''\r\n }`)\r\n\r\nexport const cpf = val => val\r\n .replace(regex.not_digits, '')\r\n .substr(0, 11)\r\n .replace(regex.cpf, (\r\n all, p1, p2, p3, p4,\r\n ) => `${\r\n p1 || ''\r\n }${\r\n p2 ? `.${p2}` : ''\r\n }${\r\n p3 ? `.${p3}` : ''\r\n }${\r\n p4 ? `-${p4}` : ''\r\n }`);\r\n\r\nconst isCNPJ = val => regex.iscnpj.test(\r\n val.replace(regex.not_digits, ''),\r\n);\r\n\r\nexport const cpfcnpj = val => isCNPJ(val) ? cnpj(val) : cpf(val);\r\n\r\nconst padZero = (str) => {\r\n if (str === null || typeof str === 'undefined') {\r\n return '';\r\n }\r\n const n = str.replace(regex.slashes, '');\r\n if (n.toString().length === 1 && Number(n) > 0) {\r\n return `0${n}`;\r\n }\r\n return n;\r\n}\r\n\r\nexport const date = val => val\r\n .replace(regex.slashes, '/')\r\n .replace(regex.not_date_chars, '')\r\n .replace(regex.date, (\r\n all, dd, mm, yyyy,\r\n ) => `${\r\n padZero(dd) || ''\r\n }${\r\n mm ? `/${padZero(mm)}` : ''\r\n }${\r\n yyyy ? `/${yyyy}` : ''\r\n }`)\r\n .substr(0, 10);\r\n","class A11y {\n static get theme() {\n return A11y.get('theme');\n }\n\n static set theme(value) {\n const val = typeof value === 'string' ? value : '';\n document.body.setAttribute('data-theme', val);\n return A11y.set('theme', val);\n }\n\n static get minFontSize() {\n return -2;\n }\n\n static get maxFontSize() {\n return 2;\n }\n\n static get fontSize() {\n return +A11y.get('font-size') || 0;\n }\n\n static set fontSize(value) {\n const n = +value || 0;\n\n if (n < A11y.minFontSize || n > A11y.maxFontSize) {\n return A11y.set('font-size', A11y.fontSize);\n }\n\n document.body.setAttribute('data-font-size', n);\n return A11y.set('font-size', n);\n }\n\n static get prefix() {\n return '@a11y';\n }\n\n static get(key) {\n return localStorage.getItem(`${A11y.prefix}/${key}`);\n }\n\n static set(key, val) {\n return localStorage.setItem(`${A11y.prefix}/${key}`, val);\n }\n}\n\nA11y.theme = localStorage.getItem(`${A11y.prefix}/theme`);\n\nA11y.fontSize = localStorage.getItem(`${A11y.prefix}/font-size`);\n\nwindow.A11y = A11y;\n\nexport default A11y;\n","export const $ = (query, context = document) => {\n const ctx = context instanceof Node\n ? context\n : (\n document.querySelector(context)\n || document\n );\n\n const nodeList = typeof query === 'string'\n ? ctx.querySelectorAll(query)\n : query;\n\n return nodeList instanceof NodeList\n ? Array.prototype.slice.call(nodeList)\n : [nodeList];\n};\n\nconst show = (query) => $(query).map((element) => {\n element.removeAttribute('hidden');\n return element;\n});\n\nconst hide = (query) => $(query).map((element) => {\n element.setAttribute('hidden', true);\n return element;\n});\n\nconst toggle = (query, display) => $(query).map((element) => {\n const visible = display != null\n ? !!display\n : element.hasAttribute('hidden');\n const action = visible ? show : hide;\n\n action(element);\n\n return element;\n});\n\nconst render = (node, {\n style, events, children, attrs, ...props\n} = {}) => {\n const element = (\n typeof node === 'string'\n ? document.createElement(node)\n : node\n );\n\n if (!(element instanceof Node)) {\n // eslint-disable-next-line no-console\n console.warn('Elemento inválido.', element);\n return null;\n }\n\n if (props) {\n Object.entries(props).forEach(([key, val]) => {\n element[key] = val;\n });\n }\n\n if (attrs) {\n Object.entries(attrs).forEach(([key, val]) => {\n element.setAttribute(key, val);\n });\n }\n\n if (style) {\n Object.entries(style).forEach(([key, val]) => {\n element.style[key] = val;\n });\n }\n\n if (children instanceof Array) {\n children.forEach((kid) => {\n if (kid instanceof Node) {\n element.appendChild(kid);\n }\n });\n }\n\n if (events) {\n Object.entries(events).forEach(([name, fn]) => {\n if (typeof name === 'string' && fn instanceof Function) {\n element.addEventListener(name, fn);\n }\n });\n }\n\n return element;\n};\n\n$.show = show;\n$.hide = hide;\n$.toggle = toggle;\n$.render = render;\n\nexport const isInViewport = (elem) => {\n const {\n top, left, bottom, right,\n } = elem.getBoundingClientRect();\n return (\n top >= 0 && left >= 0\n && bottom <= (window.innerHeight || document.documentElement.clientHeight)\n && right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n};\n\nexport const trigger = (el, name, detail) => {\n const customEvent = window.CustomEvent && typeof window.CustomEvent === 'function';\n const event = (\n customEvent\n ? new CustomEvent(name, { detail })\n : document.createEvent('CustomEvent')\n );\n\n event.initCustomEvent(name, true, true, detail);\n\n el.dispatchEvent(event);\n};\n","import A11y from '../components/A11y';\nimport { $ } from '../util/DOM';\n\nconst initA11y = () => {\n $('.a11y-controls__theme').forEach((btn) => {\n btn.addEventListener('click', () => {\n A11y.theme = A11y.theme === '' ? 'dark' : '';\n });\n });\n\n $('.a11y-controls__inc-font').forEach((btn) => {\n btn.addEventListener('click', () => {\n A11y.fontSize += 1;\n });\n });\n\n $('.a11y-controls__dec-font').forEach((btn) => {\n btn.addEventListener('click', () => {\n A11y.fontSize -= 1;\n });\n });\n};\n\nexport default initA11y;\n","import { $ } from '../util/DOM';\r\n\r\nconst regex = {\r\n not_digits: /[^\\d]+/g,\r\n iscnpj: /^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{1,2})?/,\r\n};\r\n\r\nconst isCNPJ = (val) => regex.iscnpj.test(\r\n val.replace(regex.not_digits, ''),\r\n);\r\n\r\nfunction validateRequiredCheckboxes(elements) {\r\n const isValid = elements.some((el) => el.checked);\r\n const el = elements[elements.length - 1];\r\n\r\n if (isValid) {\r\n el.removeAttribute('required');\r\n } else {\r\n el.setAttribute('required', 'required');\r\n }\r\n}\r\n\r\nfunction manageRequiredCheckbox(name) {\r\n if (!name) {\r\n return;\r\n }\r\n\r\n const elements = Array.prototype.slice.call(document.getElementsByName(name));\r\n\r\n validateRequiredCheckboxes(elements);\r\n\r\n elements.forEach((el) => {\r\n el.addEventListener('change', () => {\r\n validateRequiredCheckboxes(elements);\r\n });\r\n });\r\n}\r\n\r\nfunction validarCPF(val) {\r\n const strCPF = val.replace(regex.not_digits, '');\r\n let Soma;\r\n let Resto;\r\n Soma = 0;\r\n if (strCPF === '00000000000') {\r\n return false;\r\n }\r\n\r\n for (let i = 1; i <= 9; i += 1) {\r\n Soma += parseInt(strCPF.substring(i - 1, i), 10) * (11 - i);\r\n }\r\n Resto = (Soma * 10) % 11;\r\n\r\n if ((Resto === 10) || (Resto === 11)) {\r\n Resto = 0;\r\n }\r\n if (Resto !== parseInt(strCPF.substring(9, 10), 10)) {\r\n return false;\r\n }\r\n\r\n Soma = 0;\r\n for (let i = 1; i <= 10; i += 1) {\r\n Soma += parseInt(strCPF.substring(i - 1, i), 10) * (12 - i);\r\n }\r\n Resto = (Soma * 10) % 11;\r\n\r\n if ((Resto === 10) || (Resto === 11)) {\r\n Resto = 0;\r\n }\r\n if (Resto !== parseInt(strCPF.substring(10, 11), 10)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nfunction validarCNPJ(value) {\r\n const cnpj = value.replace(regex.not_digits, '');\r\n\r\n // Valida a quantidade de caracteres\r\n if (cnpj.length !== 14) return false;\r\n\r\n // Elimina inválidos com todos os caracteres iguais\r\n if (/^(\\d)\\1+$/.test(cnpj)) return false;\r\n\r\n // Cáculo de validação\r\n const t = cnpj.length - 2;\r\n const d = cnpj.substring(t);\r\n const d1 = parseInt(d.charAt(0), 10);\r\n const d2 = parseInt(d.charAt(1), 10);\r\n const calc = (x) => {\r\n const n = cnpj.substring(0, x);\r\n let y = x - 7;\r\n let s = 0;\r\n let r = 0;\r\n\r\n for (let i = x; i >= 1; i -= 1) {\r\n // eslint-disable-next-line no-plusplus\r\n s += n.charAt(x - i) * y--;\r\n if (y < 2) {\r\n y = 9;\r\n }\r\n }\r\n\r\n r = 11 - (s % 11);\r\n return r > 9 ? 0 : r;\r\n };\r\n\r\n return calc(t) === d1 && calc(t + 1) === d2;\r\n}\r\n\r\nconst setValidity = (input, test, message) => () => {\r\n const msg = test(input.value) || input.value === '' ? '' : message;\r\n input.setCustomValidity(msg);\r\n};\r\n\r\nconst setCPFValidity = (input) => setValidity(\r\n input, validarCPF, 'O CPF informado não é válido',\r\n);\r\n\r\nconst setCNPJValidity = (input) => setValidity(\r\n input, validarCNPJ, 'O CNPJF informado não é válido.',\r\n);\r\n\r\nconst initFormValidations = () => {\r\n $('[data-checkbox-required]').forEach((container) => {\r\n const checkboxName = container.getAttribute('data-checkbox-required');\r\n manageRequiredCheckbox(checkboxName);\r\n });\r\n\r\n $('[data-mask=\"cpf\"]').forEach((input) => {\r\n input.addEventListener('input', setCPFValidity(input));\r\n });\r\n\r\n $('[data-mask=\"cnpj\"').forEach((input) => {\r\n input.addEventListener('input', setCNPJValidity(input));\r\n });\r\n\r\n $('[data-mask=\"cpfcnpj\"]').forEach((input) => {\r\n input.addEventListener('input', () => {\r\n if (isCNPJ(input.value)) {\r\n setCNPJValidity(input);\r\n return;\r\n }\r\n setCPFValidity(input);\r\n });\r\n });\r\n\r\n $('input[type=\"file\"]').forEach((input) => {\r\n const formats = input.getAttribute('data-accept');\r\n const maxSize = parseInt(input.getAttribute('data-max-size'), 10);\r\n const extRX = /\\.([^.]+)$/;\r\n const ext = (file) => (file.name.match(extRX)[1] || '').toLowerCase();\r\n const constraints = {\r\n format: () => {\r\n if (!formats) {\r\n return $(input.files);\r\n }\r\n const validFormats = formats.split(',');\r\n return $(input.files).filter((f) => validFormats.includes(ext(f)));\r\n },\r\n size: () => {\r\n if (!maxSize) {\r\n return $(input.files);\r\n }\r\n\r\n return $(input.files).filter((f) => f.size < maxSize);\r\n },\r\n };\r\n\r\n input.addEventListener('change', () => {\r\n const validation = {\r\n format: constraints.format().length === input.files.length,\r\n size: constraints.size().length === input.files.length,\r\n };\r\n const message = [\r\n validation.format\r\n ? ''\r\n : `Arquivo incorreto. Selecione um formato válido: ${formats.replace(/,/g, ', ')}`,\r\n validation.size\r\n ? ''\r\n : 'Limite de upload excedido. Selecione um arquivo menor.',\r\n ]\r\n .filter((m) => !!m)\r\n .join(' ')\r\n .trim();\r\n\r\n input.setCustomValidity(message);\r\n });\r\n });\r\n $('form').forEach((form) => {\r\n form.addEventListener('submit', (e) => {\r\n const btn = form.querySelector('[type=\"submit\"]');\r\n const loader = form.querySelector('.loader');\r\n\r\n btn.setAttribute('hidden', true);\r\n loader.removeAttribute('hidden');\r\n\r\n $(form.elements).forEach((input) => {\r\n if (input.classList.contains('invalid') && input.hasAttribute('required')) {\r\n // eslint-disable-next-line no-param-reassign\r\n input.value = '';\r\n input.focus();\r\n e.preventDefault();\r\n btn.removeAttribute('hidden');\r\n loader.setAttribute('hidden', true);\r\n }\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport default initFormValidations;\r\n","import { $ } from '../util/DOM';\n\nconst closeSVG = '';\n\nconst createModal = (content, keepInDoc) => {\n const container = $.render('div', {\n className: 'modal',\n innerHTML: /* html */ `${\n (content && content.outerHTML) || content || ''\n }
`,\n });\n\n document.body.appendChild(container);\n\n const open = () => {\n container.classList.add('open');\n document.body.classList.add('has-modal');\n };\n\n const close = (keep = keepInDoc) => {\n container.classList.remove('open');\n document.body.classList.remove('has-modal');\n if (!keep) {\n setTimeout(() => {\n container.remove();\n }, 500);\n }\n };\n\n const closeButton = $.render('button', {\n type: 'button',\n className: 'close',\n innerHTML: closeSVG,\n events: {\n click: () => close(),\n },\n });\n\n $.render(container, {\n children: [closeButton],\n });\n\n document.body.appendChild(container);\n\n const modal = {\n container,\n closeButton,\n open,\n close,\n };\n\n container.modal = modal;\n\n return modal;\n};\n\nexport default createModal;\n","import createModal from '../components/createModal';\nimport { $ } from '../util/DOM';\n\nconst svg = {\n prev: '',\n next: '',\n};\n\nconst imageView = ({ href, title }, onclick) => {\n const modal = createModal(/* html */ `\n
\n`, true);\n\n $.render(modal.container, {\n children: [\n $.render('button', {\n type: 'button',\n className: 'modal__prev-button',\n innerHTML: svg.prev,\n events: {\n click: () => onclick(-1),\n },\n }),\n $.render('button', {\n type: 'button',\n className: 'modal__next-button',\n innerHTML: svg.next,\n events: {\n click: () => onclick(+1),\n },\n }),\n ],\n });\n\n return modal;\n};\n\nconst initGallery = () => {\n $('.gallery__container').forEach((container) => {\n const photos = $('.gallery__item', container);\n photos.forEach((p, index) => {\n // eslint-disable-next-line no-param-reassign\n p.modal = imageView(p, (i) => {\n const selectedIndex = index + i;\n p.modal.close();\n if (selectedIndex < 0) {\n photos[photos.length - 1].modal.open();\n return;\n }\n if (selectedIndex >= photos.length) {\n photos[0].modal.open();\n return;\n }\n photos[selectedIndex].modal.open();\n });\n\n p.addEventListener('click', (e) => {\n e.preventDefault();\n p.modal.open();\n });\n });\n });\n};\n\nexport default initGallery;\n","import createModal from '../components/createModal';\nimport { $ } from '../util/DOM';\n\nconst videoView = (p) => {\n const html = $('.videos__template', p);\n\n const modal = createModal(html[0].innerHTML, true);\n\n return modal;\n};\n\nconst initVideos = () => {\n $('.videos__container').forEach((container) => {\n const photos = $('.videos__item', container);\n photos.forEach((p, index) => {\n // eslint-disable-next-line no-param-reassign\n p.modal = videoView(p, (i) => {\n const selectedIndex = index + i;\n p.modal.close();\n if (selectedIndex < 0) {\n photos[photos.length - 1].modal.open();\n return;\n }\n if (selectedIndex >= photos.length) {\n photos[0].modal.open();\n return;\n }\n photos[selectedIndex].modal.open();\n });\n\n p.addEventListener('click', (e) => {\n e.preventDefault();\n p.modal.open();\n });\n });\n });\n};\n\nexport default initVideos;\n","import { $ } from '../util/DOM';\n\nconst initMenuFX = () => {\n const buttons = $('[aria-haspopup=\"true\"]');\n\n const targets = buttons.map((btn) => {\n const target = document.getElementById(btn.getAttribute('aria-controls'));\n if (!target) {\n return null;\n }\n\n btn.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const isOpen = btn.getAttribute('aria-expanded') === 'true';\n const groupName = btn.getAttribute('data-group-name');\n if (groupName) {\n $(`[data-group-name=\"${groupName}\"]`).forEach((b) => {\n b.setAttribute('aria-expanded', false);\n });\n }\n btn.setAttribute('aria-expanded', !isOpen);\n });\n\n return target;\n }).filter((el) => !!el);\n\n window.addEventListener('click', ({ target }) => {\n const foundTarget = targets.find((el) => el === target || el.contains(target));\n if (foundTarget) {\n return;\n }\n buttons.forEach((button) => button.setAttribute('aria-expanded', false));\n });\n};\n\nexport default initMenuFX;\n","import createModal from '../components/createModal';\nimport { $ } from '../util/DOM';\n\nconst initModals = () => {\n $('.modal-template').forEach((container) => {\n const keep = container.hasAttribute('keep');\n const modal = createModal(container.innerHTML, keep);\n\n if (container.hasAttribute('open')) {\n modal.open();\n }\n\n container.remove();\n });\n};\n\nexport default initModals;\n","import smoothscroll from 'smoothscroll-polyfill';\nimport { $ } from '../util/DOM';\n\nconst initBackTopButton = () => {\n const backTopButton = document.querySelector('.back-to-top');\n window.addEventListener('scroll', () => {\n $.toggle(backTopButton, window.scrollY > 0);\n });\n\n backTopButton.addEventListener('click', () => {\n window.scrollTo({\n behavior: 'smooth',\n top: 0,\n left: 0,\n });\n window.location.hash = '';\n });\n};\n\nconst initScrollFX = () => {\n smoothscroll.polyfill();\n initBackTopButton();\n};\n\nexport default initScrollFX;\n","import { trigger } from '../util/DOM';\n\nconst CONTAINER = Symbol('CONTAINER');\nconst CHILDREN = Symbol('CHILDREN');\nconst OPTIONS = Symbol('OPTIONS');\nconst INDEX = Symbol('INDEX');\nconst STATE = Symbol('STATE');\nconst DIRECTION = Symbol('DIRECTION');\n\nclass Slider {\n constructor(container, options) {\n this.init(container, {\n interval: 3000,\n initClassName: 'slider-set',\n childSelector: '.slider__item',\n ...options,\n });\n }\n\n init(container, options) {\n this[CONTAINER] = container;\n this[OPTIONS] = options;\n this[INDEX] = 0;\n\n const { childSelector, initClassName } = this.options;\n this[CHILDREN] = (\n childSelector\n ? this.container.querySelectorAll(childSelector)\n : this.container.children\n );\n\n this.container.classList.add(initClassName);\n this.container.slider = this;\n setTimeout(() => this.render(), 100);\n }\n\n get container() {\n return this[CONTAINER];\n }\n\n get options() {\n return this[OPTIONS];\n }\n\n get direction() {\n return this[DIRECTION] || 0;\n }\n\n get state() {\n return this[STATE] || {\n isPlayng: false,\n };\n }\n\n get index() {\n return this[INDEX];\n }\n\n set index(i) {\n const dir = i < this[INDEX] ? -1 : +1;\n if (i >= this.children.length) {\n this[INDEX] = 0;\n } else if (i < 0) {\n this[INDEX] = this.children.length - 1;\n } else {\n this[INDEX] = i;\n }\n this[DIRECTION] = dir;\n this.render();\n setTimeout(() => {\n if (!this.state.isPlayng) {\n this[DIRECTION] = 0;\n }\n }, 100);\n }\n\n get children() {\n return [...this[CHILDREN]];\n }\n\n get currentElement() {\n return this.children[this.index];\n }\n\n get prevElement() {\n if (this.index === 0) {\n return this.children[this.children.length - 1];\n }\n return this.children[this.index - 1];\n }\n\n get nextElement() {\n if (this.index === this.children.length - 1) {\n return this.children[0];\n }\n return this.children[this.index + 1];\n }\n\n goTo(index) {\n const { isPlayng, id } = this.state;\n if (isPlayng) {\n this[STATE] = {\n ...this.state,\n id: clearInterval(id),\n };\n }\n this.index = index;\n if (isPlayng) {\n this.play();\n }\n return this;\n }\n\n goPrev() {\n return this.goTo(this.index - 1);\n }\n\n goNext() {\n return this.goTo(this.index + 1);\n }\n\n play() {\n if (this.children.length === 1) {\n return this.pause();\n }\n this[STATE] = {\n ...this.state,\n id: setInterval(() => this.goNext(), this.options.interval),\n isPlayng: true,\n };\n return this;\n }\n\n pause() {\n const { id } = this.state;\n\n this[STATE] = {\n ...this.state,\n id: clearInterval(id),\n isPlayng: false,\n };\n\n return this;\n }\n\n on(name, fn, el) {\n if (!el) {\n this.container.addEventListener(name, fn);\n return this;\n }\n\n this.container.addEventListener(name, (e) => {\n for (let { target } = e; target && target !== this.container; target = target.parentNode) {\n if (target.matches(el)) {\n fn.call(target, e);\n break;\n }\n }\n }, false);\n\n return this;\n }\n\n trigger(name, detail) {\n trigger(this.container, name, {\n ...detail, slider: this,\n });\n }\n\n render() {\n if (!this.children.length) {\n // eslint-disable-next-line no-console\n console.trace('Elementos filhos não encontrados.', this);\n this.pause();\n return;\n }\n\n this.children.forEach((slide) => {\n slide.classList.remove('prev');\n slide.classList.remove('next');\n slide.classList.remove('current');\n });\n this.currentElement.classList.add('current');\n this.prevElement.classList.add('prev');\n this.nextElement.classList.add('next');\n this.trigger('render');\n }\n}\n\nexport default Slider;\n","import Slider from './Slider';\n\nconst addAnimationClassName = (el, className) => {\n const removeClassName = () => {\n el.removeEventListener('animationend', removeClassName);\n el.classList.remove(className);\n };\n el.classList.add(className);\n el.addEventListener('animationend', removeClassName);\n};\n\nclass Carousel extends Slider {\n constructor(container, options) {\n super(container, {\n initClassName: 'carousel-set',\n childSelector: '.carousel__item',\n ...options,\n });\n }\n\n render() {\n if (!this.children.length) {\n // eslint-disable-next-line no-console\n console.trace('Elementos filhos não encontrados.', this);\n this.pause();\n return;\n }\n\n this.children.forEach((el, i) => {\n const pos = i - this.index;\n const order = pos < 0 ? this.children.length + pos : pos;\n\n // eslint-disable-next-line no-param-reassign\n el.style.order = order;\n el.setAttribute('data-order', order);\n\n el.classList.remove('slide-to-left');\n el.classList.remove('slide-to-right');\n\n if (this.direction < 0) {\n addAnimationClassName(el, 'slide-to-right');\n }\n\n if (this.direction > 0) {\n addAnimationClassName(el, 'slide-to-left');\n }\n });\n\n this.trigger('render');\n }\n}\n\nexport default Carousel;\n","import Carousel from '../components/Carousel';\nimport Slider from '../components/Slider';\nimport { $ } from '../util/DOM';\n\nconst getLinkHtml = (el) => {\n const qs = el.getAttribute('data-link-content');\n if (!qs) {\n return '';\n }\n const content = el.querySelector(qs);\n if (!content) {\n return '';\n }\n return content.innerHTML;\n};\n\nconst sliderControlComponents = {\n arrows: (slider) => $.render('div', {\n className: 'slider-controls__arrows',\n children: [\n $.render('button', {\n type: 'button',\n className: 'prev',\n attrs: { 'aria-label': 'Voltar slide' },\n innerHTML: /* html */ `\n`,\n events: {\n click: () => {\n slider.goPrev();\n },\n },\n }),\n $.render('button', {\n type: 'button',\n className: 'next',\n attrs: { 'aria-label': 'Avançar slide' },\n innerHTML: /* html */ `\n`,\n events: {\n click: () => {\n slider.goNext();\n },\n },\n }),\n ],\n }),\n counters: (slider) => {\n const children = slider.children.map((el, i) => $.render('button', {\n type: 'button',\n textContent: i + 1,\n attrs: { 'aria-label': `Ver o slide ${i + 1}` },\n events: { click: () => slider.goTo(i) },\n }));\n\n slider.on('render', () => {\n children.forEach((btn, btnIndex) => {\n if (btnIndex === slider.index) {\n btn.classList.add('is-active');\n } else {\n btn.classList.remove('is-active');\n }\n });\n });\n\n return $.render('div', {\n className: 'slider-controls__counters',\n children,\n });\n },\n links: (slider) => {\n const children = slider.children.map((el, i) => $.render('div', {\n innerHTML: getLinkHtml(el),\n tabindex: '-1',\n events: { click: () => slider.goTo(i) },\n }));\n\n slider.on('render', () => {\n children.forEach((btn, btnIndex) => {\n if (btnIndex === slider.index) {\n btn.classList.add('is-active');\n } else {\n btn.classList.remove('is-active');\n }\n });\n });\n\n return $.render('div', {\n className: 'slider-controls__links',\n children,\n });\n },\n};\n\nconst generateControls = (slider, keys) => keys.map((key) => {\n if (!(key in sliderControlComponents)) {\n // eslint-disable-next-line no-console\n console.warn(`Opção de controle inválida: ${key}. As opções disponíveis são ${\n Object.keys(sliderControlComponents).join(', ')\n }`);\n return null;\n }\n return sliderControlComponents[key](slider);\n});\n\nconst setSliderControls = (slider, controlOptions) => {\n if (!controlOptions) {\n return;\n }\n const controlKeys = controlOptions.trim().split(' ');\n if (!controlKeys.length) {\n return;\n }\n\n const container = $.render('div', {\n className: 'slider-controls__container',\n children: generateControls(slider, controlKeys),\n });\n\n slider.container.insertAdjacentElement('afterEnd', container);\n};\n\nconst createSlider = (container, type) => {\n const play = container.hasAttribute('data-play');\n const interval = container.getAttribute('data-interval') || 3000;\n const height = container.getAttribute('data-height');\n const controls = container.getAttribute('data-controls');\n\n const slider = (\n type === 'carousel'\n ? new Carousel(container, { interval })\n : new Slider(container, { interval })\n );\n\n if (play) {\n slider\n .on('mouseover', () => slider.pause())\n .on('mouseout', () => slider.play())\n .play();\n }\n\n if (height) {\n slider.container.style.height = height;\n }\n\n if (controls) {\n setSliderControls(slider, controls);\n }\n\n return slider;\n};\n\nconst createCarousel = (container) => {\n createSlider(container, 'carousel');\n};\n\nconst initSliders = () => {\n $('.slider').forEach(createSlider);\n $('.carousel').forEach(createCarousel);\n};\n\nexport default initSliders;\n","import * as masks from './src/masks';\r\n\r\nexport const bindInputMask = (\r\n input, maskName, eventName = 'input'\r\n) => {\r\n const applyMask = masks[maskName];\r\n\r\n if (!(applyMask instanceof Function)) {\r\n console.error(`${maskName} is not a valid mask.`);\r\n return;\r\n }\r\n\r\n input.addEventListener(eventName, () => {\r\n const { value } = input;\r\n input.value = applyMask(value);\r\n });\r\n};\r\n\r\nexport const bindMasksByAttribute = (attrName = 'data-mask', context = document) => {\r\n const inputs = context.querySelectorAll(`[${attrName}]`);\r\n Array.prototype.forEach.call(inputs, (input) => {\r\n const maskName = input.getAttribute(attrName);\r\n\r\n if (!maskName) {\r\n console.error('No mask defined for input', input);\r\n return;\r\n }\r\n\r\n bindInputMask(input, maskName);\r\n });\r\n}\r\n\r\nexport { masks };\r\n","import { bindMasksByAttribute } from 'br-input-masks';\nimport initA11y from './main/initA11y';\nimport initFormValidation from './main/initFormValidation';\nimport initGallery from './main/initGallery';\nimport initVideos from './main/initVideos';\nimport initMenuFX from './main/initMenuFX';\nimport initModals from './main/initModals';\nimport initScrollFX from './main/initScrollFX';\nimport initSliders from './main/initSliders';\n\nbindMasksByAttribute();\n\ninitA11y();\n\ninitMenuFX();\n\ninitSliders();\n\ninitGallery();\n\ninitVideos();\n\ninitModals();\n\ninitScrollFX();\n\ninitFormValidation();\n"],"sourceRoot":""}