c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var 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","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","var global = require('../internals/global');\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 charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(global.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: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(global.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: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\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';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var 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","// 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","var $ = 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","module.exports = __webpack_public_path__ + \"CSS/main.css\";","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, dataset, events, children, ...attributes\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 (attributes) {\n Object.entries(attributes).forEach(([key, val]) => {\n element[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 (style) {\n Object.entries(style).forEach(([key, val]) => {\n element.style[key] = val;\n });\n }\n\n if (dataset) {\n Object.entries(dataset).forEach(([key, val]) => {\n element.setAttribute(`data-${key}`, val);\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 { $, trigger } from '../util/DOM';\n\nconst closeDialog = (section) => {\n document.body.classList.remove('has-dialog');\n section.setAttribute('hidden', true);\n trigger(section, 'close');\n};\n\nconst openDialog = (section) => {\n document.body.classList.add('has-dialog');\n section.removeAttribute('hidden');\n};\n\nconst initDialogs = () => {\n $('a')\n .filter(({ hash }) => hash && hash !== '#')\n .map((link) => ({\n link, section: document.querySelector(link.hash),\n }))\n .filter(({ section }) => section && section.getAttribute('role') === 'dialog')\n .forEach(({ link, section }) => {\n $('.dialog__close', section)\n .forEach((btn) => btn.addEventListener('click', (e) => {\n e.preventDefault();\n closeDialog(section);\n }));\n\n link.addEventListener('click', (e) => {\n e.preventDefault();\n openDialog(section);\n });\n });\n};\n\nexport default initDialogs;\n","const padZero = (n) => (n < 10 ? `0${n}` : n);\n\n// eslint-disable-next-line import/prefer-default-export\nexport const formatDollarDate = (val, formatter) => {\n const date = val instanceof Date ? val : new Date(val);\n\n if (!(+date)) {\n // eslint-disable-next-line no-console\n console.warn('Data inválida');\n return '';\n }\n\n const dd = padZero(date.getDate());\n const mm = padZero(date.getMonth() + 1);\n const yyyy = date.getFullYear();\n\n if (formatter instanceof Function) {\n return formatter(dd, mm, yyyy, date);\n }\n\n return `${mm}/${dd}/${yyyy}`;\n};\n","import { formatDollarDate } from './datetime';\n\nconst dollarAPI = {\n root: 'https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/',\n cache: {},\n moedas() {\n return this.get(`${this.root}Moedas?$top=100&$format=json`);\n },\n periodo(\n moeda = 'USD',\n inicio = new Date(),\n final = new Date(),\n select = 'cotacaoCompra,dataHoraCotacao,tipoBoletim',\n ) {\n const dataInicial = formatDollarDate(inicio);\n const dataFinal = formatDollarDate(final);\n return this.get(`${this.root}CotacaoMoedaPeriodo(moeda=@moeda,dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)?@moeda='${moeda}'&@dataInicial='${dataInicial}'&@dataFinalCotacao='${dataFinal}'&$top=100&$format=json&$select=${select}`);\n },\n async get(key) {\n if (this.cache[key]) {\n return this.cache[key];\n }\n\n this.cache[key] = fetch(key)\n .then((resp) => resp.ok && resp.json())\n .then(({ value }) => value);\n\n return this.cache[key];\n },\n};\n\nexport default dollarAPI;\n","import { $ } from './DOM';\n\nexport const loadScript = (src) => new Promise((load, error) => {\n const script = $.render('script', {\n src,\n events: { load, error },\n });\n document.head.appendChild(script);\n});\n\nexport const loadGoogleCharts = async () => {\n if (window.google && window.google.visualization) {\n return Promise.resolve(window.google.visualization);\n }\n\n await loadScript('https://www.gstatic.com/charts/loader.js');\n\n return new Promise((resolve) => {\n if (!window.google) {\n throw new Error('Biblioteca google não disponível.');\n }\n window.google.charts.load('current', { packages: ['corechart'], language: 'pt-br' });\n window.google.charts.setOnLoadCallback(() => {\n resolve(window.google.visualization);\n });\n });\n};\n","export const chartOptions = {\n seriesType: 'line',\n series: {\n 0: {\n type: 'area',\n visibleInLegend: false,\n },\n 1: {\n dataOpacity: 0,\n },\n 2: {\n dataOpacity: 0,\n },\n },\n colors: ['#ffa500', '#f30', '#39f'],\n pointSize: 4,\n chartArea: {\n top: '10%',\n left: '18%',\n width: '80%',\n height: '80%',\n backgroundColor: '#ffffff00', // identificar a área para calcular a rotação do gradiente\n },\n vAxis: {\n gridlines: { count: 0 },\n format: 'currency',\n },\n hAxis: {\n slantedText: false,\n maxAlternation: 1,\n },\n legend: { position: 'none' },\n};\n\nexport const areaStyle = `point { size: 3; shape-type: circ; fill-color: #fff; stroke-color: ${chartOptions.colors[0]}; stroke-width: 1.5; }`;\n\nexport const chartGradientSVG = /* html */ `\n\n`;\n","// https://stackoverflow.com/questions/36749960/svg-lineargradient-direction\n\nfunction setGradientAngle(element, gradientId, amount) {\n // Convert angle to radians\n const angle = (amount * Math.PI) / 180;\n // Get element bounding box\n const bbox = element.getBBox();\n // Calculate centre of rotation\n const cx = bbox.x + bbox.width / 2;\n // const cy = bbox.y + bbox.height / 2;\n\n // Minimum radius we need, to guarantee that gradient stretches the full width\n // This calculation could be cleverer. We are just doing worst case here for simplicity.\n const radius = Math.sqrt(bbox.width * bbox.width + bbox.height * bbox.height) / 2;\n // Calculate vector from centre to gradient coords\n\n const rx = Math.cos(angle) * radius;\n // const ry = Math.sin(angle) * radius;\n // Update the gradient coords\n const grad = document.getElementById(gradientId);\n\n grad.setAttribute('gradientUnits', 'userSpaceOnUse');\n grad.setAttribute('x1', cx - rx);\n // grad.setAttribute('y1', cy + ry);\n grad.setAttribute('x2', cx + rx);\n // grad.setAttribute('y2', cy - ry);\n}\n\nexport default setGradientAngle;\n","import { formatDollarDate } from '../util/datetime';\nimport dollarAPI from '../util/dollarAPI';\nimport { $ } from '../util/DOM';\nimport { loadGoogleCharts } from '../util/loaders';\nimport { areaStyle, chartGradientSVG, chartOptions } from './constants';\nimport setGradientAngle from './setGradientAngle';\n\nconst chartFactory = (container, callback) => {\n let redrawChart;\n\n const { colors } = chartOptions;\n\n window.addEventListener('resize', () => {\n if (!(redrawChart instanceof Function)) {\n return;\n }\n\n redrawChart();\n });\n\n // gradiente da área do gráfico\n container.insertAdjacentHTML('afterend', chartGradientSVG);\n\n return async (...requestOptions) => {\n const cotacao = await dollarAPI.periodo(...requestOptions);\n\n if (callback instanceof Function) {\n callback(cotacao, ...requestOptions);\n }\n\n try {\n const fechamentos = cotacao.filter(({ tipoBoletim }) => tipoBoletim === 'Fechamento');\n const valores = fechamentos.map(({ cotacaoCompra }) => cotacaoCompra);\n const min = Math.min(...valores);\n const max = Math.max(...valores);\n const avg = (max - min) / 2 + min;\n const last = fechamentos[fechamentos.length - 1].cotacaoCompra;\n\n const { ComboChart: Chart, DataTable, events } = await loadGoogleCharts();\n\n const data = new DataTable();\n data.addColumn('string', 'Data e hora');\n data.addColumn('number', 'Cotação');\n data.addColumn({ type: 'string', role: 'style' });\n data.addColumn('number', 'Média do período');\n data.addColumn({ type: 'string', role: 'tooltip' });\n data.addColumn('number', 'Última cotação');\n data.addColumn({ type: 'string', role: 'tooltip' });\n\n const avgLabel = `Média do período: R$ ${avg.toFixed(2).replace('.', ',')}`;\n const lastValueLabel = `Última cotação: R$ ${last.toFixed(2).replace('.', ',')}`;\n\n data.addRows(fechamentos.map(({ dataHoraCotacao, cotacaoCompra }) => [\n formatDollarDate(dataHoraCotacao, (dd, mm) => `${dd}/${mm}`),\n cotacaoCompra,\n areaStyle,\n avg,\n avgLabel,\n last,\n lastValueLabel,\n ]));\n\n const chart = new Chart(container);\n\n events.addListener(chart, 'ready', () => {\n $('text', container).forEach((label) => {\n if (label.getAttribute('text-anchor') === 'end') {\n const xCoord = parseFloat(label.getAttribute('x'));\n label.setAttribute('x', xCoord - 15);\n }\n });\n\n const observer = new MutationObserver((() => {\n const svg = container.querySelector('svg');\n const rect = svg.querySelector('rect');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n $(`[fill=\"${colors[0]}\"]`, container).forEach((path) => {\n path.setAttribute('fill', `url(#my-gradient) ${colors[0]}`);\n setGradientAngle(rect, 'my-gradient', -90);\n });\n }));\n observer.observe(container, {\n childList: true,\n subtree: true,\n });\n });\n\n chart.draw(data, chartOptions);\n\n redrawChart = () => {\n chart.clearChart();\n chart.draw(data, chartOptions);\n };\n } catch (error) {\n // eslint-disable-next-line no-console\n console.trace(error);\n }\n };\n};\n\nexport default chartFactory;\n","import chartFactory from '../charts/chartFactory';\nimport dollarAPI from '../util/dollarAPI';\nimport { $ } from '../util/DOM';\n\nconst initDollarLabel = async (label) => {\n const start = new Date();\n start.setDate(start.getDate() - 1);\n const data = await dollarAPI.periodo('USD', start);\n\n const variation = data\n .reduce((prev, { cotacaoCompra: value }) => {\n const diff = prev.value && value / prev.value - 1;\n const acc = prev.diff && prev.diff + diff;\n return { value, diff, acc };\n }, {});\n\n const state = variation.acc < 0 ? 'down' : 'up';\n const typeLabel = label.querySelector('.dollar-label__type');\n typeLabel.classList.add(`dollar-label--${state}`);\n\n const value = variation.value.toFixed(2).replace('.', ',');\n const valueLabel = label.querySelector('.dollar-label__value');\n valueLabel.textContent = value;\n};\n\nconst initDollarBox = async (box) => {\n const chartContainer = box.querySelector('.dollar-box__chart');\n const moedas = await dollarAPI.moedas();\n\n const onBeforeRender = (cotacao, type) => {\n $('.dollar-box__current-type', box).forEach((el) => {\n $.render(el, { textContent: type });\n });\n\n const { cotacaoCompra } = cotacao && cotacao.length && cotacao[cotacao.length - 1];\n\n $('.dollar-box__current-value', box).forEach((el) => {\n $.render(el, {\n textContent: (+cotacaoCompra\n ? (+cotacaoCompra).toFixed(2)\n : ''\n ),\n });\n });\n };\n\n const renderChart = chartFactory(chartContainer, onBeforeRender);\n\n const inicio = new Date();\n inicio.setDate(inicio.getDate() - 15);\n\n $('.dollar-box__moeda', box).forEach((select) => {\n $.render(select, {\n innerHTML: moedas.map(({ simbolo, nomeFormatado }) => /* html */`\n\n `),\n value: 'USD',\n events: {\n change: () => renderChart(select.value, inicio),\n },\n });\n });\n\n renderChart('USD', inicio);\n};\n\nconst initDollarComponents = () => {\n $('.dollar-label').forEach(initDollarLabel);\n $('.dollar-box').forEach(initDollarBox);\n};\n\nexport default initDollarComponents;\n","import { $ } from '../util/DOM';\n\n\nconst initDropdown = () => {\n $('.dropdown').forEach((container) => {\n const label = container.querySelector('.dropdown__label');\n const OPEN = 'on';\n\n document.body.addEventListener('click', ({ target }) => {\n if (label === target || label.contains(target)) {\n label.classList.toggle(OPEN);\n return;\n }\n\n if (container === target || container.contains(target)) {\n return;\n }\n\n label.classList.remove(OPEN);\n });\n });\n};\n\nexport default initDropdown;\n","import { $ } from '../util/DOM';\n\nconst initFormControls = () => {\n const formControls = $('.form-control');\n\n formControls.forEach((fc) => {\n const label = fc.querySelector('label');\n const input = fc.querySelector(`#${label.getAttribute('for')}`);\n\n if (input.value) {\n label.classList.add('focused');\n }\n\n input.addEventListener('focus', () => label.classList.add('focused'));\n input.addEventListener('blur', () => {\n if (input.value) {\n return;\n }\n label.classList.remove('focused');\n });\n });\n};\n\nconst initFormFX = () => {\n initFormControls();\n};\n\nexport default initFormFX;\n","import { $ } from '../util/DOM';\n\nconst closeSVG = '';\n\nconst createModal = (content, keepInDoc) => {\n\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 let fechar = document.querySelectorAll('.close').forEach(item =>{\n item.addEventListener('click', (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\nconst 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 document.body.appendChild(container);\n\n const modal = {\n container,\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 initGallery = () => {\n $('.gallery').forEach((container) => {\n const items = $('.gallery__item', container);\n items.forEach((photo) => {\n const thumb = photo.querySelector('img');\n\n photo.addEventListener('click', (e) => {\n e.preventDefault();\n console.log(photo.href)\n const content = /* html */ `\n
\n `;\n\n createModal(content).open();\n });\n });\n });\n};\n\nexport default initGallery;\n","import createModal from '../components/createModal';\r\nimport { $ } from '../util/DOM';\r\n\r\nconst initModals = () => {\r\n $('.modal-template').forEach((container) => {\r\n const keep = container.hasAttribute('keep');\r\n const modal = createModal(container.innerHTML, keep);\r\n\r\n if (container.hasAttribute('open')) {\r\n modal.open();\r\n }\r\n\r\n container.remove();\r\n });\r\n};\r\n\r\nexport default initModals;\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","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';\n\nconst openMenu = () => {\n $.show('.menu .trigger');\n // o timeout é necessário para a animação funcionar\n setTimeout(() => {\n document.body.classList.add('menu-open');\n }, 100);\n};\n\nconst closeMenu = () => {\n document.body.classList.remove('menu-open');\n\n // redefinir os submenus\n $('.menu .open').forEach((box) => {\n box.classList.remove('open');\n });\n\n // o timeout é necessário para a animação funcionar\n setTimeout(() => {\n $.hide('.menu .trigger');\n }, 500);\n};\n\nconst initMenuOnClick = () => {\n $('.menu-icon').forEach((btn) => {\n btn.addEventListener('click', () => {\n openMenu();\n });\n });\n\n $('.menu .trigger').forEach((trigger) => {\n trigger.addEventListener('click', ({ target }) => {\n if (trigger !== target) {\n return;\n }\n\n closeMenu();\n });\n });\n\n $('.sub-menu__link').forEach((btn) => {\n const { parentElement } = btn;\n const trigger = btn.nextElementSibling;\n const goBack = trigger.querySelector('.go-back');\n\n btn.addEventListener('click', (e) => {\n e.preventDefault();\n\n $.show(trigger);\n btn.classList.add('open');\n parentElement.scrollTo(0, 0);\n parentElement.classList.add('past');\n trigger.classList.remove('past');\n });\n\n $.render(goBack, {\n events: {\n click: (e) => {\n e.preventDefault();\n parentElement.classList.remove('past');\n btn.classList.remove('open');\n btn.focus();\n\n setTimeout(() => {\n $.hide(trigger);\n }, 500);\n },\n },\n });\n });\n};\n\nconst initMenuFX = () => {\n initMenuOnClick();\n};\n\nexport default initMenuFX;\n","import smoothscroll from 'smoothscroll-polyfill';\nimport { $ } from '../util/DOM';\n\nconst initLinkScrolls = () => {\n const header = document.querySelector('.site-header');\n const { position } = window.getComputedStyle(header);\n if (position !== 'fixed') {\n return;\n }\n\n const threshold = header.offsetHeight;\n\n $('a')\n .filter(({ hash }) => hash && hash !== '#')\n .map((link) => ({\n link, section: document.querySelector(link.hash),\n }))\n .filter(({ section }) => section && section.getAttribute('role') !== 'dialog')\n .forEach(({ link, section }) => {\n link.addEventListener('click', (e) => {\n e.preventDefault();\n window.scrollTo(0, section.offsetTop - threshold);\n });\n });\n};\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 initLinkScrolls();\n initBackTopButton();\n};\n\nexport default initScrollFX;\n","export const $ = (query, context = document) => {\r\n const ctx = context instanceof Node\r\n ? context\r\n : (\r\n document.querySelector(context)\r\n || document\r\n );\r\n\r\n const nodeList = typeof query === 'string'\r\n ? ctx.querySelectorAll(query)\r\n : query;\r\n\r\n return nodeList instanceof NodeList\r\n ? Array.prototype.slice.call(nodeList)\r\n : [nodeList];\r\n};\r\n\r\nconst show = (query) => $(query).map((element) => {\r\n element.removeAttribute('hidden');\r\n return element;\r\n});\r\n\r\nconst hide = (query) => $(query).map((element) => {\r\n element.setAttribute('hidden', true);\r\n return element;\r\n});\r\n\r\nconst toggle = (query, display) => $(query).map((element) => {\r\n const visible = display != null\r\n ? !!display\r\n : element.hasAttribute('hidden');\r\n const action = visible ? show : hide;\r\n\r\n action(element);\r\n\r\n return element;\r\n});\r\n\r\nconst render = (node, {\r\n style, events, children, attrs, ...props\r\n} = {}) => {\r\n const element = (\r\n typeof node === 'string'\r\n ? document.createElement(node)\r\n : node\r\n );\r\n\r\n if (!(element instanceof Node)) {\r\n // eslint-disable-next-line no-console\r\n console.warn('Elemento inválido.', element);\r\n return null;\r\n }\r\n\r\n if (props) {\r\n Object.entries(props).forEach(([key, val]) => {\r\n element[key] = val;\r\n });\r\n }\r\n\r\n if (attrs) {\r\n Object.entries(attrs).forEach(([key, val]) => {\r\n element.setAttribute(key, val);\r\n });\r\n }\r\n\r\n if (style) {\r\n Object.entries(style).forEach(([key, val]) => {\r\n element.style[key] = val;\r\n });\r\n }\r\n\r\n if (children instanceof Array) {\r\n children.forEach((kid) => {\r\n if (kid instanceof Node) {\r\n element.appendChild(kid);\r\n }\r\n });\r\n }\r\n\r\n if (events) {\r\n Object.entries(events).forEach(([name, fn]) => {\r\n if (typeof name === 'string' && fn instanceof Function) {\r\n element.addEventListener(name, fn);\r\n }\r\n });\r\n }\r\n\r\n return element;\r\n};\r\n\r\n$.show = show;\r\n$.hide = hide;\r\n$.toggle = toggle;\r\n$.render = render;\r\n\r\nexport const isInViewport = (elem) => {\r\n const {\r\n top, left, bottom, right,\r\n } = elem.getBoundingClientRect();\r\n return (\r\n top >= 0 && left >= 0\r\n && bottom <= (window.innerHeight || document.documentElement.clientHeight)\r\n && right <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n};\r\n\r\nexport const trigger = (el, name, detail) => {\r\n const customEvent = window.CustomEvent && typeof window.CustomEvent === 'function';\r\n const event = (\r\n customEvent\r\n ? new CustomEvent(name, { detail })\r\n : document.createEvent('CustomEvent')\r\n );\r\n\r\n event.initCustomEvent(name, true, true, detail);\r\n\r\n el.dispatchEvent(event);\r\n};\r\n","import { $ } from '../util/DOM2';\r\n\r\nconst initMenuFX2 = () => {\r\n const buttons = $('[aria-haspopup=\"true\"]');\r\n\r\n const targets = buttons.map((btn) => {\r\n const target = document.getElementById(btn.getAttribute('aria-controls'));\r\n if (!target) {\r\n return null;\r\n }\r\n\r\n btn.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const isOpen = btn.getAttribute('aria-expanded') === 'true';\r\n const groupName = btn.getAttribute('data-group-name');\r\n if (groupName) {\r\n $(`[data-group-name=\"${groupName}\"]`).forEach((b) => {\r\n alert('adas')\r\n b.setAttribute('aria-expanded', false);\r\n });\r\n }\r\n btn.setAttribute('aria-expanded', !isOpen);\r\n });\r\n\r\n return target;\r\n }).filter((el) => !!el);\r\n\r\n window.addEventListener('click', ({ target }) => {\r\n const foundTarget = targets.find((el) => el === target || el.contains(target));\r\n if (foundTarget) {\r\n return;\r\n }\r\n buttons.forEach((button) => button.setAttribute('aria-expanded', false));\r\n });\r\n};\r\n\r\nexport default initMenuFX2;\r\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 sliderControlComponents = {\n arrows: (slider) => $.render('div', {\n className: 'slider-controls__arrows',\n children: [\n $.render('button', {\n type: 'button',\n className: 'prev',\n innerHTML: /* html */ `\n `,\n events: {\n click: () => {\n slider.goPrev();\n },\n },\n }),\n $.render('button', {\n type: 'button',\n className: 'next',\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,\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};\n\nconst generateControls = (slider, keys) => keys.map((key) => {\n if (!(key in sliderControlComponents)) {\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 { $ } from '../util/DOM';\r\n\r\nconst initLoader = () => {\r\n $('form').forEach((form) => {\r\n form.addEventListener('submit', (e) => {\r\n const btn = form.querySelector('[type=\"submit\"]') || form.querySelector('button');\r\n const loader = form.querySelector('.loader') || form.querySelector('.loader2');\r\n \r\n btn.setAttribute('hidden', true);\r\n \r\n loader.removeAttribute('hidden');\r\n \r\n $(form.elements).forEach((input) => {\r\n if (input.value === '' && 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\nexport default initLoader;\r\n","import initDialogs from './main/initDialogs';\nimport initDollarViews from './main/initDollarViews';\nimport initDropdown from './main/initDropdown';\nimport initFormFX from './main/initFormFX';\nimport initGallery from './main/initGallery';\nimport initModals from './main/initModals';\nimport initA11y from './main/initA11y';\nimport initMenuFX from './main/initMenuFX';\nimport initScrollFX from './main/initScrollFX';\nimport initMenuFX2 from './main/initMenuFX2';\nimport initSliders from './main/initSliders';\nimport initLoader from './main/initLoader';\n\ninitFormFX();\n\ninitDialogs();\n\ninitScrollFX();\n\ninitMenuFX();\n\ninitSliders();\n\ninitGallery();\n\ninitA11y();\n\ninitMenuFX2();\n\ninitDollarViews();\n\ninitModals();\n\ninitLoader();\n\ninitDropdown();\n"],"sourceRoot":""}