diff --git a/dist/js/bvi.js b/dist/js/bvi.js index 6fbaf35..ab9d4e5 100644 --- a/dist/js/bvi.js +++ b/dist/js/bvi.js @@ -1,6 +1,6 @@ /*! * Button visually impaired - v1.0.0 https://bvi.isvek.ru - * Copyright 2014-2021 Oleg Korotenko . + * Copyright 2014-2022 Oleg Korotenko . * Licensed MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md) */ (function (global, factory) { @@ -9,6 +9,764 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.isvek = factory()); }(this, (function () { 'use strict'; + var runtime = {exports: {}}; + + /** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + (function (module) { + var runtime = (function (exports) { + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined$1; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + return obj[key]; + } + try { + // IE 8 has a broken Object.defineProperty that only works on DOM objects. + define({}, ""); + } catch (err) { + define = function(obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = GeneratorFunctionPrototype; + define(Gp, "constructor", GeneratorFunctionPrototype); + define(GeneratorFunctionPrototype, "constructor", GeneratorFunction); + GeneratorFunction.displayName = define( + GeneratorFunctionPrototype, + toStringTagSymbol, + "GeneratorFunction" + ); + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + define(prototype, method, function(arg) { + return this._invoke(method, arg); + }); + }); + } + + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + define(genFun, toStringTagSymbol, "GeneratorFunction"); + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }); + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined$1) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined$1; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined$1; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + define(Gp, toStringTagSymbol, "Generator"); + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + define(Gp, iteratorSymbol, function() { + return this; + }); + + define(Gp, "toString", function() { + return "[object Generator]"; + }); + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined$1; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined$1, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined$1; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined$1; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined$1; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined$1; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined$1; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + + }( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + module.exports + )); + + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, in modern engines + // we can explicitly access globalThis. In older engines we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } + } + }(runtime)); + function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); @@ -174,727 +932,6 @@ }; } - var runtime = {exports: {}}; - - (function (module) { - var runtime = function (exports) { - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined$1; // More compressible than void 0. - - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function define(obj, key, value) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - - try { - // IE 8 has a broken Object.defineProperty that only works on DOM objects. - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - - var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - - - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = GeneratorFunctionPrototype; - define(Gp, "constructor", GeneratorFunctionPrototype); - define(GeneratorFunctionPrototype, "constructor", GeneratorFunction); - GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define(genFun, toStringTagSymbol, "GeneratorFunction"); - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function (unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function (error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }); - exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - - exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined$1) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - // Note: ["return"] must be used for ES3 parsing compatibility. - if (delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined$1; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). - - context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined$1; - } - } else { - // Re-yield the result returned by the delegate method. - return info; - } // The delegate iterator is finished, so forget it and continue with - // the outer generator. - - - context.delegate = null; - return ContinueSentinel; - } // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - - - defineIteratorMethods(Gp); - define(Gp, toStringTagSymbol, "Generator"); // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - - define(Gp, iteratorSymbol, function () { - return this; - }); - define(Gp, "toString", function () { - return "[object Generator]"; - }); - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined$1; - next.done = true; - return next; - }; - - return next.next = next; - } - } // Return an iterator with no values. - - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined$1, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - - this.sent = this._sent = undefined$1; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined$1; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined$1; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined$1; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined$1; - } - - return ContinueSentinel; - } - }; // Regardless of whether this script is executing as a CommonJS module - // or not, return the runtime object so that we can declare the variable - // regeneratorRuntime in the outer scope, which allows this module to be - // injected easily by `bin/regenerator --include-runtime script.js`. - - return exports; - }( // If this script is executing as a CommonJS module, use module.exports - // as the regeneratorRuntime namespace. Otherwise create a new empty - // object. Either way, the resulting object will be used to initialize - // the regeneratorRuntime variable at the top of this file. - module.exports ); - - try { - regeneratorRuntime = runtime; - } catch (accidentalStrictMode) { - // This module should not be running in strict mode, so the above - // assignment should always work unless something is misconfigured. Just - // in case runtime.js accidentally runs in strict mode, in modern engines - // we can explicitly access globalThis. In older engines we can escape - // strict mode using a global Function call. This could conceivably fail - // if a Content Security Policy forbids using Function, but in that case - // the proper solution is to fix the accidental strict mode problem. If - // you've misconfigured your bundler to force strict mode and applied a - // CSP to forbid Function, and you're not willing to fix either of those - // problems, please detail your unique predicament in a GitHub issue. - if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } - } - })(runtime); - /** * -------------------------------------------------------------------------- * Button visually impaired (v1.0.0): util/index.js @@ -1037,7 +1074,7 @@ var time = now.getTime(); time += 24 * 60 * 60 * 1000; now.setTime(time); - document.cookie = "bvi_".concat(name, "=").concat(value, ";path=/;expires=").concat(now.toUTCString(), ";domain=").concat(location.host); + document.cookie = "bvi_".concat(name, "=").concat(value, ",path=/,expires=").concat(now.toUTCString(), ",domain=").concat(location.host); }; var getCookie = function getCookie() { @@ -1050,14 +1087,15 @@ var cookie = cookies[i].trim(); if (cookie.indexOf(name) !== -1) { - return cookie.substring(name.length, cookie.length); + var options = cookie.split(","); + return options[0].substring(name.length, options[0].length); } } }; var removeCookie = function removeCookie() { var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - document.cookie = "bvi_".concat(name, "=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=").concat(location.host); + document.cookie = "bvi_".concat(name, "=,path=/,expires=Thu, 01 Jan 1970 00:00:01 GMT,domain=").concat(location.host); }; /** diff --git a/dist/js/bvi.js.map b/dist/js/bvi.js.map index 7dfae8a..fba3282 100644 --- a/dist/js/bvi.js.map +++ b/dist/js/bvi.js.map @@ -1 +1 @@ -{"version":3,"file":"bvi.js","sources":["../../node_modules/regenerator-runtime/runtime.js","../../src/js/util/index.js","../../src/js/util/cookie.js","../../src/js/i18n.js","../../src/js/bvi.js","../../src/js/index.umd.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/index.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n(function (arr) {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('prepend')) {\n return\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend () {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment()\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)))\n })\n\n this.insertBefore(docFrag, this.firstChild)\n },\n })\n })\n})([Element.prototype, Document.prototype, DocumentFragment.prototype])\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach\n}\n\nif (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\n HTMLCollection.prototype.forEach = Array.prototype.forEach\n}\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst checkConfig = (config, configTypes, configOptions) => {\n Object.keys(configTypes).forEach(key => {\n const expectedTypes = configTypes[key]\n const value = config[key]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" предоставленный тип \"${valueType}\", ожидаемый тип \"${expectedTypes}\".`,\n )\n }\n })\n\n Object.keys(configOptions).forEach(key => {\n const expectedOptions = configOptions[key]\n const value = config[key]\n\n if (!new RegExp(expectedOptions).test(value)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" параметр \"${value}\", ожидаемый параметр \"${expectedOptions}\".`,\n )\n }\n })\n}\n\nconst plural = (number, text = ['пиксель', 'пекселя', 'пикселей']) => {\n if (number % 10 === 1 && number % 100 !== 11) {\n return `${number} ${text[0]}`\n } else if (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return `${number} ${text[1]}`\n } else {\n return `${number} ${text[2]}`\n }\n}\n\nconst stringToBoolean = string => {\n switch (string) {\n case 'on':\n case 'true':\n case '1':\n return true\n default:\n return false\n }\n}\n\nconst wrapInner = (parent, wrapper, className) => {\n if (typeof wrapper === 'string') {\n wrapper = document.createElement(wrapper)\n }\n\n parent.appendChild(wrapper).className = className\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild)\n }\n}\n\nconst unwrap = wrapper => {\n let docFrag = document.createDocumentFragment()\n\n if (!wrapper) return\n\n while (wrapper.firstChild) {\n let child = wrapper.removeChild(wrapper.firstChild)\n docFrag.appendChild(child)\n }\n\n wrapper.parentNode.replaceChild(docFrag, wrapper)\n}\n\nconst getObject = (object, callback) => {\n Object.keys(object).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst getArray = (array, callback) => {\n Array.from(array).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst inArray = (needle, haystack) => {\n let length = haystack.length\n\n for (let i = 0; i < length; i++) {\n if (haystack[i] === needle) {\n return true\n }\n }\n\n return false\n}\n\nconst synth = () => window.speechSynthesis\n\nconst synthSupportBrowser = () => {\n return 'speechSynthesis' in window\n}\n\nexport {\n plural,\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n synthSupportBrowser,\n inArray,\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/cookie.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst setCookie = function (name = '', value = '') {\n let now = new Date();\n let time = now.getTime();\n time += 24 * 60 * 60 * 1000;\n now.setTime(time);\n document.cookie = `bvi_${name}=${value};path=/;expires=${now.toUTCString()};domain=${location.host}`;\n};\n\nconst getCookie = function (name = '') {\n name = `bvi_${name}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let cookies = decodedCookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n let cookie = cookies[i].trim();\n\n if (cookie.indexOf(name) !== -1) {\n return cookie.substring(name.length, cookie.length);\n }\n }\n};\n\nconst removeCookie = function (name = '') {\n document.cookie = `bvi_${name}=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=${location.host}`;\n};\n\nexport {\n setCookie,\n getCookie,\n removeCookie,\n};\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): i18n.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst lang = {\n 'ru-RU': {\n 'text': {\n 'fontSize': 'Размер шрифта',\n 'siteColors': 'Цвета сайта',\n 'images': 'Изображения',\n 'speech': 'Синтез речи',\n 'settings': 'Настройки',\n 'regularVersionOfTheSite': 'Обычная версия сайта',\n 'letterSpacing': 'Межбуквенное расстояние',\n 'normal': 'Стандартный',\n 'average': 'Средний',\n 'big': 'Большой',\n 'lineHeight': 'Межстрочный интервал',\n 'font': 'Шрифт',\n 'arial': 'Без засечек',\n 'times': 'С засечками',\n 'builtElements': 'Встроенные элементы (Видео, карты и тд.)',\n 'on': 'Включить',\n 'off': 'Выключить',\n 'reset': 'Сбросить настройки',\n 'plural_0': 'пиксель',\n 'plural_1': 'пекселя',\n 'plural_2': 'пикселей',\n },\n 'voice': {\n 'fontSizePlus': 'Размер шрифта увели́чен',\n 'fontSizeMinus': 'Размер шрифта уме́ньшен',\n 'siteColorBlackOnWhite': 'Цвет сайта черным по белому',\n 'siteColorWhiteOnBlack': 'Цвет сайта белым по черному',\n 'siteColorDarkBlueOnBlue': 'Цвет сайта тёмно-синим по голубому',\n 'siteColorBeigeBrown': 'Цвет сайта кори́чневым по бе́жевому',\n 'siteColorGreenOnDarkBrown': 'Цвет сайта зеленым по тёмно-коричневому',\n 'imagesOn': 'Изображения включены',\n 'imagesOFF': 'Изображения выключены',\n 'imagesGrayscale': 'Изображения чёрно-белые',\n 'speechOn': 'Синтез речи включён',\n 'speechOff': 'Синтез речи вы́ключен',\n 'lineHeightNormal': 'Межстрочный интервал стандартный',\n 'lineHeightAverage': 'Межстрочный интервал средний',\n 'lineHeightBig': 'Межстрочный интервал большой',\n 'LetterSpacingNormal': 'Интервал между буквами стандартный',\n 'LetterSpacingAverage': 'Интервал между буквами средний',\n 'LetterSpacingBig': 'Интервал между буквами большой',\n 'fontArial': 'Шрифт без засечек',\n 'fontTimes': 'Шрифт с засечками',\n 'builtElementsOn': 'Встроенные элементы включены',\n 'builtElementsOFF': 'Встроенные элементы выключены',\n 'resetSettings': 'Установлены настройки по умолча́нию',\n 'panelShow': 'Панель открыта',\n 'panelHide': 'Панель скрыта',\n 'panelOn': 'Версия сайта для слабови́дящий',\n 'panelOff': 'Обычная версия сайта',\n }\n },\n 'en-US': {\n 'text': {\n 'fontSize': 'Font size',\n 'siteColors': 'Site colors',\n 'images': 'Images',\n 'speech': 'Speech synthesis',\n 'settings': 'Settings',\n 'regularVersionOfTheSite': 'Regular version Of The site',\n 'letterSpacing': 'Letter spacing',\n 'normal': 'Single',\n 'average': 'One and a half',\n 'big': 'Double',\n 'lineHeight': 'Line spacing',\n 'font':'Font',\n 'arial': 'Sans Serif - Arial',\n 'times': 'Serif - Times New Roman',\n 'builtElements': 'Include inline elements (Videos, maps, etc.)',\n 'on': 'Enable',\n 'off': 'Disabled',\n 'reset': 'Reset settings',\n 'plural_0': 'pixel',\n 'plural_1': 'pixels',\n 'plural_2': 'pixels',\n },\n 'voice': {\n 'fontSizePlus': 'Font size increased',\n 'fontSizeMinus': 'Font size reduced',\n 'siteColorBlackOnWhite': 'Site color black on white',\n 'siteColorWhiteOnBlack': 'Site color white on black',\n 'siteColorDarkBlueOnBlue': 'Site color dark blue on cyan',\n 'siteColorBeigeBrown': 'SiteColorBeigeBrown',\n 'siteColorGreenOnDarkBrown': 'Site color green on dark brown',\n 'imagesOn': 'Images enable',\n 'imagesOFF': 'Images disabled',\n 'imagesGrayscale': 'Images gray scale',\n 'speechOn': 'Synthesis speech enable',\n 'speechOff': 'Synthesis speech disabled',\n 'lineHeightNormal': 'Line spacing single',\n 'lineHeightAverage': 'Line spacing one and a half',\n 'lineHeightBig': 'Line spacing double',\n 'LetterSpacingNormal': 'Letter spacing single',\n 'LetterSpacingAverage': 'Letter spacing one and a half',\n 'LetterSpacingBig': 'Letter spacing letter double',\n 'fontArial': 'Sans Serif - Arial',\n 'fontTimes': 'Serif - Times New Roman',\n 'builtElementsOn': 'Include inline elements are enabled',\n 'builtElementsOFF': 'Include inline elements are disabled',\n 'resetSettings': 'Default settings have been set',\n 'panelShow': 'Panel show',\n 'panelHide': 'Panel hide',\n 'panelOn': 'Site version for visually impaired',\n 'panelOff': 'Regular version of the site',\n }\n }\n}\n\nclass I18n {\n constructor(options) {\n this._config = options\n }\n\n t(key) {\n return lang[this._config.lang]['text'][key]\n }\n\n v(key) {\n return lang[this._config.lang]['voice'][key]\n }\n}\n\nexport default I18n\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): bvi.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nimport {\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n} from './util'\n\nimport {\n setCookie,\n getCookie,\n removeCookie,\n} from './util/cookie'\nimport I18n from './i18n'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst Default = {\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n images: 'grayscale',\n letterSpacing: 'normal',\n lineHeight: 'normal',\n speech: true,\n fontFamily: 'arial',\n builtElements: false,\n panelFixed: true,\n panelHide: false,\n reload: false,\n lang: 'ru-RU',\n}\n\nconst DefaultType = {\n target: 'string',\n fontSize: 'number',\n theme: 'string',\n images: '(string|boolean)',\n letterSpacing: 'string',\n lineHeight: 'string',\n speech: 'boolean',\n fontFamily: 'string',\n builtElements: 'boolean',\n panelFixed: 'boolean',\n panelHide: 'boolean',\n reload: 'boolean',\n lang: 'string',\n}\n\nconst DefaultOptions = {\n target: '',\n fontSize: '(^[1-9]$|^[1-3][0-9]?$|^39$)',\n theme: '(white|black|blue|brown|green)',\n images: '(true|false|grayscale)',\n letterSpacing: '(normal|average|big)',\n lineHeight: '(normal|average|big)',\n speech: '(true|false)',\n fontFamily: '(arial|times)',\n builtElements: '(true|false)',\n panelFixed: '(true|false)',\n panelHide: '(true|false)',\n reload: '(true|false)',\n lang: '(ru-RU|en-US)',\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Bvi {\n constructor(options) {\n this._config = this._getConfig(options)\n this._elements = document.querySelectorAll(this._config.target)\n this._i18n = new I18n({\n lang: this._config.lang\n })\n\n this._addEventListeners()\n this._init()\n\n console.log('Bvi console: ready Button visually impaired v1.0.0')\n }\n\n // Private\n\n _init() {\n getObject(this._config, key => {\n if (typeof getCookie(key) === 'undefined') {\n removeCookie('panelActive')\n }\n })\n\n if (stringToBoolean(getCookie('panelActive'))) {\n this._set()\n this._getPanel()\n this._addEventListenersPanel()\n this._images()\n this._speechPlayer()\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n setInterval(() => {\n if (synth().pending === false) {\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n return callback(element)\n })\n }\n\n el(play, element => element.classList.remove('disabled'))\n el(pause, element => element.classList.add('disabled'))\n el(resume, element => element.classList.add('disabled'))\n el(stop, element => element.classList.add('disabled'))\n }\n }, 1000)\n }\n\n } else {\n this._remove()\n }\n }\n\n _addEventListeners() {\n if (!this._elements) {\n return false\n }\n\n this._elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n getObject(this._config, key => setCookie(key, this._config[key]))\n setCookie('panelActive', true)\n\n this._init()\n this._speech(`${this._i18n.v('panelOn')}`)\n })\n })\n\n }\n\n _addEventListenersPanel() {\n const elements = {\n fontSizeMinus: document.querySelector('.bvi-fontSize-minus'),\n fontSizePlus: document.querySelector('.bvi-fontSize-plus'),\n themeWhite: document.querySelector('.bvi-theme-white'),\n themeBlack: document.querySelector('.bvi-theme-black'),\n themeBlue: document.querySelector('.bvi-theme-blue'),\n themeBrown: document.querySelector('.bvi-theme-brown'),\n themeGreen: document.querySelector('.bvi-theme-green'),\n imagesOn: document.querySelector('.bvi-images-on'),\n imagesOff: document.querySelector('.bvi-images-off'),\n imagesGrayscale: document.querySelector('.bvi-images-grayscale'),\n speechOn: document.querySelector('.bvi-speech-on'),\n speechOff: document.querySelector('.bvi-speech-off'),\n lineHeightNormal: document.querySelector('.bvi-line-height-normal'),\n lineHeightAverage: document.querySelector('.bvi-line-height-average'),\n lineHeightBig: document.querySelector('.bvi-line-height-big'),\n letterSpacingNormal: document.querySelector('.bvi-letter-spacing-normal'),\n letterSpacingAverage: document.querySelector('.bvi-letter-spacing-average'),\n letterSpacingBig: document.querySelector('.bvi-letter-spacing-big'),\n fontFamilyArial: document.querySelector('.bvi-font-family-arial'),\n fontFamilyTimes: document.querySelector('.bvi-font-family-times'),\n builtElementsOn: document.querySelector('.bvi-built-elements-on'),\n builtElementsOff: document.querySelector('.bvi-built-elements-off'),\n reset: document.querySelector('.bvi-reset'),\n links: document.querySelectorAll('.bvi-link'),\n modal: document.querySelector('.bvi-modal')\n }\n\n const activeLink = element => {\n for (let sibling of element.parentNode.children) {\n sibling.classList.remove('active')\n }\n\n element.classList.add('active')\n }\n\n const click = (element, callback) => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n if (typeof callback === 'function') {\n callback(event)\n }\n })\n }\n\n const activeAll = () => {\n let links = document.querySelectorAll('.bvi-link')\n\n links.forEach(link => {\n link.classList.remove('active')\n })\n\n getObject(this._config, key => {\n if (key === 'theme') {\n let value = getCookie(key)\n document.querySelector(`.bvi-theme-${value}`).classList.add('active')\n }\n\n if (key === 'images') {\n let value = getCookie(key) === 'grayscale' ? 'grayscale' : stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-images-${value}`).classList.add('active')\n }\n\n if (key === 'speech') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-speech-${value}`).classList.add('active')\n }\n\n if (key === 'lineHeight') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-line-height-${value}`).classList.add('active')\n }\n\n if (key === 'letterSpacing') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-letter-spacing-${value}`).classList.add('active')\n }\n\n if (key === 'fontFamily') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-font-family-${value}`).classList.add('active')\n }\n\n if (key === 'builtElements') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-built-elements-${value}`).classList.add('active')\n }\n })\n }\n\n activeAll()\n\n // Font size\n click(elements.fontSizeMinus, () => {\n let size = parseFloat(getCookie('fontSize')) - 1\n\n if (size !== 0) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizeMinus')}`)\n activeLink(elements.fontSizeMinus)\n }\n })\n\n click(elements.fontSizePlus, () => {\n let size = parseFloat(getCookie('fontSize')) + 1\n\n if (size !== 40) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizePlus')}`)\n activeLink(elements.fontSizePlus)\n }\n })\n\n // Theme\n click(elements.themeWhite, () => {\n this._setAttrDataBviBody('theme', 'white')\n setCookie('theme', 'white')\n this._speech(`${this._i18n.v('siteColorBlackOnWhite')}`)\n activeLink(elements.themeWhite)\n })\n\n click(elements.themeBlack, () => {\n this._setAttrDataBviBody('theme', 'black')\n setCookie('theme', 'black')\n this._speech(`${this._i18n.v('siteColorWhiteOnBlack')}`)\n activeLink(elements.themeBlack)\n })\n\n click(elements.themeBlue, () => {\n this._setAttrDataBviBody('theme', 'blue')\n setCookie('theme', 'blue')\n this._speech(`${this._i18n.v('siteColorDarkBlueOnBlue')}`)\n activeLink(elements.themeBlue)\n })\n\n click(elements.themeBrown, () => {\n this._setAttrDataBviBody('theme', 'brown')\n setCookie('theme', 'brown')\n this._speech(`${this._i18n.v('siteColorBeigeBrown')}`)\n activeLink(elements.themeBrown)\n })\n\n click(elements.themeGreen, () => {\n this._setAttrDataBviBody('theme', 'green')\n setCookie('theme', 'green')\n this._speech(`${this._i18n.v('siteColorGreenOnDarkBrown')}`)\n activeLink(elements.themeGreen)\n })\n\n // Images\n click(elements.imagesOn, () => {\n this._setAttrDataBviBody('images', 'true')\n setCookie('images', 'true')\n this._speech(`${this._i18n.v('imagesOn')}`)\n activeLink(elements.imagesOn)\n })\n\n click(elements.imagesOff, () => {\n this._setAttrDataBviBody('images', 'false')\n setCookie('images', 'false')\n this._speech(`${this._i18n.v('imagesOFF')}`)\n activeLink(elements.imagesOff)\n })\n\n click(elements.imagesGrayscale, () => {\n this._setAttrDataBviBody('images', 'grayscale')\n setCookie('images', 'grayscale')\n this._speech(`${this._i18n.v('imagesGrayscale')}`)\n activeLink(elements.imagesGrayscale)\n })\n\n // Speech\n click(elements.speechOn, () => {\n this._setAttrDataBviBody('speech', 'true')\n setCookie('speech', 'true')\n this._speech(`${this._i18n.v('speechOn')}`)\n activeLink(elements.speechOn)\n this._speechPlayer()\n })\n\n click(elements.speechOff, () => {\n this._speech(`${this._i18n.v('speechOff')}`)\n this._setAttrDataBviBody('speech', 'false')\n setCookie('speech', 'false')\n activeLink(elements.speechOff)\n this._speechPlayer()\n })\n\n // Line height\n click(elements.lineHeightNormal, () => {\n this._setAttrDataBviBody('lineHeight', 'normal')\n setCookie('lineHeight', 'normal')\n this._speech(`${this._i18n.v('lineHeightNormal')}`)\n activeLink(elements.lineHeightNormal)\n })\n\n click(elements.lineHeightAverage, () => {\n this._setAttrDataBviBody('lineHeight', 'average')\n setCookie('lineHeight', 'average')\n this._speech(`${this._i18n.v('lineHeightAverage')}`)\n activeLink(elements.lineHeightAverage)\n })\n\n click(elements.lineHeightBig, () => {\n this._setAttrDataBviBody('lineHeight', 'big')\n setCookie('lineHeight', 'big')\n this._speech(`${this._i18n.v('lineHeightBig')}`)\n activeLink(elements.lineHeightBig)\n })\n\n // Letter spacing\n click(elements.letterSpacingNormal, () => {\n this._setAttrDataBviBody('letterSpacing', 'normal')\n setCookie('letterSpacing', 'normal')\n this._speech(`${this._i18n.v('LetterSpacingNormal')}`)\n activeLink(elements.letterSpacingNormal)\n })\n\n click(elements.letterSpacingAverage, () => {\n this._setAttrDataBviBody('letterSpacing', 'average')\n setCookie('letterSpacing', 'average')\n this._speech(`${this._i18n.v('LetterSpacingAverage')}`)\n activeLink(elements.letterSpacingAverage)\n })\n\n click(elements.letterSpacingBig, () => {\n this._setAttrDataBviBody('letterSpacing', 'big')\n setCookie('letterSpacing', 'big')\n this._speech(`${this._i18n.v('LetterSpacingBig')}`)\n activeLink(elements.letterSpacingBig)\n })\n\n // Font family\n click(elements.fontFamilyArial, () => {\n this._setAttrDataBviBody('fontFamily', 'arial')\n setCookie('fontFamily', 'arial')\n this._speech(`${this._i18n.v('fontArial')}`)\n activeLink(elements.fontFamilyArial)\n })\n\n click(elements.fontFamilyTimes, () => {\n this._setAttrDataBviBody('fontFamily', 'times')\n setCookie('fontFamily', 'times')\n this._speech(`${this._i18n.v('fontTimes')}`)\n activeLink(elements.fontFamilyTimes)\n })\n\n // Built elements\n click(elements.builtElementsOn, () => {\n this._setAttrDataBviBody('builtElements', 'true')\n setCookie('builtElements', 'true')\n this._speech(`${this._i18n.v('builtElementsOn')}`)\n activeLink(elements.builtElementsOn)\n })\n\n click(elements.builtElementsOff, () => {\n this._setAttrDataBviBody('builtElements', 'false')\n setCookie('builtElements', 'false')\n this._speech(`${this._i18n.v('builtElementsOFF')}`)\n activeLink(elements.builtElementsOff)\n })\n\n // Reset\n click(elements.reset, () => {\n this._speech(`${this._i18n.v('resetSettings')}`)\n getObject(this._config, key => {\n this._setAttrDataBviBody(key, this._config[key])\n setCookie(key, this._config[key])\n activeAll()\n })\n })\n\n getArray(elements.links, element => {\n click(element, event => {\n let target = event.target.getAttribute('data-bvi')\n\n if (target === 'close') {\n this._setAttrDataBviBody('panelActive', 'false')\n setCookie('panelActive', 'false')\n this._init()\n }\n\n if (target === 'modal') {\n document.body.style.overflow = 'hidden'\n document.body.classList.add('bvi-noscroll')\n elements.modal.classList.toggle('show')\n }\n\n if (target === 'modal-close') {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n\n if (target === 'panel-hide') {\n document.querySelector('.bvi-panel').classList.add('bvi-panel-hide')\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-hide')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-show')\n setCookie('panelHide', 'true')\n this._speech(`${this._i18n.v('panelHide')}`)\n }\n\n if (target === 'panel-show') {\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-show')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-hide')\n document.querySelector('.bvi-panel').classList.remove('bvi-panel-hide')\n setCookie('panelHide', 'false')\n this._speech(`${this._i18n.v('panelShow')}`)\n }\n })\n })\n\n click(elements.modal, event => {\n if (event.target.contains(elements.modal)) {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n })\n }\n\n _getPanel() {\n const scroll = () => {\n let scroll = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n\n if (stringToBoolean(getCookie('panelFixed'))) {\n if (scroll > 200) {\n document.querySelector('.bvi-panel').classList.add('bvi-fixed-top')\n } else {\n document.querySelector('.bvi-panel').classList.remove('bvi-fixed-top')\n }\n }\n }\n\n let panelHide = stringToBoolean(getCookie('panelHide')) ? ' bvi-panel-hide' : ''\n let linkHide = !stringToBoolean(getCookie('panelHide')) ? ' bvi-hide' : 'bvi-show'\n let html = `\n
\n
\n
\n
${this._i18n.t('fontSize')}
\n А-\n А+\n
\n
\n
${this._i18n.t('siteColors')}
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
${this._i18n.t('images')}
\n \n \n \n \n \n \n \n \n \n
\n
\n
${this._i18n.t('speech')}
\n \n \n \n \n \n \n
\n
\n
${this._i18n.t('settings')}
\n \n \n \n \n ${this._i18n.t('regularVersionOfTheSite')}\n \n \n \n \n
\n
\n
\n
\n
\n
\n
${this._i18n.t('settings')}
\n ×\n
\n
\n
\n \n \n
\n
${this._i18n.t('font')}
\n ${this._i18n.t('arial')}\n ${this._i18n.t('times')}\n
\n
\n
${this._i18n.t('builtElements')}
\n ${this._i18n.t('on')}\n ${this._i18n.t('off')}\n
\n
\n \n
\n \n
\n
\n
\n
`\n\n let link = `` +\n ''\n\n window.addEventListener('scroll', scroll)\n document.querySelector('.bvi-body').insertAdjacentHTML('beforebegin', html)\n document.querySelector('.bvi-body').insertAdjacentHTML('afterbegin', link)\n scroll()\n }\n\n _set() {\n document.body.classList.add('bvi-active')\n wrapInner(document.body, 'div', 'bvi-body')\n getObject(this._config, key => this._setAttrDataBviBody(key, getCookie(key)))\n getArray(this._elements, element => element.style.display = 'none')\n\n document.querySelectorAll('img')\n .forEach(element => {\n if (element.classList.contains('bvi-img')) {\n element.classList.remove('bvi-img')\n }\n })\n\n document.querySelectorAll('body *')\n .forEach(element => {\n if (element.classList.contains('bvi-background-image')) {\n element.classList.remove('bvi-background-image')\n }\n })\n }\n\n _remove() {\n let bviPanel = document.querySelector('.bvi-panel')\n let bviBody = document.querySelector('.bvi-body')\n let bviLinkFixedTop = document.querySelector('.bvi-link-fixed-top')\n\n if (bviPanel) {\n bviPanel.remove()\n }\n\n if (bviBody) {\n unwrap(bviBody)\n }\n\n if (bviLinkFixedTop) {\n bviLinkFixedTop.remove()\n }\n\n this._speech(`${this._i18n.v('panelOff')}`)\n\n document.body.classList.remove('bvi-active')\n\n getArray(this._elements, element => element.style.display = '')\n\n if (stringToBoolean(getCookie('reload'))) {\n document.location.reload()\n }\n\n getObject(this._config, key => {\n removeCookie(key)\n })\n\n this._speechPlayer()\n\n removeCookie('panelActive')\n }\n\n _images() {\n document.querySelectorAll('img').forEach(element => {\n if (!element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-img')\n }\n })\n\n document.querySelectorAll('.bvi-body *').forEach(element => {\n let style = getComputedStyle(element)\n if (style.backgroundImage !== 'none' && style.background !== 'none' && !element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-background-image')\n }\n })\n }\n\n _getConfig(config) {\n config = {...Default, ...config}\n let extended = {}\n\n for (let keyDefault in Default) {\n extended[keyDefault] = config[keyDefault]\n }\n\n checkConfig(extended, DefaultType, DefaultOptions)\n\n return extended\n }\n\n _setAttrDataBviBody(name = '', value = '') {\n document.querySelector('.bvi-body').setAttribute(`data-bvi-${name}`, value)\n }\n\n _speechPlayer() {\n let selectorSpeechText = document.querySelectorAll('.bvi-speech-text')\n let selectorSpeechLink = document.querySelectorAll('.bvi-speech-link')\n let selectorBviSpeech = document.querySelectorAll('.bvi-speech')\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n if (selectorBviSpeech) {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n\n selectorBviSpeech.forEach((speechDivBlock, index) => {\n let id = `bvi-speech-text-id-${index + 1}`\n let html = `\n `\n\n wrapInner(speechDivBlock, 'div', `bvi-speech-text ${id}`)\n speechDivBlock.insertAdjacentHTML('afterbegin', html)\n })\n\n let selectorPlay = document.querySelectorAll('.bvi-speech-play')\n let selectorPause = document.querySelectorAll('.bvi-speech-pause')\n let selectorResume = document.querySelectorAll('.bvi-speech-resume')\n let selectorStop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n if (typeof callback === 'function') {\n return callback(element, event)\n }\n }, false)\n })\n }\n\n el(selectorPlay, (element, event) => {\n let target = event.target\n let text = target.parentNode.nextElementSibling;\n let closest = event.target.closest('.bvi-speech-link')\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n\n this._speech(text.textContent, text, true);\n\n play.forEach(element => element.classList.remove('disabled'))\n pause.forEach(element => element.classList.add('disabled'))\n resume.forEach(element => element.classList.add('disabled'))\n stop.forEach(element => element.classList.add('disabled'))\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n closest.querySelector('.bvi-speech-stop').classList.remove('disabled')\n })\n\n el(selectorPause, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-resume').classList.remove('disabled')\n synth().pause()\n })\n\n el(selectorResume, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n synth().resume()\n })\n\n el(selectorStop, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.add('disabled')\n closest.querySelector('.bvi-speech-play').classList.remove('disabled')\n synth().cancel();\n })\n }\n } else {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n }\n }\n\n _speech(text, element, echo = false) {\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n synth().cancel()\n const getWordAt = (str, pos) => {\n str = String(str)\n pos = Number(pos) >>> 0\n\n let left = str.slice(0, pos + 1).search(/\\S+$/)\n let right = str.slice(pos).search(/\\s/)\n\n if (right < 0) {\n return str.slice(left)\n }\n return str.slice(left, right + pos)\n }\n\n let chunkLength = 120\n let patternRegex = new RegExp('^[\\\\s\\\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\\\s\\\\S]{1,' + chunkLength + '}$|^[\\\\s\\\\S]{1,' + chunkLength + '} ')\n let array = []\n let $text = text\n let voices = synth().getVoices()\n\n while ($text.length > 0) {\n array.push($text.match(patternRegex)[0])\n $text = $text.substring(array[array.length - 1].length)\n }\n\n array.forEach(getText => {\n let utter = new SpeechSynthesisUtterance(getText.trim())\n utter.volume = 1\n utter.rate = 1\n utter.pitch = 1\n utter.lang = this._config.lang\n\n for (let i = 0; i < voices.length; i++) {\n if (this._config.lang === 'ru-RU' && voices[i].name === 'Microsoft Pavel - Russian (Russia)') {\n utter.voice = voices[i]\n }\n\n if (this._config.lang === 'en-US' && voices[i].name === 'Microsoft Pavel - English (English)') {\n utter.voice = voices[i]\n }\n }\n\n if (echo) {\n utter.onboundary = event => {\n\n element.classList.add('bvi-highlighting')\n let world = getWordAt(event.utterance.text, event.charIndex)\n let textContent = element.textContent\n let term = world.replace(/(\\s+)/, '((<[^>]+>)*$1(<[^>]+>)*)')\n let pattern = new RegExp('(' + term + ')', 'gi')\n textContent = textContent.replace(pattern, '$1')\n textContent = textContent.replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\\/mark>)/, '$1$2$4')\n element.innerHTML = textContent\n }\n\n utter.onend = event => {\n element.classList.remove('bvi-highlighting')\n let textContent = element.textContent\n textContent = textContent.replace(/($1<\\/mark>)/, '$1')\n element.innerHTML = textContent\n }\n }\n\n synth().speak(utter)\n })\n }\n }\n}\n\nexport default Bvi\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): index.umd.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n/*import 'core-js/stable';*/\nimport 'regenerator-runtime/runtime'\nimport Bvi from './bvi'\n\nexport default { Bvi }\n"],"names":["runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","type","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","done","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","reverse","length","pop","iterable","iteratorMethod","isNaN","i","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","arr","item","prepend","argArr","Array","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","Element","Document","DocumentFragment","window","NodeList","HTMLCollection","toType","toString","match","toLowerCase","isElement","nodeType","checkConfig","config","configTypes","configOptions","expectedTypes","valueType","RegExp","test","expectedOptions","stringToBoolean","string","wrapInner","parent","wrapper","className","createElement","unwrap","child","removeChild","parentNode","replaceChild","getObject","callback","getArray","array","from","synth","speechSynthesis","setCookie","now","Date","time","getTime","setTime","cookie","toUTCString","location","host","getCookie","decodedCookie","decodeURIComponent","cookies","split","trim","indexOf","substring","removeCookie","lang","I18n","options","_config","Default","target","fontSize","theme","images","letterSpacing","lineHeight","speech","fontFamily","builtElements","panelFixed","panelHide","reload","DefaultType","DefaultOptions","Bvi","_getConfig","_elements","querySelectorAll","_i18n","_addEventListeners","_init","console","log","_set","_getPanel","_addEventListenersPanel","_images","_speechPlayer","setInterval","pending","play","pause","resume","el","elements","element","classList","remove","add","_remove","addEventListener","event","preventDefault","_speech","v","fontSizeMinus","querySelector","fontSizePlus","themeWhite","themeBlack","themeBlue","themeBrown","themeGreen","imagesOn","imagesOff","imagesGrayscale","speechOn","speechOff","lineHeightNormal","lineHeightAverage","lineHeightBig","letterSpacingNormal","letterSpacingAverage","letterSpacingBig","fontFamilyArial","fontFamilyTimes","builtElementsOn","builtElementsOff","links","modal","activeLink","children","sibling","click","activeAll","link","size","parseFloat","_setAttrDataBviBody","getAttribute","body","style","overflow","toggle","contains","scroll","pageYOffset","documentElement","scrollTop","linkHide","html","t","insertAdjacentHTML","display","bviPanel","bviBody","bviLinkFixedTop","getComputedStyle","backgroundImage","background","extended","keyDefault","setAttribute","selectorSpeechText","selectorSpeechLink","selectorBviSpeech","speechDivBlock","index","id","selectorPlay","selectorPause","selectorResume","selectorStop","text","nextElementSibling","closest","textContent","cancel","echo","getWordAt","str","pos","Number","left","search","right","chunkLength","patternRegex","Math","floor","$text","voices","getVoices","getText","utter","SpeechSynthesisUtterance","volume","rate","pitch","voice","onboundary","world","utterance","charIndex","term","replace","pattern","innerHTML","onend","speak"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"bvi.js","sources":["../../node_modules/regenerator-runtime/runtime.js","../../src/js/util/index.js","../../src/js/util/cookie.js","../../src/js/i18n.js","../../src/js/bvi.js","../../src/js/index.umd.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/index.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n(function (arr) {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('prepend')) {\n return\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend () {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment()\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)))\n })\n\n this.insertBefore(docFrag, this.firstChild)\n },\n })\n })\n})([Element.prototype, Document.prototype, DocumentFragment.prototype])\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach\n}\n\nif (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\n HTMLCollection.prototype.forEach = Array.prototype.forEach\n}\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst checkConfig = (config, configTypes, configOptions) => {\n Object.keys(configTypes).forEach(key => {\n const expectedTypes = configTypes[key]\n const value = config[key]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" предоставленный тип \"${valueType}\", ожидаемый тип \"${expectedTypes}\".`,\n )\n }\n })\n\n Object.keys(configOptions).forEach(key => {\n const expectedOptions = configOptions[key]\n const value = config[key]\n\n if (!new RegExp(expectedOptions).test(value)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" параметр \"${value}\", ожидаемый параметр \"${expectedOptions}\".`,\n )\n }\n })\n}\n\nconst plural = (number, text = ['пиксель', 'пекселя', 'пикселей']) => {\n if (number % 10 === 1 && number % 100 !== 11) {\n return `${number} ${text[0]}`\n } else if (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return `${number} ${text[1]}`\n } else {\n return `${number} ${text[2]}`\n }\n}\n\nconst stringToBoolean = string => {\n switch (string) {\n case 'on':\n case 'true':\n case '1':\n return true\n default:\n return false\n }\n}\n\nconst wrapInner = (parent, wrapper, className) => {\n if (typeof wrapper === 'string') {\n wrapper = document.createElement(wrapper)\n }\n\n parent.appendChild(wrapper).className = className\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild)\n }\n}\n\nconst unwrap = wrapper => {\n let docFrag = document.createDocumentFragment()\n\n if (!wrapper) return\n\n while (wrapper.firstChild) {\n let child = wrapper.removeChild(wrapper.firstChild)\n docFrag.appendChild(child)\n }\n\n wrapper.parentNode.replaceChild(docFrag, wrapper)\n}\n\nconst getObject = (object, callback) => {\n Object.keys(object).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst getArray = (array, callback) => {\n Array.from(array).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst inArray = (needle, haystack) => {\n let length = haystack.length\n\n for (let i = 0; i < length; i++) {\n if (haystack[i] === needle) {\n return true\n }\n }\n\n return false\n}\n\nconst synth = () => window.speechSynthesis\n\nconst synthSupportBrowser = () => {\n return 'speechSynthesis' in window\n}\n\nexport {\n plural,\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n synthSupportBrowser,\n inArray,\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/cookie.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst setCookie = function (name = '', value = '') {\n let now = new Date();\n let time = now.getTime();\n time += 24 * 60 * 60 * 1000;\n now.setTime(time);\n document.cookie = `bvi_${name}=${value},path=/,expires=${now.toUTCString()},domain=${location.host}`;\n};\n\nconst getCookie = function (name = '') {\n name = `bvi_${name}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let cookies = decodedCookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n let cookie = cookies[i].trim();\n\n if (cookie.indexOf(name) !== -1) {\n let options = cookie.split(\",\");\n return options[0].substring(name.length, options[0].length);\n }\n }\n};\n\nconst removeCookie = function (name = '') {\n document.cookie = `bvi_${name}=,path=/,expires=Thu, 01 Jan 1970 00:00:01 GMT,domain=${location.host}`;\n};\n\nexport {\n setCookie,\n getCookie,\n removeCookie,\n};\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): i18n.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst lang = {\n 'ru-RU': {\n 'text': {\n 'fontSize': 'Размер шрифта',\n 'siteColors': 'Цвета сайта',\n 'images': 'Изображения',\n 'speech': 'Синтез речи',\n 'settings': 'Настройки',\n 'regularVersionOfTheSite': 'Обычная версия сайта',\n 'letterSpacing': 'Межбуквенное расстояние',\n 'normal': 'Стандартный',\n 'average': 'Средний',\n 'big': 'Большой',\n 'lineHeight': 'Межстрочный интервал',\n 'font': 'Шрифт',\n 'arial': 'Без засечек',\n 'times': 'С засечками',\n 'builtElements': 'Встроенные элементы (Видео, карты и тд.)',\n 'on': 'Включить',\n 'off': 'Выключить',\n 'reset': 'Сбросить настройки',\n 'plural_0': 'пиксель',\n 'plural_1': 'пекселя',\n 'plural_2': 'пикселей',\n },\n 'voice': {\n 'fontSizePlus': 'Размер шрифта увели́чен',\n 'fontSizeMinus': 'Размер шрифта уме́ньшен',\n 'siteColorBlackOnWhite': 'Цвет сайта черным по белому',\n 'siteColorWhiteOnBlack': 'Цвет сайта белым по черному',\n 'siteColorDarkBlueOnBlue': 'Цвет сайта тёмно-синим по голубому',\n 'siteColorBeigeBrown': 'Цвет сайта кори́чневым по бе́жевому',\n 'siteColorGreenOnDarkBrown': 'Цвет сайта зеленым по тёмно-коричневому',\n 'imagesOn': 'Изображения включены',\n 'imagesOFF': 'Изображения выключены',\n 'imagesGrayscale': 'Изображения чёрно-белые',\n 'speechOn': 'Синтез речи включён',\n 'speechOff': 'Синтез речи вы́ключен',\n 'lineHeightNormal': 'Межстрочный интервал стандартный',\n 'lineHeightAverage': 'Межстрочный интервал средний',\n 'lineHeightBig': 'Межстрочный интервал большой',\n 'LetterSpacingNormal': 'Интервал между буквами стандартный',\n 'LetterSpacingAverage': 'Интервал между буквами средний',\n 'LetterSpacingBig': 'Интервал между буквами большой',\n 'fontArial': 'Шрифт без засечек',\n 'fontTimes': 'Шрифт с засечками',\n 'builtElementsOn': 'Встроенные элементы включены',\n 'builtElementsOFF': 'Встроенные элементы выключены',\n 'resetSettings': 'Установлены настройки по умолча́нию',\n 'panelShow': 'Панель открыта',\n 'panelHide': 'Панель скрыта',\n 'panelOn': 'Версия сайта для слабови́дящий',\n 'panelOff': 'Обычная версия сайта',\n }\n },\n 'en-US': {\n 'text': {\n 'fontSize': 'Font size',\n 'siteColors': 'Site colors',\n 'images': 'Images',\n 'speech': 'Speech synthesis',\n 'settings': 'Settings',\n 'regularVersionOfTheSite': 'Regular version Of The site',\n 'letterSpacing': 'Letter spacing',\n 'normal': 'Single',\n 'average': 'One and a half',\n 'big': 'Double',\n 'lineHeight': 'Line spacing',\n 'font':'Font',\n 'arial': 'Sans Serif - Arial',\n 'times': 'Serif - Times New Roman',\n 'builtElements': 'Include inline elements (Videos, maps, etc.)',\n 'on': 'Enable',\n 'off': 'Disabled',\n 'reset': 'Reset settings',\n 'plural_0': 'pixel',\n 'plural_1': 'pixels',\n 'plural_2': 'pixels',\n },\n 'voice': {\n 'fontSizePlus': 'Font size increased',\n 'fontSizeMinus': 'Font size reduced',\n 'siteColorBlackOnWhite': 'Site color black on white',\n 'siteColorWhiteOnBlack': 'Site color white on black',\n 'siteColorDarkBlueOnBlue': 'Site color dark blue on cyan',\n 'siteColorBeigeBrown': 'SiteColorBeigeBrown',\n 'siteColorGreenOnDarkBrown': 'Site color green on dark brown',\n 'imagesOn': 'Images enable',\n 'imagesOFF': 'Images disabled',\n 'imagesGrayscale': 'Images gray scale',\n 'speechOn': 'Synthesis speech enable',\n 'speechOff': 'Synthesis speech disabled',\n 'lineHeightNormal': 'Line spacing single',\n 'lineHeightAverage': 'Line spacing one and a half',\n 'lineHeightBig': 'Line spacing double',\n 'LetterSpacingNormal': 'Letter spacing single',\n 'LetterSpacingAverage': 'Letter spacing one and a half',\n 'LetterSpacingBig': 'Letter spacing letter double',\n 'fontArial': 'Sans Serif - Arial',\n 'fontTimes': 'Serif - Times New Roman',\n 'builtElementsOn': 'Include inline elements are enabled',\n 'builtElementsOFF': 'Include inline elements are disabled',\n 'resetSettings': 'Default settings have been set',\n 'panelShow': 'Panel show',\n 'panelHide': 'Panel hide',\n 'panelOn': 'Site version for visually impaired',\n 'panelOff': 'Regular version of the site',\n }\n }\n}\n\nclass I18n {\n constructor(options) {\n this._config = options\n }\n\n t(key) {\n return lang[this._config.lang]['text'][key]\n }\n\n v(key) {\n return lang[this._config.lang]['voice'][key]\n }\n}\n\nexport default I18n\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): bvi.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nimport {\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n} from './util'\n\nimport {\n setCookie,\n getCookie,\n removeCookie,\n} from './util/cookie'\nimport I18n from './i18n'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst Default = {\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n images: 'grayscale',\n letterSpacing: 'normal',\n lineHeight: 'normal',\n speech: true,\n fontFamily: 'arial',\n builtElements: false,\n panelFixed: true,\n panelHide: false,\n reload: false,\n lang: 'ru-RU',\n}\n\nconst DefaultType = {\n target: 'string',\n fontSize: 'number',\n theme: 'string',\n images: '(string|boolean)',\n letterSpacing: 'string',\n lineHeight: 'string',\n speech: 'boolean',\n fontFamily: 'string',\n builtElements: 'boolean',\n panelFixed: 'boolean',\n panelHide: 'boolean',\n reload: 'boolean',\n lang: 'string',\n}\n\nconst DefaultOptions = {\n target: '',\n fontSize: '(^[1-9]$|^[1-3][0-9]?$|^39$)',\n theme: '(white|black|blue|brown|green)',\n images: '(true|false|grayscale)',\n letterSpacing: '(normal|average|big)',\n lineHeight: '(normal|average|big)',\n speech: '(true|false)',\n fontFamily: '(arial|times)',\n builtElements: '(true|false)',\n panelFixed: '(true|false)',\n panelHide: '(true|false)',\n reload: '(true|false)',\n lang: '(ru-RU|en-US)',\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Bvi {\n constructor(options) {\n this._config = this._getConfig(options)\n this._elements = document.querySelectorAll(this._config.target)\n this._i18n = new I18n({\n lang: this._config.lang\n })\n\n this._addEventListeners()\n this._init()\n\n console.log('Bvi console: ready Button visually impaired v1.0.0')\n }\n\n // Private\n\n _init() {\n getObject(this._config, key => {\n if (typeof getCookie(key) === 'undefined') {\n removeCookie('panelActive')\n }\n })\n\n if (stringToBoolean(getCookie('panelActive'))) {\n this._set()\n this._getPanel()\n this._addEventListenersPanel()\n this._images()\n this._speechPlayer()\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n setInterval(() => {\n if (synth().pending === false) {\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n return callback(element)\n })\n }\n\n el(play, element => element.classList.remove('disabled'))\n el(pause, element => element.classList.add('disabled'))\n el(resume, element => element.classList.add('disabled'))\n el(stop, element => element.classList.add('disabled'))\n }\n }, 1000)\n }\n\n } else {\n this._remove()\n }\n }\n\n _addEventListeners() {\n if (!this._elements) {\n return false\n }\n\n this._elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n getObject(this._config, key => setCookie(key, this._config[key]))\n setCookie('panelActive', true)\n\n this._init()\n this._speech(`${this._i18n.v('panelOn')}`)\n })\n })\n\n }\n\n _addEventListenersPanel() {\n const elements = {\n fontSizeMinus: document.querySelector('.bvi-fontSize-minus'),\n fontSizePlus: document.querySelector('.bvi-fontSize-plus'),\n themeWhite: document.querySelector('.bvi-theme-white'),\n themeBlack: document.querySelector('.bvi-theme-black'),\n themeBlue: document.querySelector('.bvi-theme-blue'),\n themeBrown: document.querySelector('.bvi-theme-brown'),\n themeGreen: document.querySelector('.bvi-theme-green'),\n imagesOn: document.querySelector('.bvi-images-on'),\n imagesOff: document.querySelector('.bvi-images-off'),\n imagesGrayscale: document.querySelector('.bvi-images-grayscale'),\n speechOn: document.querySelector('.bvi-speech-on'),\n speechOff: document.querySelector('.bvi-speech-off'),\n lineHeightNormal: document.querySelector('.bvi-line-height-normal'),\n lineHeightAverage: document.querySelector('.bvi-line-height-average'),\n lineHeightBig: document.querySelector('.bvi-line-height-big'),\n letterSpacingNormal: document.querySelector('.bvi-letter-spacing-normal'),\n letterSpacingAverage: document.querySelector('.bvi-letter-spacing-average'),\n letterSpacingBig: document.querySelector('.bvi-letter-spacing-big'),\n fontFamilyArial: document.querySelector('.bvi-font-family-arial'),\n fontFamilyTimes: document.querySelector('.bvi-font-family-times'),\n builtElementsOn: document.querySelector('.bvi-built-elements-on'),\n builtElementsOff: document.querySelector('.bvi-built-elements-off'),\n reset: document.querySelector('.bvi-reset'),\n links: document.querySelectorAll('.bvi-link'),\n modal: document.querySelector('.bvi-modal')\n }\n\n const activeLink = element => {\n for (let sibling of element.parentNode.children) {\n sibling.classList.remove('active')\n }\n\n element.classList.add('active')\n }\n\n const click = (element, callback) => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n if (typeof callback === 'function') {\n callback(event)\n }\n })\n }\n\n const activeAll = () => {\n let links = document.querySelectorAll('.bvi-link')\n\n links.forEach(link => {\n link.classList.remove('active')\n })\n\n getObject(this._config, key => {\n if (key === 'theme') {\n let value = getCookie(key)\n document.querySelector(`.bvi-theme-${value}`).classList.add('active')\n }\n\n if (key === 'images') {\n let value = getCookie(key) === 'grayscale' ? 'grayscale' : stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-images-${value}`).classList.add('active')\n }\n\n if (key === 'speech') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-speech-${value}`).classList.add('active')\n }\n\n if (key === 'lineHeight') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-line-height-${value}`).classList.add('active')\n }\n\n if (key === 'letterSpacing') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-letter-spacing-${value}`).classList.add('active')\n }\n\n if (key === 'fontFamily') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-font-family-${value}`).classList.add('active')\n }\n\n if (key === 'builtElements') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-built-elements-${value}`).classList.add('active')\n }\n })\n }\n\n activeAll()\n\n // Font size\n click(elements.fontSizeMinus, () => {\n let size = parseFloat(getCookie('fontSize')) - 1\n\n if (size !== 0) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizeMinus')}`)\n activeLink(elements.fontSizeMinus)\n }\n })\n\n click(elements.fontSizePlus, () => {\n let size = parseFloat(getCookie('fontSize')) + 1\n\n if (size !== 40) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizePlus')}`)\n activeLink(elements.fontSizePlus)\n }\n })\n\n // Theme\n click(elements.themeWhite, () => {\n this._setAttrDataBviBody('theme', 'white')\n setCookie('theme', 'white')\n this._speech(`${this._i18n.v('siteColorBlackOnWhite')}`)\n activeLink(elements.themeWhite)\n })\n\n click(elements.themeBlack, () => {\n this._setAttrDataBviBody('theme', 'black')\n setCookie('theme', 'black')\n this._speech(`${this._i18n.v('siteColorWhiteOnBlack')}`)\n activeLink(elements.themeBlack)\n })\n\n click(elements.themeBlue, () => {\n this._setAttrDataBviBody('theme', 'blue')\n setCookie('theme', 'blue')\n this._speech(`${this._i18n.v('siteColorDarkBlueOnBlue')}`)\n activeLink(elements.themeBlue)\n })\n\n click(elements.themeBrown, () => {\n this._setAttrDataBviBody('theme', 'brown')\n setCookie('theme', 'brown')\n this._speech(`${this._i18n.v('siteColorBeigeBrown')}`)\n activeLink(elements.themeBrown)\n })\n\n click(elements.themeGreen, () => {\n this._setAttrDataBviBody('theme', 'green')\n setCookie('theme', 'green')\n this._speech(`${this._i18n.v('siteColorGreenOnDarkBrown')}`)\n activeLink(elements.themeGreen)\n })\n\n // Images\n click(elements.imagesOn, () => {\n this._setAttrDataBviBody('images', 'true')\n setCookie('images', 'true')\n this._speech(`${this._i18n.v('imagesOn')}`)\n activeLink(elements.imagesOn)\n })\n\n click(elements.imagesOff, () => {\n this._setAttrDataBviBody('images', 'false')\n setCookie('images', 'false')\n this._speech(`${this._i18n.v('imagesOFF')}`)\n activeLink(elements.imagesOff)\n })\n\n click(elements.imagesGrayscale, () => {\n this._setAttrDataBviBody('images', 'grayscale')\n setCookie('images', 'grayscale')\n this._speech(`${this._i18n.v('imagesGrayscale')}`)\n activeLink(elements.imagesGrayscale)\n })\n\n // Speech\n click(elements.speechOn, () => {\n this._setAttrDataBviBody('speech', 'true')\n setCookie('speech', 'true')\n this._speech(`${this._i18n.v('speechOn')}`)\n activeLink(elements.speechOn)\n this._speechPlayer()\n })\n\n click(elements.speechOff, () => {\n this._speech(`${this._i18n.v('speechOff')}`)\n this._setAttrDataBviBody('speech', 'false')\n setCookie('speech', 'false')\n activeLink(elements.speechOff)\n this._speechPlayer()\n })\n\n // Line height\n click(elements.lineHeightNormal, () => {\n this._setAttrDataBviBody('lineHeight', 'normal')\n setCookie('lineHeight', 'normal')\n this._speech(`${this._i18n.v('lineHeightNormal')}`)\n activeLink(elements.lineHeightNormal)\n })\n\n click(elements.lineHeightAverage, () => {\n this._setAttrDataBviBody('lineHeight', 'average')\n setCookie('lineHeight', 'average')\n this._speech(`${this._i18n.v('lineHeightAverage')}`)\n activeLink(elements.lineHeightAverage)\n })\n\n click(elements.lineHeightBig, () => {\n this._setAttrDataBviBody('lineHeight', 'big')\n setCookie('lineHeight', 'big')\n this._speech(`${this._i18n.v('lineHeightBig')}`)\n activeLink(elements.lineHeightBig)\n })\n\n // Letter spacing\n click(elements.letterSpacingNormal, () => {\n this._setAttrDataBviBody('letterSpacing', 'normal')\n setCookie('letterSpacing', 'normal')\n this._speech(`${this._i18n.v('LetterSpacingNormal')}`)\n activeLink(elements.letterSpacingNormal)\n })\n\n click(elements.letterSpacingAverage, () => {\n this._setAttrDataBviBody('letterSpacing', 'average')\n setCookie('letterSpacing', 'average')\n this._speech(`${this._i18n.v('LetterSpacingAverage')}`)\n activeLink(elements.letterSpacingAverage)\n })\n\n click(elements.letterSpacingBig, () => {\n this._setAttrDataBviBody('letterSpacing', 'big')\n setCookie('letterSpacing', 'big')\n this._speech(`${this._i18n.v('LetterSpacingBig')}`)\n activeLink(elements.letterSpacingBig)\n })\n\n // Font family\n click(elements.fontFamilyArial, () => {\n this._setAttrDataBviBody('fontFamily', 'arial')\n setCookie('fontFamily', 'arial')\n this._speech(`${this._i18n.v('fontArial')}`)\n activeLink(elements.fontFamilyArial)\n })\n\n click(elements.fontFamilyTimes, () => {\n this._setAttrDataBviBody('fontFamily', 'times')\n setCookie('fontFamily', 'times')\n this._speech(`${this._i18n.v('fontTimes')}`)\n activeLink(elements.fontFamilyTimes)\n })\n\n // Built elements\n click(elements.builtElementsOn, () => {\n this._setAttrDataBviBody('builtElements', 'true')\n setCookie('builtElements', 'true')\n this._speech(`${this._i18n.v('builtElementsOn')}`)\n activeLink(elements.builtElementsOn)\n })\n\n click(elements.builtElementsOff, () => {\n this._setAttrDataBviBody('builtElements', 'false')\n setCookie('builtElements', 'false')\n this._speech(`${this._i18n.v('builtElementsOFF')}`)\n activeLink(elements.builtElementsOff)\n })\n\n // Reset\n click(elements.reset, () => {\n this._speech(`${this._i18n.v('resetSettings')}`)\n getObject(this._config, key => {\n this._setAttrDataBviBody(key, this._config[key])\n setCookie(key, this._config[key])\n activeAll()\n })\n })\n\n getArray(elements.links, element => {\n click(element, event => {\n let target = event.target.getAttribute('data-bvi')\n\n if (target === 'close') {\n this._setAttrDataBviBody('panelActive', 'false')\n setCookie('panelActive', 'false')\n this._init()\n }\n\n if (target === 'modal') {\n document.body.style.overflow = 'hidden'\n document.body.classList.add('bvi-noscroll')\n elements.modal.classList.toggle('show')\n }\n\n if (target === 'modal-close') {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n\n if (target === 'panel-hide') {\n document.querySelector('.bvi-panel').classList.add('bvi-panel-hide')\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-hide')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-show')\n setCookie('panelHide', 'true')\n this._speech(`${this._i18n.v('panelHide')}`)\n }\n\n if (target === 'panel-show') {\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-show')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-hide')\n document.querySelector('.bvi-panel').classList.remove('bvi-panel-hide')\n setCookie('panelHide', 'false')\n this._speech(`${this._i18n.v('panelShow')}`)\n }\n })\n })\n\n click(elements.modal, event => {\n if (event.target.contains(elements.modal)) {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n })\n }\n\n _getPanel() {\n const scroll = () => {\n let scroll = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n\n if (stringToBoolean(getCookie('panelFixed'))) {\n if (scroll > 200) {\n document.querySelector('.bvi-panel').classList.add('bvi-fixed-top')\n } else {\n document.querySelector('.bvi-panel').classList.remove('bvi-fixed-top')\n }\n }\n }\n\n let panelHide = stringToBoolean(getCookie('panelHide')) ? ' bvi-panel-hide' : ''\n let linkHide = !stringToBoolean(getCookie('panelHide')) ? ' bvi-hide' : 'bvi-show'\n let html = `\n
\n
\n
\n
${this._i18n.t('fontSize')}
\n А-\n А+\n
\n
\n
${this._i18n.t('siteColors')}
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
${this._i18n.t('images')}
\n \n \n \n \n \n \n \n \n \n
\n
\n
${this._i18n.t('speech')}
\n \n \n \n \n \n \n
\n
\n
${this._i18n.t('settings')}
\n \n \n \n \n ${this._i18n.t('regularVersionOfTheSite')}\n \n \n \n \n
\n
\n
\n
\n
\n
\n
${this._i18n.t('settings')}
\n ×\n
\n
\n
\n \n \n
\n
${this._i18n.t('font')}
\n ${this._i18n.t('arial')}\n ${this._i18n.t('times')}\n
\n
\n
${this._i18n.t('builtElements')}
\n ${this._i18n.t('on')}\n ${this._i18n.t('off')}\n
\n
\n \n
\n \n
\n
\n
\n
`\n\n let link = `` +\n ''\n\n window.addEventListener('scroll', scroll)\n document.querySelector('.bvi-body').insertAdjacentHTML('beforebegin', html)\n document.querySelector('.bvi-body').insertAdjacentHTML('afterbegin', link)\n scroll()\n }\n\n _set() {\n document.body.classList.add('bvi-active')\n wrapInner(document.body, 'div', 'bvi-body')\n getObject(this._config, key => this._setAttrDataBviBody(key, getCookie(key)))\n getArray(this._elements, element => element.style.display = 'none')\n\n document.querySelectorAll('img')\n .forEach(element => {\n if (element.classList.contains('bvi-img')) {\n element.classList.remove('bvi-img')\n }\n })\n\n document.querySelectorAll('body *')\n .forEach(element => {\n if (element.classList.contains('bvi-background-image')) {\n element.classList.remove('bvi-background-image')\n }\n })\n }\n\n _remove() {\n let bviPanel = document.querySelector('.bvi-panel')\n let bviBody = document.querySelector('.bvi-body')\n let bviLinkFixedTop = document.querySelector('.bvi-link-fixed-top')\n\n if (bviPanel) {\n bviPanel.remove()\n }\n\n if (bviBody) {\n unwrap(bviBody)\n }\n\n if (bviLinkFixedTop) {\n bviLinkFixedTop.remove()\n }\n\n this._speech(`${this._i18n.v('panelOff')}`)\n\n document.body.classList.remove('bvi-active')\n\n getArray(this._elements, element => element.style.display = '')\n\n if (stringToBoolean(getCookie('reload'))) {\n document.location.reload()\n }\n\n getObject(this._config, key => {\n removeCookie(key)\n })\n\n this._speechPlayer()\n\n removeCookie('panelActive')\n }\n\n _images() {\n document.querySelectorAll('img').forEach(element => {\n if (!element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-img')\n }\n })\n\n document.querySelectorAll('.bvi-body *').forEach(element => {\n let style = getComputedStyle(element)\n if (style.backgroundImage !== 'none' && style.background !== 'none' && !element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-background-image')\n }\n })\n }\n\n _getConfig(config) {\n config = {...Default, ...config}\n let extended = {}\n\n for (let keyDefault in Default) {\n extended[keyDefault] = config[keyDefault]\n }\n\n checkConfig(extended, DefaultType, DefaultOptions)\n\n return extended\n }\n\n _setAttrDataBviBody(name = '', value = '') {\n document.querySelector('.bvi-body').setAttribute(`data-bvi-${name}`, value)\n }\n\n _speechPlayer() {\n let selectorSpeechText = document.querySelectorAll('.bvi-speech-text')\n let selectorSpeechLink = document.querySelectorAll('.bvi-speech-link')\n let selectorBviSpeech = document.querySelectorAll('.bvi-speech')\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n if (selectorBviSpeech) {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n\n selectorBviSpeech.forEach((speechDivBlock, index) => {\n let id = `bvi-speech-text-id-${index + 1}`\n let html = `\n `\n\n wrapInner(speechDivBlock, 'div', `bvi-speech-text ${id}`)\n speechDivBlock.insertAdjacentHTML('afterbegin', html)\n })\n\n let selectorPlay = document.querySelectorAll('.bvi-speech-play')\n let selectorPause = document.querySelectorAll('.bvi-speech-pause')\n let selectorResume = document.querySelectorAll('.bvi-speech-resume')\n let selectorStop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n if (typeof callback === 'function') {\n return callback(element, event)\n }\n }, false)\n })\n }\n\n el(selectorPlay, (element, event) => {\n let target = event.target\n let text = target.parentNode.nextElementSibling;\n let closest = event.target.closest('.bvi-speech-link')\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n\n this._speech(text.textContent, text, true);\n\n play.forEach(element => element.classList.remove('disabled'))\n pause.forEach(element => element.classList.add('disabled'))\n resume.forEach(element => element.classList.add('disabled'))\n stop.forEach(element => element.classList.add('disabled'))\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n closest.querySelector('.bvi-speech-stop').classList.remove('disabled')\n })\n\n el(selectorPause, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-resume').classList.remove('disabled')\n synth().pause()\n })\n\n el(selectorResume, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n synth().resume()\n })\n\n el(selectorStop, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.add('disabled')\n closest.querySelector('.bvi-speech-play').classList.remove('disabled')\n synth().cancel();\n })\n }\n } else {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n }\n }\n\n _speech(text, element, echo = false) {\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n synth().cancel()\n const getWordAt = (str, pos) => {\n str = String(str)\n pos = Number(pos) >>> 0\n\n let left = str.slice(0, pos + 1).search(/\\S+$/)\n let right = str.slice(pos).search(/\\s/)\n\n if (right < 0) {\n return str.slice(left)\n }\n return str.slice(left, right + pos)\n }\n\n let chunkLength = 120\n let patternRegex = new RegExp('^[\\\\s\\\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\\\s\\\\S]{1,' + chunkLength + '}$|^[\\\\s\\\\S]{1,' + chunkLength + '} ')\n let array = []\n let $text = text\n let voices = synth().getVoices()\n\n while ($text.length > 0) {\n array.push($text.match(patternRegex)[0])\n $text = $text.substring(array[array.length - 1].length)\n }\n\n array.forEach(getText => {\n let utter = new SpeechSynthesisUtterance(getText.trim())\n utter.volume = 1\n utter.rate = 1\n utter.pitch = 1\n utter.lang = this._config.lang\n\n for (let i = 0; i < voices.length; i++) {\n if (this._config.lang === 'ru-RU' && voices[i].name === 'Microsoft Pavel - Russian (Russia)') {\n utter.voice = voices[i]\n }\n\n if (this._config.lang === 'en-US' && voices[i].name === 'Microsoft Pavel - English (English)') {\n utter.voice = voices[i]\n }\n }\n\n if (echo) {\n utter.onboundary = event => {\n\n element.classList.add('bvi-highlighting')\n let world = getWordAt(event.utterance.text, event.charIndex)\n let textContent = element.textContent\n let term = world.replace(/(\\s+)/, '((<[^>]+>)*$1(<[^>]+>)*)')\n let pattern = new RegExp('(' + term + ')', 'gi')\n textContent = textContent.replace(pattern, '$1')\n textContent = textContent.replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\\/mark>)/, '$1$2$4')\n element.innerHTML = textContent\n }\n\n utter.onend = event => {\n element.classList.remove('bvi-highlighting')\n let textContent = element.textContent\n textContent = textContent.replace(/($1<\\/mark>)/, '$1')\n element.innerHTML = textContent\n }\n }\n\n synth().speak(utter)\n })\n }\n }\n}\n\nexport default Bvi\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): index.umd.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n/*import 'core-js/stable';*/\nimport 'regenerator-runtime/runtime'\nimport Bvi from './bvi'\n\nexport default { Bvi }\n"],"names":["undefined","arr","forEach","item","hasOwnProperty","Object","defineProperty","configurable","enumerable","writable","value","prepend","argArr","Array","prototype","slice","call","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","Element","Document","DocumentFragment","window","NodeList","HTMLCollection","toType","obj","toString","match","toLowerCase","isElement","nodeType","checkConfig","config","configTypes","configOptions","keys","key","expectedTypes","valueType","RegExp","test","TypeError","expectedOptions","stringToBoolean","string","wrapInner","parent","wrapper","className","createElement","unwrap","child","removeChild","parentNode","replaceChild","getObject","object","callback","getArray","array","from","synth","speechSynthesis","setCookie","name","now","Date","time","getTime","setTime","cookie","toUTCString","location","host","getCookie","decodedCookie","decodeURIComponent","cookies","split","i","length","trim","indexOf","options","substring","removeCookie","lang","I18n","_config","Default","target","fontSize","theme","images","letterSpacing","lineHeight","speech","fontFamily","builtElements","panelFixed","panelHide","reload","DefaultType","DefaultOptions","Bvi","_getConfig","_elements","querySelectorAll","_i18n","_addEventListeners","_init","console","log","_set","_getPanel","_addEventListenersPanel","_images","_speechPlayer","setInterval","pending","play","pause","resume","stop","el","elements","element","classList","remove","add","_remove","addEventListener","event","preventDefault","_speech","v","fontSizeMinus","querySelector","fontSizePlus","themeWhite","themeBlack","themeBlue","themeBrown","themeGreen","imagesOn","imagesOff","imagesGrayscale","speechOn","speechOff","lineHeightNormal","lineHeightAverage","lineHeightBig","letterSpacingNormal","letterSpacingAverage","letterSpacingBig","fontFamilyArial","fontFamilyTimes","builtElementsOn","builtElementsOff","reset","links","modal","activeLink","children","sibling","click","activeAll","link","size","parseFloat","_setAttrDataBviBody","getAttribute","body","style","overflow","toggle","contains","scroll","pageYOffset","documentElement","scrollTop","linkHide","html","t","insertAdjacentHTML","display","bviPanel","bviBody","bviLinkFixedTop","getComputedStyle","backgroundImage","background","extended","keyDefault","setAttribute","selectorSpeechText","selectorSpeechLink","selectorBviSpeech","speechDivBlock","index","id","selectorPlay","selectorPause","selectorResume","selectorStop","text","nextElementSibling","closest","textContent","cancel","echo","getWordAt","str","pos","Number","left","search","right","chunkLength","patternRegex","Math","floor","$text","voices","getVoices","push","getText","utter","SpeechSynthesisUtterance","volume","rate","pitch","voice","onboundary","world","utterance","charIndex","term","replace","pattern","innerHTML","onend","speak"],"mappings":"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"} \ No newline at end of file diff --git a/dist/js/bvi.min.js b/dist/js/bvi.min.js index 58e9d48..b5afd4a 100644 --- a/dist/js/bvi.min.js +++ b/dist/js/bvi.min.js @@ -1,7 +1,7 @@ /*! * Button visually impaired - v1.0.0 https://bvi.isvek.ru - * Copyright 2014-2021 Oleg Korotenko . + * Copyright 2014-2022 Oleg Korotenko . * Licensed MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md) */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).isvek=t()}(this,(function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=0;--o){var a=this.tryEntries[o],c=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(l&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;A(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:x(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),b}},e}({});try{regeneratorRuntime=t}catch(e){"object"===("undefined"==typeof globalThis?"undefined":n(globalThis))?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(),[Element.prototype,Document.prototype,DocumentFragment.prototype].forEach((function(e){e.hasOwnProperty("prepend")||Object.defineProperty(e,"prepend",{configurable:!0,enumerable:!0,writable:!0,value:function(){var e=Array.prototype.slice.call(arguments),t=document.createDocumentFragment();e.forEach((function(e){var n=e instanceof Node;t.appendChild(n?e:document.createTextNode(String(e)))})),this.insertBefore(t,this.firstChild)}})})),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach);var l=function(e){switch(e){case"on":case"true":case"1":return!0;default:return!1}},s=function(e,t,n){for("string"==typeof t&&(t=document.createElement(t)),e.appendChild(t).className=n;e.firstChild!==t;)t.appendChild(e.firstChild)},u=function(e){var t=document.createDocumentFragment();if(e){for(;e.firstChild;){var n=e.removeChild(e.firstChild);t.appendChild(n)}e.parentNode.replaceChild(t,e)}},v=function(e,t){Object.keys(e).forEach((function(e){"function"==typeof t&&t(e)}))},f=function(e,t){Array.from(e).forEach((function(e){"function"==typeof t&&t(e)}))},h=function(){return window.speechSynthesis},d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=new Date,i=n.getTime();i+=864e5,n.setTime(i),document.cookie="bvi_".concat(e,"=").concat(t,";path=/;expires=").concat(n.toUTCString(),";domain=").concat(location.host)},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";e="bvi_".concat(e,"=");for(var t=decodeURIComponent(document.cookie),n=t.split(";"),i=0;i0&&void 0!==arguments[0]?arguments[0]:"";document.cookie="bvi_".concat(e,"=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=").concat(location.host)},g={"ru-RU":{text:{fontSize:"Размер шрифта",siteColors:"Цвета сайта",images:"Изображения",speech:"Синтез речи",settings:"Настройки",regularVersionOfTheSite:"Обычная версия сайта",letterSpacing:"Межбуквенное расстояние",normal:"Стандартный",average:"Средний",big:"Большой",lineHeight:"Межстрочный интервал",font:"Шрифт",arial:"Без засечек",times:"С засечками",builtElements:"Встроенные элементы (Видео, карты и тд.)",on:"Включить",off:"Выключить",reset:"Сбросить настройки",plural_0:"пиксель",plural_1:"пекселя",plural_2:"пикселей"},voice:{fontSizePlus:"Размер шрифта увели́чен",fontSizeMinus:"Размер шрифта уме́ньшен",siteColorBlackOnWhite:"Цвет сайта черным по белому",siteColorWhiteOnBlack:"Цвет сайта белым по черному",siteColorDarkBlueOnBlue:"Цвет сайта тёмно-синим по голубому",siteColorBeigeBrown:"Цвет сайта кори́чневым по бе́жевому",siteColorGreenOnDarkBrown:"Цвет сайта зеленым по тёмно-коричневому",imagesOn:"Изображения включены",imagesOFF:"Изображения выключены",imagesGrayscale:"Изображения чёрно-белые",speechOn:"Синтез речи включён",speechOff:"Синтез речи вы́ключен",lineHeightNormal:"Межстрочный интервал стандартный",lineHeightAverage:"Межстрочный интервал средний",lineHeightBig:"Межстрочный интервал большой",LetterSpacingNormal:"Интервал между буквами стандартный",LetterSpacingAverage:"Интервал между буквами средний",LetterSpacingBig:"Интервал между буквами большой",fontArial:"Шрифт без засечек",fontTimes:"Шрифт с засечками",builtElementsOn:"Встроенные элементы включены",builtElementsOFF:"Встроенные элементы выключены",resetSettings:"Установлены настройки по умолча́нию",panelShow:"Панель открыта",panelHide:"Панель скрыта",panelOn:"Версия сайта для слабови́дящий",panelOff:"Обычная версия сайта"}},"en-US":{text:{fontSize:"Font size",siteColors:"Site colors",images:"Images",speech:"Speech synthesis",settings:"Settings",regularVersionOfTheSite:"Regular version Of The site",letterSpacing:"Letter spacing",normal:"Single",average:"One and a half",big:"Double",lineHeight:"Line spacing",font:"Font",arial:"Sans Serif - Arial",times:"Serif - Times New Roman",builtElements:"Include inline elements (Videos, maps, etc.)",on:"Enable",off:"Disabled",reset:"Reset settings",plural_0:"pixel",plural_1:"pixels",plural_2:"pixels"},voice:{fontSizePlus:"Font size increased",fontSizeMinus:"Font size reduced",siteColorBlackOnWhite:"Site color black on white",siteColorWhiteOnBlack:"Site color white on black",siteColorDarkBlueOnBlue:"Site color dark blue on cyan",siteColorBeigeBrown:"SiteColorBeigeBrown",siteColorGreenOnDarkBrown:"Site color green on dark brown",imagesOn:"Images enable",imagesOFF:"Images disabled",imagesGrayscale:"Images gray scale",speechOn:"Synthesis speech enable",speechOff:"Synthesis speech disabled",lineHeightNormal:"Line spacing single",lineHeightAverage:"Line spacing one and a half",lineHeightBig:"Line spacing double",LetterSpacingNormal:"Letter spacing single",LetterSpacingAverage:"Letter spacing one and a half",LetterSpacingBig:"Letter spacing letter double",fontArial:"Sans Serif - Arial",fontTimes:"Serif - Times New Roman",builtElementsOn:"Include inline elements are enabled",builtElementsOFF:"Include inline elements are disabled",resetSettings:"Default settings have been set",panelShow:"Panel show",panelHide:"Panel hide",panelOn:"Site version for visually impaired",panelOff:"Regular version of the site"}}},p=function(){function e(t){i(this,e),this._config=t}return o(e,[{key:"t",value:function(e){return g[this._config.lang].text[e]}},{key:"v",value:function(e){return g[this._config.lang].voice[e]}}]),e}(),y={target:".bvi-open",fontSize:16,theme:"white",images:"grayscale",letterSpacing:"normal",lineHeight:"normal",speech:!0,fontFamily:"arial",builtElements:!1,panelFixed:!0,panelHide:!1,reload:!1,lang:"ru-RU"},S={target:"string",fontSize:"number",theme:"string",images:"(string|boolean)",letterSpacing:"string",lineHeight:"string",speech:"boolean",fontFamily:"string",builtElements:"boolean",panelFixed:"boolean",panelHide:"boolean",reload:"boolean",lang:"string"},_={target:"",fontSize:"(^[1-9]$|^[1-3][0-9]?$|^39$)",theme:"(white|black|blue|brown|green)",images:"(true|false|grayscale)",letterSpacing:"(normal|average|big)",lineHeight:"(normal|average|big)",speech:"(true|false)",fontFamily:"(arial|times)",builtElements:"(true|false)",panelFixed:"(true|false)",panelHide:"(true|false)",reload:"(true|false)",lang:"(ru-RU|en-US)"};return{Bvi:function(){function e(t){i(this,e),this._config=this._getConfig(t),this._elements=document.querySelectorAll(this._config.target),this._i18n=new p({lang:this._config.lang}),this._addEventListeners(),this._init(),console.log("Bvi console: ready Button visually impaired v1.0.0")}return o(e,[{key:"_init",value:function(){v(this._config,(function(e){void 0===m(e)&&b("panelActive")})),l(m("panelActive"))?(this._set(),this._getPanel(),this._addEventListenersPanel(),this._images(),this._speechPlayer(),"speechSynthesis"in window&&l(m("speech"))&&setInterval((function(){if(!1===h().pending){var e=document.querySelectorAll(".bvi-speech-play"),t=document.querySelectorAll(".bvi-speech-pause"),n=document.querySelectorAll(".bvi-speech-resume"),i=document.querySelectorAll(".bvi-speech-stop"),r=function(e,t){e.forEach((function(e){return t(e)}))};r(e,(function(e){return e.classList.remove("disabled")})),r(t,(function(e){return e.classList.add("disabled")})),r(n,(function(e){return e.classList.add("disabled")})),r(i,(function(e){return e.classList.add("disabled")}))}}),1e3)):this._remove()}},{key:"_addEventListeners",value:function(){var e=this;if(!this._elements)return!1;this._elements.forEach((function(t){t.addEventListener("click",(function(t){t.preventDefault(),v(e._config,(function(t){return d(t,e._config[t])})),d("panelActive",!0),e._init(),e._speech("".concat(e._i18n.v("panelOn")))}))}))}},{key:"_addEventListenersPanel",value:function(){var e=this,t={fontSizeMinus:document.querySelector(".bvi-fontSize-minus"),fontSizePlus:document.querySelector(".bvi-fontSize-plus"),themeWhite:document.querySelector(".bvi-theme-white"),themeBlack:document.querySelector(".bvi-theme-black"),themeBlue:document.querySelector(".bvi-theme-blue"),themeBrown:document.querySelector(".bvi-theme-brown"),themeGreen:document.querySelector(".bvi-theme-green"),imagesOn:document.querySelector(".bvi-images-on"),imagesOff:document.querySelector(".bvi-images-off"),imagesGrayscale:document.querySelector(".bvi-images-grayscale"),speechOn:document.querySelector(".bvi-speech-on"),speechOff:document.querySelector(".bvi-speech-off"),lineHeightNormal:document.querySelector(".bvi-line-height-normal"),lineHeightAverage:document.querySelector(".bvi-line-height-average"),lineHeightBig:document.querySelector(".bvi-line-height-big"),letterSpacingNormal:document.querySelector(".bvi-letter-spacing-normal"),letterSpacingAverage:document.querySelector(".bvi-letter-spacing-average"),letterSpacingBig:document.querySelector(".bvi-letter-spacing-big"),fontFamilyArial:document.querySelector(".bvi-font-family-arial"),fontFamilyTimes:document.querySelector(".bvi-font-family-times"),builtElementsOn:document.querySelector(".bvi-built-elements-on"),builtElementsOff:document.querySelector(".bvi-built-elements-off"),reset:document.querySelector(".bvi-reset"),links:document.querySelectorAll(".bvi-link"),modal:document.querySelector(".bvi-modal")},n=function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw o}}}}(e.parentNode.children);try{for(n.s();!(t=n.n()).done;)t.value.classList.remove("active")}catch(e){n.e(e)}finally{n.f()}e.classList.add("active")},i=function(e,t){e.addEventListener("click",(function(e){e.preventDefault(),"function"==typeof t&&t(e)}))},r=function(){document.querySelectorAll(".bvi-link").forEach((function(e){e.classList.remove("active")})),v(e._config,(function(e){if("theme"===e){var t=m(e);document.querySelector(".bvi-theme-".concat(t)).classList.add("active")}if("images"===e){var n="grayscale"===m(e)?"grayscale":l(m(e))?"on":"off";document.querySelector(".bvi-images-".concat(n)).classList.add("active")}if("speech"===e){var i=l(m(e))?"on":"off";document.querySelector(".bvi-speech-".concat(i)).classList.add("active")}if("lineHeight"===e){var r=m(e);document.querySelector(".bvi-line-height-".concat(r)).classList.add("active")}if("letterSpacing"===e){var o=m(e);document.querySelector(".bvi-letter-spacing-".concat(o)).classList.add("active")}if("fontFamily"===e){var a=m(e);document.querySelector(".bvi-font-family-".concat(a)).classList.add("active")}if("builtElements"===e){var c=l(m(e))?"on":"off";document.querySelector(".bvi-built-elements-".concat(c)).classList.add("active")}}))};r(),i(t.fontSizeMinus,(function(){var i=parseFloat(m("fontSize"))-1;0!==i&&(e._setAttrDataBviBody("fontSize",i),d("fontSize",i),e._speech("".concat(e._i18n.v("fontSizeMinus"))),n(t.fontSizeMinus))})),i(t.fontSizePlus,(function(){var i=parseFloat(m("fontSize"))+1;40!==i&&(e._setAttrDataBviBody("fontSize",i),d("fontSize",i),e._speech("".concat(e._i18n.v("fontSizePlus"))),n(t.fontSizePlus))})),i(t.themeWhite,(function(){e._setAttrDataBviBody("theme","white"),d("theme","white"),e._speech("".concat(e._i18n.v("siteColorBlackOnWhite"))),n(t.themeWhite)})),i(t.themeBlack,(function(){e._setAttrDataBviBody("theme","black"),d("theme","black"),e._speech("".concat(e._i18n.v("siteColorWhiteOnBlack"))),n(t.themeBlack)})),i(t.themeBlue,(function(){e._setAttrDataBviBody("theme","blue"),d("theme","blue"),e._speech("".concat(e._i18n.v("siteColorDarkBlueOnBlue"))),n(t.themeBlue)})),i(t.themeBrown,(function(){e._setAttrDataBviBody("theme","brown"),d("theme","brown"),e._speech("".concat(e._i18n.v("siteColorBeigeBrown"))),n(t.themeBrown)})),i(t.themeGreen,(function(){e._setAttrDataBviBody("theme","green"),d("theme","green"),e._speech("".concat(e._i18n.v("siteColorGreenOnDarkBrown"))),n(t.themeGreen)})),i(t.imagesOn,(function(){e._setAttrDataBviBody("images","true"),d("images","true"),e._speech("".concat(e._i18n.v("imagesOn"))),n(t.imagesOn)})),i(t.imagesOff,(function(){e._setAttrDataBviBody("images","false"),d("images","false"),e._speech("".concat(e._i18n.v("imagesOFF"))),n(t.imagesOff)})),i(t.imagesGrayscale,(function(){e._setAttrDataBviBody("images","grayscale"),d("images","grayscale"),e._speech("".concat(e._i18n.v("imagesGrayscale"))),n(t.imagesGrayscale)})),i(t.speechOn,(function(){e._setAttrDataBviBody("speech","true"),d("speech","true"),e._speech("".concat(e._i18n.v("speechOn"))),n(t.speechOn),e._speechPlayer()})),i(t.speechOff,(function(){e._speech("".concat(e._i18n.v("speechOff"))),e._setAttrDataBviBody("speech","false"),d("speech","false"),n(t.speechOff),e._speechPlayer()})),i(t.lineHeightNormal,(function(){e._setAttrDataBviBody("lineHeight","normal"),d("lineHeight","normal"),e._speech("".concat(e._i18n.v("lineHeightNormal"))),n(t.lineHeightNormal)})),i(t.lineHeightAverage,(function(){e._setAttrDataBviBody("lineHeight","average"),d("lineHeight","average"),e._speech("".concat(e._i18n.v("lineHeightAverage"))),n(t.lineHeightAverage)})),i(t.lineHeightBig,(function(){e._setAttrDataBviBody("lineHeight","big"),d("lineHeight","big"),e._speech("".concat(e._i18n.v("lineHeightBig"))),n(t.lineHeightBig)})),i(t.letterSpacingNormal,(function(){e._setAttrDataBviBody("letterSpacing","normal"),d("letterSpacing","normal"),e._speech("".concat(e._i18n.v("LetterSpacingNormal"))),n(t.letterSpacingNormal)})),i(t.letterSpacingAverage,(function(){e._setAttrDataBviBody("letterSpacing","average"),d("letterSpacing","average"),e._speech("".concat(e._i18n.v("LetterSpacingAverage"))),n(t.letterSpacingAverage)})),i(t.letterSpacingBig,(function(){e._setAttrDataBviBody("letterSpacing","big"),d("letterSpacing","big"),e._speech("".concat(e._i18n.v("LetterSpacingBig"))),n(t.letterSpacingBig)})),i(t.fontFamilyArial,(function(){e._setAttrDataBviBody("fontFamily","arial"),d("fontFamily","arial"),e._speech("".concat(e._i18n.v("fontArial"))),n(t.fontFamilyArial)})),i(t.fontFamilyTimes,(function(){e._setAttrDataBviBody("fontFamily","times"),d("fontFamily","times"),e._speech("".concat(e._i18n.v("fontTimes"))),n(t.fontFamilyTimes)})),i(t.builtElementsOn,(function(){e._setAttrDataBviBody("builtElements","true"),d("builtElements","true"),e._speech("".concat(e._i18n.v("builtElementsOn"))),n(t.builtElementsOn)})),i(t.builtElementsOff,(function(){e._setAttrDataBviBody("builtElements","false"),d("builtElements","false"),e._speech("".concat(e._i18n.v("builtElementsOFF"))),n(t.builtElementsOff)})),i(t.reset,(function(){e._speech("".concat(e._i18n.v("resetSettings"))),v(e._config,(function(t){e._setAttrDataBviBody(t,e._config[t]),d(t,e._config[t]),r()}))})),f(t.links,(function(n){i(n,(function(n){var i=n.target.getAttribute("data-bvi");"close"===i&&(e._setAttrDataBviBody("panelActive","false"),d("panelActive","false"),e._init()),"modal"===i&&(document.body.style.overflow="hidden",document.body.classList.add("bvi-noscroll"),t.modal.classList.toggle("show")),"modal-close"===i&&(document.body.classList.remove("bvi-noscroll"),document.body.style.overflow="",t.modal.classList.remove("show")),"panel-hide"===i&&(document.querySelector(".bvi-panel").classList.add("bvi-panel-hide"),document.querySelector(".bvi-link-fixed-top").classList.remove("bvi-hide"),document.querySelector(".bvi-link-fixed-top").classList.add("bvi-show"),d("panelHide","true"),e._speech("".concat(e._i18n.v("panelHide")))),"panel-show"===i&&(document.querySelector(".bvi-link-fixed-top").classList.remove("bvi-show"),document.querySelector(".bvi-link-fixed-top").classList.add("bvi-hide"),document.querySelector(".bvi-panel").classList.remove("bvi-panel-hide"),d("panelHide","false"),e._speech("".concat(e._i18n.v("panelShow"))))}))})),i(t.modal,(function(e){e.target.contains(t.modal)&&(document.body.classList.remove("bvi-noscroll"),document.body.style.overflow="",t.modal.classList.remove("show"))}))}},{key:"_getPanel",value:function(){var e=function(){var e=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;l(m("panelFixed"))&&(e>200?document.querySelector(".bvi-panel").classList.add("bvi-fixed-top"):document.querySelector(".bvi-panel").classList.remove("bvi-fixed-top"))},t=l(m("panelHide"))?" bvi-panel-hide":"",n=l(m("panelHide"))?"bvi-show":" bvi-hide",i="\n
\n
\n
\n
').concat(this._i18n.t("fontSize"),'
\n А-\n А+\n
\n
\n
').concat(this._i18n.t("siteColors"),'
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
').concat(this._i18n.t("images"),'
\n \n \n \n \n \n \n \n \n \n
\n
\n
').concat(this._i18n.t("speech"),'
\n \n \n \n \n \n \n
\n
\n
').concat(this._i18n.t("settings"),'
\n \n \n \n \n ').concat(this._i18n.t("regularVersionOfTheSite"),'\n \n \n \n \n
\n
\n
\n
\n
\n
\n
').concat(this._i18n.t("settings"),'
\n ×\n
\n
\n
\n \n \n
\n
').concat(this._i18n.t("font"),'
\n ').concat(this._i18n.t("arial"),'\n ').concat(this._i18n.t("times"),'\n
\n
\n
').concat(this._i18n.t("builtElements"),'
\n ').concat(this._i18n.t("on"),'\n ').concat(this._i18n.t("off"),'\n
\n
\n \n
\n \n
\n
\n
\n
"),r='')+'';window.addEventListener("scroll",e),document.querySelector(".bvi-body").insertAdjacentHTML("beforebegin",i),document.querySelector(".bvi-body").insertAdjacentHTML("afterbegin",r),e()}},{key:"_set",value:function(){var e=this;document.body.classList.add("bvi-active"),s(document.body,"div","bvi-body"),v(this._config,(function(t){return e._setAttrDataBviBody(t,m(t))})),f(this._elements,(function(e){return e.style.display="none"})),document.querySelectorAll("img").forEach((function(e){e.classList.contains("bvi-img")&&e.classList.remove("bvi-img")})),document.querySelectorAll("body *").forEach((function(e){e.classList.contains("bvi-background-image")&&e.classList.remove("bvi-background-image")}))}},{key:"_remove",value:function(){var e=document.querySelector(".bvi-panel"),t=document.querySelector(".bvi-body"),n=document.querySelector(".bvi-link-fixed-top");e&&e.remove(),t&&u(t),n&&n.remove(),this._speech("".concat(this._i18n.v("panelOff"))),document.body.classList.remove("bvi-active"),f(this._elements,(function(e){return e.style.display=""})),l(m("reload"))&&document.location.reload(),v(this._config,(function(e){b(e)})),this._speechPlayer(),b("panelActive")}},{key:"_images",value:function(){document.querySelectorAll("img").forEach((function(e){e.classList.contains("bvi-no-style")||e.classList.add("bvi-img")})),document.querySelectorAll(".bvi-body *").forEach((function(e){var t=getComputedStyle(e);"none"===t.backgroundImage||"none"===t.background||e.classList.contains("bvi-no-style")||e.classList.add("bvi-background-image")}))}},{key:"_getConfig",value:function(e){e=t(t({},y),e);var i={};for(var r in y)i[r]=e[r];return function(e,t,i){Object.keys(t).forEach((function(i){var r,o=t[i],a=e[i],c=a&&(r=a)&&"object"===n(r)&&void 0!==r.nodeType?"element":function(e){return null==e?"".concat(e):{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()}(a);if(!new RegExp(o).test(c))throw new TypeError('Bvi console: Опция "'.concat(i,'" предоставленный тип "').concat(c,'", ожидаемый тип "').concat(o,'".'))})),Object.keys(i).forEach((function(t){var n=i[t],r=e[t];if(!new RegExp(n).test(r))throw new TypeError('Bvi console: Опция "'.concat(t,'" параметр "').concat(r,'", ожидаемый параметр "').concat(n,'".'))}))}(i,S,_),i}},{key:"_setAttrDataBviBody",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.querySelector(".bvi-body").setAttribute("data-bvi-".concat(e),t)}},{key:"_speechPlayer",value:function(){var e=this,t=document.querySelectorAll(".bvi-speech-text"),n=document.querySelectorAll(".bvi-speech-link"),i=document.querySelectorAll(".bvi-speech");if("speechSynthesis"in window&&l(m("speech"))){if(i){t&&t.forEach((function(e){return u(e)})),n&&n.forEach((function(e){return e.remove()})),i.forEach((function(e,t){var n="bvi-speech-text-id-".concat(t+1);s(e,"div","bvi-speech-text ".concat(n)),e.insertAdjacentHTML("afterbegin",'\n ')}));var r=document.querySelectorAll(".bvi-speech-play"),o=document.querySelectorAll(".bvi-speech-pause"),a=document.querySelectorAll(".bvi-speech-resume"),c=document.querySelectorAll(".bvi-speech-stop"),v=function(e,t){e.forEach((function(e){e.addEventListener("click",(function(n){if(n.preventDefault(),"function"==typeof t)return t(e,n)}),!1)}))};v(r,(function(t,n){var i=n.target,r=i.parentNode.nextElementSibling,o=n.target.closest(".bvi-speech-link"),a=document.querySelectorAll(".bvi-speech-play"),c=document.querySelectorAll(".bvi-speech-pause"),l=document.querySelectorAll(".bvi-speech-resume"),s=document.querySelectorAll(".bvi-speech-stop");e._speech(r.textContent,r,!0),a.forEach((function(e){return e.classList.remove("disabled")})),c.forEach((function(e){return e.classList.add("disabled")})),l.forEach((function(e){return e.classList.add("disabled")})),s.forEach((function(e){return e.classList.add("disabled")})),i.classList.add("disabled"),o.querySelector(".bvi-speech-pause").classList.remove("disabled"),o.querySelector(".bvi-speech-stop").classList.remove("disabled")})),v(o,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-resume").classList.remove("disabled"),h().pause()})),v(a,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-pause").classList.remove("disabled"),h().resume()})),v(c,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-pause").classList.add("disabled"),i.querySelector(".bvi-speech-play").classList.remove("disabled"),h().cancel()}))}}else t&&t.forEach((function(e){return u(e)})),n&&n.forEach((function(e){return e.remove()}))}},{key:"_speech",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("speechSynthesis"in window&&l(m("speech"))){h().cancel();for(var r=function(e,t){e=String(e),t=Number(t)>>>0;var n=e.slice(0,t+1).search(/\S+$/),i=e.slice(t).search(/\s/);return i<0?e.slice(n):e.slice(n,i+t)},o=120,a=new RegExp("^[\\s\\S]{"+Math.floor(o/2)+","+o+"}[.!?,]{1}|^[\\s\\S]{1,"+o+"}$|^[\\s\\S]{1,"+o+"} "),c=[],s=e,u=h().getVoices();s.length>0;)c.push(s.match(a)[0]),s=s.substring(c[c.length-1].length);c.forEach((function(e){var o=new SpeechSynthesisUtterance(e.trim());o.volume=1,o.rate=1,o.pitch=1,o.lang=n._config.lang;for(var a=0;a]+>)*$1(<[^>]+>)*)"),a=new RegExp("("+o+")","gi");i=(i=i.replace(a,"$1")).replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\/mark>)/,"$1$2$4"),t.innerHTML=i},o.onend=function(e){t.classList.remove("bvi-highlighting");var n=t.textContent;n=n.replace(/($1<\/mark>)/,"$1"),t.innerHTML=n}),h().speak(o)}))}}}]),e}()}})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).isvek=t()}(this,(function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,i=new Array(t);n=0;--o){var a=this.tryEntries[o],c=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=i.call(a,"catchLoc"),s=i.call(a,"finallyLoc");if(l&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),O(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;O(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,i){return this.delegate={iterator:q(e),resultName:n,nextLoc:i},"next"===this.method&&(this.arg=t),m}},e}({});try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(),[Element.prototype,Document.prototype,DocumentFragment.prototype].forEach((function(e){e.hasOwnProperty("prepend")||Object.defineProperty(e,"prepend",{configurable:!0,enumerable:!0,writable:!0,value:function(){var e=Array.prototype.slice.call(arguments),t=document.createDocumentFragment();e.forEach((function(e){var n=e instanceof Node;t.appendChild(n?e:document.createTextNode(String(e)))})),this.insertBefore(t,this.firstChild)}})})),window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),window.HTMLCollection&&!HTMLCollection.prototype.forEach&&(HTMLCollection.prototype.forEach=Array.prototype.forEach);var l=function(e){switch(e){case"on":case"true":case"1":return!0;default:return!1}},s=function(e,t,n){for("string"==typeof t&&(t=document.createElement(t)),e.appendChild(t).className=n;e.firstChild!==t;)t.appendChild(e.firstChild)},u=function(e){var t=document.createDocumentFragment();if(e){for(;e.firstChild;){var n=e.removeChild(e.firstChild);t.appendChild(n)}e.parentNode.replaceChild(t,e)}},v=function(e,t){Object.keys(e).forEach((function(e){"function"==typeof t&&t(e)}))},f=function(e,t){Array.from(e).forEach((function(e){"function"==typeof t&&t(e)}))},h=function(){return window.speechSynthesis},d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=new Date,i=n.getTime();i+=864e5,n.setTime(i),document.cookie="bvi_".concat(e,"=").concat(t,",path=/,expires=").concat(n.toUTCString(),",domain=").concat(location.host)},m=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";e="bvi_".concat(e,"=");for(var t=decodeURIComponent(document.cookie),n=t.split(","),i=0;i0&&void 0!==arguments[0]?arguments[0]:"";document.cookie="bvi_".concat(e,"=,path=/,expires=Thu, 01 Jan 1970 00:00:01 GMT,domain=").concat(location.host)},g={"ru-RU":{text:{fontSize:"Размер шрифта",siteColors:"Цвета сайта",images:"Изображения",speech:"Синтез речи",settings:"Настройки",regularVersionOfTheSite:"Обычная версия сайта",letterSpacing:"Межбуквенное расстояние",normal:"Стандартный",average:"Средний",big:"Большой",lineHeight:"Межстрочный интервал",font:"Шрифт",arial:"Без засечек",times:"С засечками",builtElements:"Встроенные элементы (Видео, карты и тд.)",on:"Включить",off:"Выключить",reset:"Сбросить настройки",plural_0:"пиксель",plural_1:"пекселя",plural_2:"пикселей"},voice:{fontSizePlus:"Размер шрифта увели́чен",fontSizeMinus:"Размер шрифта уме́ньшен",siteColorBlackOnWhite:"Цвет сайта черным по белому",siteColorWhiteOnBlack:"Цвет сайта белым по черному",siteColorDarkBlueOnBlue:"Цвет сайта тёмно-синим по голубому",siteColorBeigeBrown:"Цвет сайта кори́чневым по бе́жевому",siteColorGreenOnDarkBrown:"Цвет сайта зеленым по тёмно-коричневому",imagesOn:"Изображения включены",imagesOFF:"Изображения выключены",imagesGrayscale:"Изображения чёрно-белые",speechOn:"Синтез речи включён",speechOff:"Синтез речи вы́ключен",lineHeightNormal:"Межстрочный интервал стандартный",lineHeightAverage:"Межстрочный интервал средний",lineHeightBig:"Межстрочный интервал большой",LetterSpacingNormal:"Интервал между буквами стандартный",LetterSpacingAverage:"Интервал между буквами средний",LetterSpacingBig:"Интервал между буквами большой",fontArial:"Шрифт без засечек",fontTimes:"Шрифт с засечками",builtElementsOn:"Встроенные элементы включены",builtElementsOFF:"Встроенные элементы выключены",resetSettings:"Установлены настройки по умолча́нию",panelShow:"Панель открыта",panelHide:"Панель скрыта",panelOn:"Версия сайта для слабови́дящий",panelOff:"Обычная версия сайта"}},"en-US":{text:{fontSize:"Font size",siteColors:"Site colors",images:"Images",speech:"Speech synthesis",settings:"Settings",regularVersionOfTheSite:"Regular version Of The site",letterSpacing:"Letter spacing",normal:"Single",average:"One and a half",big:"Double",lineHeight:"Line spacing",font:"Font",arial:"Sans Serif - Arial",times:"Serif - Times New Roman",builtElements:"Include inline elements (Videos, maps, etc.)",on:"Enable",off:"Disabled",reset:"Reset settings",plural_0:"pixel",plural_1:"pixels",plural_2:"pixels"},voice:{fontSizePlus:"Font size increased",fontSizeMinus:"Font size reduced",siteColorBlackOnWhite:"Site color black on white",siteColorWhiteOnBlack:"Site color white on black",siteColorDarkBlueOnBlue:"Site color dark blue on cyan",siteColorBeigeBrown:"SiteColorBeigeBrown",siteColorGreenOnDarkBrown:"Site color green on dark brown",imagesOn:"Images enable",imagesOFF:"Images disabled",imagesGrayscale:"Images gray scale",speechOn:"Synthesis speech enable",speechOff:"Synthesis speech disabled",lineHeightNormal:"Line spacing single",lineHeightAverage:"Line spacing one and a half",lineHeightBig:"Line spacing double",LetterSpacingNormal:"Letter spacing single",LetterSpacingAverage:"Letter spacing one and a half",LetterSpacingBig:"Letter spacing letter double",fontArial:"Sans Serif - Arial",fontTimes:"Serif - Times New Roman",builtElementsOn:"Include inline elements are enabled",builtElementsOFF:"Include inline elements are disabled",resetSettings:"Default settings have been set",panelShow:"Panel show",panelHide:"Panel hide",panelOn:"Site version for visually impaired",panelOff:"Regular version of the site"}}},p=function(){function e(t){i(this,e),this._config=t}return o(e,[{key:"t",value:function(e){return g[this._config.lang].text[e]}},{key:"v",value:function(e){return g[this._config.lang].voice[e]}}]),e}(),y={target:".bvi-open",fontSize:16,theme:"white",images:"grayscale",letterSpacing:"normal",lineHeight:"normal",speech:!0,fontFamily:"arial",builtElements:!1,panelFixed:!0,panelHide:!1,reload:!1,lang:"ru-RU"},S={target:"string",fontSize:"number",theme:"string",images:"(string|boolean)",letterSpacing:"string",lineHeight:"string",speech:"boolean",fontFamily:"string",builtElements:"boolean",panelFixed:"boolean",panelHide:"boolean",reload:"boolean",lang:"string"},_={target:"",fontSize:"(^[1-9]$|^[1-3][0-9]?$|^39$)",theme:"(white|black|blue|brown|green)",images:"(true|false|grayscale)",letterSpacing:"(normal|average|big)",lineHeight:"(normal|average|big)",speech:"(true|false)",fontFamily:"(arial|times)",builtElements:"(true|false)",panelFixed:"(true|false)",panelHide:"(true|false)",reload:"(true|false)",lang:"(ru-RU|en-US)"};return{Bvi:function(){function e(t){i(this,e),this._config=this._getConfig(t),this._elements=document.querySelectorAll(this._config.target),this._i18n=new p({lang:this._config.lang}),this._addEventListeners(),this._init(),console.log("Bvi console: ready Button visually impaired v1.0.0")}return o(e,[{key:"_init",value:function(){v(this._config,(function(e){void 0===m(e)&&b("panelActive")})),l(m("panelActive"))?(this._set(),this._getPanel(),this._addEventListenersPanel(),this._images(),this._speechPlayer(),"speechSynthesis"in window&&l(m("speech"))&&setInterval((function(){if(!1===h().pending){var e=document.querySelectorAll(".bvi-speech-play"),t=document.querySelectorAll(".bvi-speech-pause"),n=document.querySelectorAll(".bvi-speech-resume"),i=document.querySelectorAll(".bvi-speech-stop"),r=function(e,t){e.forEach((function(e){return t(e)}))};r(e,(function(e){return e.classList.remove("disabled")})),r(t,(function(e){return e.classList.add("disabled")})),r(n,(function(e){return e.classList.add("disabled")})),r(i,(function(e){return e.classList.add("disabled")}))}}),1e3)):this._remove()}},{key:"_addEventListeners",value:function(){var e=this;if(!this._elements)return!1;this._elements.forEach((function(t){t.addEventListener("click",(function(t){t.preventDefault(),v(e._config,(function(t){return d(t,e._config[t])})),d("panelActive",!0),e._init(),e._speech("".concat(e._i18n.v("panelOn")))}))}))}},{key:"_addEventListenersPanel",value:function(){var e=this,t={fontSizeMinus:document.querySelector(".bvi-fontSize-minus"),fontSizePlus:document.querySelector(".bvi-fontSize-plus"),themeWhite:document.querySelector(".bvi-theme-white"),themeBlack:document.querySelector(".bvi-theme-black"),themeBlue:document.querySelector(".bvi-theme-blue"),themeBrown:document.querySelector(".bvi-theme-brown"),themeGreen:document.querySelector(".bvi-theme-green"),imagesOn:document.querySelector(".bvi-images-on"),imagesOff:document.querySelector(".bvi-images-off"),imagesGrayscale:document.querySelector(".bvi-images-grayscale"),speechOn:document.querySelector(".bvi-speech-on"),speechOff:document.querySelector(".bvi-speech-off"),lineHeightNormal:document.querySelector(".bvi-line-height-normal"),lineHeightAverage:document.querySelector(".bvi-line-height-average"),lineHeightBig:document.querySelector(".bvi-line-height-big"),letterSpacingNormal:document.querySelector(".bvi-letter-spacing-normal"),letterSpacingAverage:document.querySelector(".bvi-letter-spacing-average"),letterSpacingBig:document.querySelector(".bvi-letter-spacing-big"),fontFamilyArial:document.querySelector(".bvi-font-family-arial"),fontFamilyTimes:document.querySelector(".bvi-font-family-times"),builtElementsOn:document.querySelector(".bvi-built-elements-on"),builtElementsOff:document.querySelector(".bvi-built-elements-off"),reset:document.querySelector(".bvi-reset"),links:document.querySelectorAll(".bvi-link"),modal:document.querySelector(".bvi-modal")},n=function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw o}}}}(e.parentNode.children);try{for(n.s();!(t=n.n()).done;)t.value.classList.remove("active")}catch(e){n.e(e)}finally{n.f()}e.classList.add("active")},i=function(e,t){e.addEventListener("click",(function(e){e.preventDefault(),"function"==typeof t&&t(e)}))},r=function(){document.querySelectorAll(".bvi-link").forEach((function(e){e.classList.remove("active")})),v(e._config,(function(e){if("theme"===e){var t=m(e);document.querySelector(".bvi-theme-".concat(t)).classList.add("active")}if("images"===e){var n="grayscale"===m(e)?"grayscale":l(m(e))?"on":"off";document.querySelector(".bvi-images-".concat(n)).classList.add("active")}if("speech"===e){var i=l(m(e))?"on":"off";document.querySelector(".bvi-speech-".concat(i)).classList.add("active")}if("lineHeight"===e){var r=m(e);document.querySelector(".bvi-line-height-".concat(r)).classList.add("active")}if("letterSpacing"===e){var o=m(e);document.querySelector(".bvi-letter-spacing-".concat(o)).classList.add("active")}if("fontFamily"===e){var a=m(e);document.querySelector(".bvi-font-family-".concat(a)).classList.add("active")}if("builtElements"===e){var c=l(m(e))?"on":"off";document.querySelector(".bvi-built-elements-".concat(c)).classList.add("active")}}))};r(),i(t.fontSizeMinus,(function(){var i=parseFloat(m("fontSize"))-1;0!==i&&(e._setAttrDataBviBody("fontSize",i),d("fontSize",i),e._speech("".concat(e._i18n.v("fontSizeMinus"))),n(t.fontSizeMinus))})),i(t.fontSizePlus,(function(){var i=parseFloat(m("fontSize"))+1;40!==i&&(e._setAttrDataBviBody("fontSize",i),d("fontSize",i),e._speech("".concat(e._i18n.v("fontSizePlus"))),n(t.fontSizePlus))})),i(t.themeWhite,(function(){e._setAttrDataBviBody("theme","white"),d("theme","white"),e._speech("".concat(e._i18n.v("siteColorBlackOnWhite"))),n(t.themeWhite)})),i(t.themeBlack,(function(){e._setAttrDataBviBody("theme","black"),d("theme","black"),e._speech("".concat(e._i18n.v("siteColorWhiteOnBlack"))),n(t.themeBlack)})),i(t.themeBlue,(function(){e._setAttrDataBviBody("theme","blue"),d("theme","blue"),e._speech("".concat(e._i18n.v("siteColorDarkBlueOnBlue"))),n(t.themeBlue)})),i(t.themeBrown,(function(){e._setAttrDataBviBody("theme","brown"),d("theme","brown"),e._speech("".concat(e._i18n.v("siteColorBeigeBrown"))),n(t.themeBrown)})),i(t.themeGreen,(function(){e._setAttrDataBviBody("theme","green"),d("theme","green"),e._speech("".concat(e._i18n.v("siteColorGreenOnDarkBrown"))),n(t.themeGreen)})),i(t.imagesOn,(function(){e._setAttrDataBviBody("images","true"),d("images","true"),e._speech("".concat(e._i18n.v("imagesOn"))),n(t.imagesOn)})),i(t.imagesOff,(function(){e._setAttrDataBviBody("images","false"),d("images","false"),e._speech("".concat(e._i18n.v("imagesOFF"))),n(t.imagesOff)})),i(t.imagesGrayscale,(function(){e._setAttrDataBviBody("images","grayscale"),d("images","grayscale"),e._speech("".concat(e._i18n.v("imagesGrayscale"))),n(t.imagesGrayscale)})),i(t.speechOn,(function(){e._setAttrDataBviBody("speech","true"),d("speech","true"),e._speech("".concat(e._i18n.v("speechOn"))),n(t.speechOn),e._speechPlayer()})),i(t.speechOff,(function(){e._speech("".concat(e._i18n.v("speechOff"))),e._setAttrDataBviBody("speech","false"),d("speech","false"),n(t.speechOff),e._speechPlayer()})),i(t.lineHeightNormal,(function(){e._setAttrDataBviBody("lineHeight","normal"),d("lineHeight","normal"),e._speech("".concat(e._i18n.v("lineHeightNormal"))),n(t.lineHeightNormal)})),i(t.lineHeightAverage,(function(){e._setAttrDataBviBody("lineHeight","average"),d("lineHeight","average"),e._speech("".concat(e._i18n.v("lineHeightAverage"))),n(t.lineHeightAverage)})),i(t.lineHeightBig,(function(){e._setAttrDataBviBody("lineHeight","big"),d("lineHeight","big"),e._speech("".concat(e._i18n.v("lineHeightBig"))),n(t.lineHeightBig)})),i(t.letterSpacingNormal,(function(){e._setAttrDataBviBody("letterSpacing","normal"),d("letterSpacing","normal"),e._speech("".concat(e._i18n.v("LetterSpacingNormal"))),n(t.letterSpacingNormal)})),i(t.letterSpacingAverage,(function(){e._setAttrDataBviBody("letterSpacing","average"),d("letterSpacing","average"),e._speech("".concat(e._i18n.v("LetterSpacingAverage"))),n(t.letterSpacingAverage)})),i(t.letterSpacingBig,(function(){e._setAttrDataBviBody("letterSpacing","big"),d("letterSpacing","big"),e._speech("".concat(e._i18n.v("LetterSpacingBig"))),n(t.letterSpacingBig)})),i(t.fontFamilyArial,(function(){e._setAttrDataBviBody("fontFamily","arial"),d("fontFamily","arial"),e._speech("".concat(e._i18n.v("fontArial"))),n(t.fontFamilyArial)})),i(t.fontFamilyTimes,(function(){e._setAttrDataBviBody("fontFamily","times"),d("fontFamily","times"),e._speech("".concat(e._i18n.v("fontTimes"))),n(t.fontFamilyTimes)})),i(t.builtElementsOn,(function(){e._setAttrDataBviBody("builtElements","true"),d("builtElements","true"),e._speech("".concat(e._i18n.v("builtElementsOn"))),n(t.builtElementsOn)})),i(t.builtElementsOff,(function(){e._setAttrDataBviBody("builtElements","false"),d("builtElements","false"),e._speech("".concat(e._i18n.v("builtElementsOFF"))),n(t.builtElementsOff)})),i(t.reset,(function(){e._speech("".concat(e._i18n.v("resetSettings"))),v(e._config,(function(t){e._setAttrDataBviBody(t,e._config[t]),d(t,e._config[t]),r()}))})),f(t.links,(function(n){i(n,(function(n){var i=n.target.getAttribute("data-bvi");"close"===i&&(e._setAttrDataBviBody("panelActive","false"),d("panelActive","false"),e._init()),"modal"===i&&(document.body.style.overflow="hidden",document.body.classList.add("bvi-noscroll"),t.modal.classList.toggle("show")),"modal-close"===i&&(document.body.classList.remove("bvi-noscroll"),document.body.style.overflow="",t.modal.classList.remove("show")),"panel-hide"===i&&(document.querySelector(".bvi-panel").classList.add("bvi-panel-hide"),document.querySelector(".bvi-link-fixed-top").classList.remove("bvi-hide"),document.querySelector(".bvi-link-fixed-top").classList.add("bvi-show"),d("panelHide","true"),e._speech("".concat(e._i18n.v("panelHide")))),"panel-show"===i&&(document.querySelector(".bvi-link-fixed-top").classList.remove("bvi-show"),document.querySelector(".bvi-link-fixed-top").classList.add("bvi-hide"),document.querySelector(".bvi-panel").classList.remove("bvi-panel-hide"),d("panelHide","false"),e._speech("".concat(e._i18n.v("panelShow"))))}))})),i(t.modal,(function(e){e.target.contains(t.modal)&&(document.body.classList.remove("bvi-noscroll"),document.body.style.overflow="",t.modal.classList.remove("show"))}))}},{key:"_getPanel",value:function(){var e=function(){var e=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;l(m("panelFixed"))&&(e>200?document.querySelector(".bvi-panel").classList.add("bvi-fixed-top"):document.querySelector(".bvi-panel").classList.remove("bvi-fixed-top"))},t=l(m("panelHide"))?" bvi-panel-hide":"",n=l(m("panelHide"))?"bvi-show":" bvi-hide",i="\n
\n
\n
\n
').concat(this._i18n.t("fontSize"),'
\n А-\n А+\n
\n
\n
').concat(this._i18n.t("siteColors"),'
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
').concat(this._i18n.t("images"),'
\n \n \n \n \n \n \n \n \n \n
\n
\n
').concat(this._i18n.t("speech"),'
\n \n \n \n \n \n \n
\n
\n
').concat(this._i18n.t("settings"),'
\n \n \n \n \n ').concat(this._i18n.t("regularVersionOfTheSite"),'\n \n \n \n \n
\n
\n
\n
\n
\n
\n
').concat(this._i18n.t("settings"),'
\n ×\n
\n
\n
\n \n \n
\n
').concat(this._i18n.t("font"),'
\n ').concat(this._i18n.t("arial"),'\n ').concat(this._i18n.t("times"),'\n
\n
\n
').concat(this._i18n.t("builtElements"),'
\n ').concat(this._i18n.t("on"),'\n ').concat(this._i18n.t("off"),'\n
\n
\n \n
\n \n
\n
\n
\n
"),r='')+'';window.addEventListener("scroll",e),document.querySelector(".bvi-body").insertAdjacentHTML("beforebegin",i),document.querySelector(".bvi-body").insertAdjacentHTML("afterbegin",r),e()}},{key:"_set",value:function(){var e=this;document.body.classList.add("bvi-active"),s(document.body,"div","bvi-body"),v(this._config,(function(t){return e._setAttrDataBviBody(t,m(t))})),f(this._elements,(function(e){return e.style.display="none"})),document.querySelectorAll("img").forEach((function(e){e.classList.contains("bvi-img")&&e.classList.remove("bvi-img")})),document.querySelectorAll("body *").forEach((function(e){e.classList.contains("bvi-background-image")&&e.classList.remove("bvi-background-image")}))}},{key:"_remove",value:function(){var e=document.querySelector(".bvi-panel"),t=document.querySelector(".bvi-body"),n=document.querySelector(".bvi-link-fixed-top");e&&e.remove(),t&&u(t),n&&n.remove(),this._speech("".concat(this._i18n.v("panelOff"))),document.body.classList.remove("bvi-active"),f(this._elements,(function(e){return e.style.display=""})),l(m("reload"))&&document.location.reload(),v(this._config,(function(e){b(e)})),this._speechPlayer(),b("panelActive")}},{key:"_images",value:function(){document.querySelectorAll("img").forEach((function(e){e.classList.contains("bvi-no-style")||e.classList.add("bvi-img")})),document.querySelectorAll(".bvi-body *").forEach((function(e){var t=getComputedStyle(e);"none"===t.backgroundImage||"none"===t.background||e.classList.contains("bvi-no-style")||e.classList.add("bvi-background-image")}))}},{key:"_getConfig",value:function(e){e=t(t({},y),e);var i={};for(var r in y)i[r]=e[r];return function(e,t,i){Object.keys(t).forEach((function(i){var r,o=t[i],a=e[i],c=a&&(r=a)&&"object"===n(r)&&void 0!==r.nodeType?"element":function(e){return null==e?"".concat(e):{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()}(a);if(!new RegExp(o).test(c))throw new TypeError('Bvi console: Опция "'.concat(i,'" предоставленный тип "').concat(c,'", ожидаемый тип "').concat(o,'".'))})),Object.keys(i).forEach((function(t){var n=i[t],r=e[t];if(!new RegExp(n).test(r))throw new TypeError('Bvi console: Опция "'.concat(t,'" параметр "').concat(r,'", ожидаемый параметр "').concat(n,'".'))}))}(i,S,_),i}},{key:"_setAttrDataBviBody",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.querySelector(".bvi-body").setAttribute("data-bvi-".concat(e),t)}},{key:"_speechPlayer",value:function(){var e=this,t=document.querySelectorAll(".bvi-speech-text"),n=document.querySelectorAll(".bvi-speech-link"),i=document.querySelectorAll(".bvi-speech");if("speechSynthesis"in window&&l(m("speech"))){if(i){t&&t.forEach((function(e){return u(e)})),n&&n.forEach((function(e){return e.remove()})),i.forEach((function(e,t){var n="bvi-speech-text-id-".concat(t+1);s(e,"div","bvi-speech-text ".concat(n)),e.insertAdjacentHTML("afterbegin",'\n ')}));var r=document.querySelectorAll(".bvi-speech-play"),o=document.querySelectorAll(".bvi-speech-pause"),a=document.querySelectorAll(".bvi-speech-resume"),c=document.querySelectorAll(".bvi-speech-stop"),v=function(e,t){e.forEach((function(e){e.addEventListener("click",(function(n){if(n.preventDefault(),"function"==typeof t)return t(e,n)}),!1)}))};v(r,(function(t,n){var i=n.target,r=i.parentNode.nextElementSibling,o=n.target.closest(".bvi-speech-link"),a=document.querySelectorAll(".bvi-speech-play"),c=document.querySelectorAll(".bvi-speech-pause"),l=document.querySelectorAll(".bvi-speech-resume"),s=document.querySelectorAll(".bvi-speech-stop");e._speech(r.textContent,r,!0),a.forEach((function(e){return e.classList.remove("disabled")})),c.forEach((function(e){return e.classList.add("disabled")})),l.forEach((function(e){return e.classList.add("disabled")})),s.forEach((function(e){return e.classList.add("disabled")})),i.classList.add("disabled"),o.querySelector(".bvi-speech-pause").classList.remove("disabled"),o.querySelector(".bvi-speech-stop").classList.remove("disabled")})),v(o,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-resume").classList.remove("disabled"),h().pause()})),v(a,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-pause").classList.remove("disabled"),h().resume()})),v(c,(function(e,t){var n=t.target,i=t.target.closest(".bvi-speech-link");n.classList.add("disabled"),i.querySelector(".bvi-speech-pause").classList.add("disabled"),i.querySelector(".bvi-speech-play").classList.remove("disabled"),h().cancel()}))}}else t&&t.forEach((function(e){return u(e)})),n&&n.forEach((function(e){return e.remove()}))}},{key:"_speech",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("speechSynthesis"in window&&l(m("speech"))){h().cancel();for(var r=function(e,t){e=String(e),t=Number(t)>>>0;var n=e.slice(0,t+1).search(/\S+$/),i=e.slice(t).search(/\s/);return i<0?e.slice(n):e.slice(n,i+t)},o=120,a=new RegExp("^[\\s\\S]{"+Math.floor(o/2)+","+o+"}[.!?,]{1}|^[\\s\\S]{1,"+o+"}$|^[\\s\\S]{1,"+o+"} "),c=[],s=e,u=h().getVoices();s.length>0;)c.push(s.match(a)[0]),s=s.substring(c[c.length-1].length);c.forEach((function(e){var o=new SpeechSynthesisUtterance(e.trim());o.volume=1,o.rate=1,o.pitch=1,o.lang=n._config.lang;for(var a=0;a]+>)*$1(<[^>]+>)*)"),a=new RegExp("("+o+")","gi");i=(i=i.replace(a,"$1")).replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\/mark>)/,"$1$2$4"),t.innerHTML=i},o.onend=function(e){t.classList.remove("bvi-highlighting");var n=t.textContent;n=n.replace(/($1<\/mark>)/,"$1"),t.innerHTML=n}),h().speak(o)}))}}}]),e}()}})); //# sourceMappingURL=bvi.min.js.map \ No newline at end of file diff --git a/dist/js/bvi.min.js.map b/dist/js/bvi.min.js.map index 69bafbb..c0ad83d 100644 --- a/dist/js/bvi.min.js.map +++ b/dist/js/bvi.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../node_modules/regenerator-runtime/runtime.js","../../src/js/util/index.js","../../src/js/util/cookie.js","../../src/js/i18n.js","../../src/js/bvi.js","../../src/js/index.umd.js"],"names":["runtime","exports","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","Element","Document","DocumentFragment","item","argArr","Array","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","window","NodeList","HTMLCollection","stringToBoolean","string","wrapInner","parent","wrapper","className","createElement","unwrap","child","removeChild","parentNode","replaceChild","getObject","callback","getArray","array","from","synth","speechSynthesis","setCookie","now","Date","time","getTime","setTime","cookie","concat","toUTCString","location","host","getCookie","decodedCookie","decodeURIComponent","cookies","split","trim","indexOf","substring","removeCookie","lang","text","fontSize","siteColors","images","speech","settings","regularVersionOfTheSite","letterSpacing","normal","average","big","lineHeight","font","arial","times","builtElements","on","off","plural_0","plural_1","plural_2","voice","fontSizePlus","fontSizeMinus","siteColorBlackOnWhite","siteColorWhiteOnBlack","siteColorDarkBlueOnBlue","siteColorBeigeBrown","siteColorGreenOnDarkBrown","imagesOn","imagesOFF","imagesGrayscale","speechOn","speechOff","lineHeightNormal","lineHeightAverage","lineHeightBig","LetterSpacingNormal","LetterSpacingAverage","LetterSpacingBig","fontArial","fontTimes","builtElementsOn","builtElementsOFF","resetSettings","panelShow","panelHide","panelOn","panelOff","I18n","options","_classCallCheck","_config","Default","target","theme","fontFamily","panelFixed","reload","DefaultType","DefaultOptions","Bvi","_getConfig","_elements","querySelectorAll","_i18n","_addEventListeners","_init","console","log","_set","_getPanel","_addEventListenersPanel","_images","_speechPlayer","setInterval","pending","play","pause","resume","el","elements","element","classList","remove","add","_remove","_this","addEventListener","event","preventDefault","_speech","v","_this2","querySelector","themeWhite","themeBlack","themeBlue","themeBrown","themeGreen","imagesOff","letterSpacingNormal","letterSpacingAverage","letterSpacingBig","fontFamilyArial","fontFamilyTimes","builtElementsOff","links","modal","activeLink","_step","_iterator","_createForOfIteratorHelper","children","s","n","e","f","click","activeAll","link","size","parseFloat","_setAttrDataBviBody","getAttribute","body","style","overflow","toggle","contains","scroll","pageYOffset","documentElement","scrollTop","linkHide","html","t","insertAdjacentHTML","_this3","display","bviPanel","bviBody","bviLinkFixedTop","getComputedStyle","backgroundImage","background","config","_objectSpread2","extended","keyDefault","configTypes","configOptions","expectedTypes","valueType","nodeType","toString","match","toLowerCase","toType","RegExp","test","expectedOptions","checkConfig","setAttribute","_this4","selectorSpeechText","selectorSpeechLink","selectorBviSpeech","speechDivBlock","index","id","selectorPlay","selectorPause","selectorResume","selectorStop","nextElementSibling","closest","textContent","cancel","_this5","echo","getWordAt","str","pos","Number","left","search","right","chunkLength","patternRegex","Math","floor","$text","voices","getVoices","getText","utter","SpeechSynthesisUtterance","volume","rate","pitch","onboundary","world","utterance","charIndex","term","replace","pattern","innerHTML","onend","speak"],"mappings":";;;;;sjDAOA,IAAIA,EAAW,SAAUC,GAGvB,IAEIC,EAFAC,EAAKC,OAAOC,UACZC,EAASH,EAAGI,eAEZC,EAA4B,mBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAE/C,SAASC,EAAOC,EAAKC,EAAKC,GAOxB,OANAf,OAAOgB,eAAeH,EAAKC,EAAK,CAC9BC,MAAOA,EACPE,YAAY,EACZC,cAAc,EACdC,UAAU,IAELN,EAAIC,GAEb,IAEEF,EAAO,GAAI,IACX,MAAOQ,GACPR,EAAS,SAASC,EAAKC,EAAKC,GAC1B,OAAOF,EAAIC,GAAOC,GAItB,SAASM,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQtB,qBAAqB0B,EAAYJ,EAAUI,EAC/EC,EAAY5B,OAAO6B,OAAOH,EAAezB,WACzC6B,EAAU,IAAIC,EAAQN,GAAe,IAMzC,OAFAG,EAAUI,QAuMZ,SAA0BV,EAASE,EAAMM,GACvC,IAAIG,EAAQC,EAEZ,OAAO,SAAgBC,EAAQC,GAC7B,GAAIH,IAAUI,EACZ,MAAM,IAAIC,MAAM,gCAGlB,GAAIL,IAAUM,EAAmB,CAC/B,GAAe,UAAXJ,EACF,MAAMC,EAKR,OAAOI,IAMT,IAHAV,EAAQK,OAASA,EACjBL,EAAQM,IAAMA,IAED,CACX,IAAIK,EAAWX,EAAQW,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUX,GACnD,GAAIY,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBZ,EAAQK,OAGVL,EAAQe,KAAOf,EAAQgB,MAAQhB,EAAQM,SAElC,GAAuB,UAAnBN,EAAQK,OAAoB,CACrC,GAAIF,IAAUC,EAEZ,MADAD,EAAQM,EACFT,EAAQM,IAGhBN,EAAQiB,kBAAkBjB,EAAQM,SAEN,WAAnBN,EAAQK,QACjBL,EAAQkB,OAAO,SAAUlB,EAAQM,KAGnCH,EAAQI,EAER,IAAIY,EAASC,EAAS5B,EAASE,EAAMM,GACrC,GAAoB,WAAhBmB,EAAOE,KAAmB,CAO5B,GAJAlB,EAAQH,EAAQsB,KACZb,EACAc,EAEAJ,EAAOb,MAAQQ,EACjB,SAGF,MAAO,CACL7B,MAAOkC,EAAOb,IACdgB,KAAMtB,EAAQsB,MAGS,UAAhBH,EAAOE,OAChBlB,EAAQM,EAGRT,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,OA/QPkB,CAAiBhC,EAASE,EAAMM,GAE7CF,EAcT,SAASsB,EAASK,EAAI1C,EAAKuB,GACzB,IACE,MAAO,CAAEe,KAAM,SAAUf,IAAKmB,EAAGC,KAAK3C,EAAKuB,IAC3C,MAAOhB,GACP,MAAO,CAAE+B,KAAM,QAASf,IAAKhB,IAhBjCvB,EAAQwB,KAAOA,EAoBf,IAAIa,EAAyB,iBACzBmB,EAAyB,iBACzBhB,EAAoB,YACpBE,EAAoB,YAIpBK,EAAmB,GAMvB,SAASjB,KACT,SAAS8B,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxB/C,EAAO+C,EAAmBrD,GAAgB,WACxC,OAAOsD,QAGT,IAAIC,EAAW7D,OAAO8D,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4BhE,GAC5BG,EAAOsD,KAAKO,EAAyBzD,KAGvCqD,EAAoBI,GAGtB,IAAIE,EAAKP,EAA2BzD,UAClC0B,EAAU1B,UAAYD,OAAO6B,OAAO8B,GAYtC,SAASO,EAAsBjE,GAC7B,CAAC,OAAQ,QAAS,UAAUkE,SAAQ,SAAShC,GAC3CvB,EAAOX,EAAWkC,GAAQ,SAASC,GACjC,OAAOwB,KAAK5B,QAAQG,EAAQC,SAkClC,SAASgC,EAAcxC,EAAWyC,GAChC,SAASC,EAAOnC,EAAQC,EAAKmC,EAASC,GACpC,IAAIvB,EAASC,EAAStB,EAAUO,GAASP,EAAWQ,GACpD,GAAoB,UAAhBa,EAAOE,KAEJ,CACL,IAAIsB,EAASxB,EAAOb,IAChBrB,EAAQ0D,EAAO1D,MACnB,OAAIA,GACiB,WAAjB2D,EAAO3D,IACPb,EAAOsD,KAAKzC,EAAO,WACdsD,EAAYE,QAAQxD,EAAM4D,SAASC,MAAK,SAAS7D,GACtDuD,EAAO,OAAQvD,EAAOwD,EAASC,MAC9B,SAASpD,GACVkD,EAAO,QAASlD,EAAKmD,EAASC,MAI3BH,EAAYE,QAAQxD,GAAO6D,MAAK,SAASC,GAI9CJ,EAAO1D,MAAQ8D,EACfN,EAAQE,MACP,SAASK,GAGV,OAAOR,EAAO,QAASQ,EAAOP,EAASC,MAvBzCA,EAAOvB,EAAOb,KA4BlB,IAAI2C,EAgCJnB,KAAK5B,QA9BL,SAAiBG,EAAQC,GACvB,SAAS4C,IACP,OAAO,IAAIX,GAAY,SAASE,EAASC,GACvCF,EAAOnC,EAAQC,EAAKmC,EAASC,MAIjC,OAAOO,EAaLA,EAAkBA,EAAgBH,KAChCI,EAGAA,GACEA,KAkHV,SAASrC,EAAoBF,EAAUX,GACrC,IAAIK,EAASM,EAASlC,SAASuB,EAAQK,QACvC,GAAIA,IAAWrC,EAAW,CAKxB,GAFAgC,EAAQW,SAAW,KAEI,UAAnBX,EAAQK,OAAoB,CAE9B,GAAIM,EAASlC,SAAT,SAGFuB,EAAQK,OAAS,SACjBL,EAAQM,IAAMtC,EACd6C,EAAoBF,EAAUX,GAEP,UAAnBA,EAAQK,QAGV,OAAOS,EAIXd,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI6C,UAChB,kDAGJ,OAAOrC,EAGT,IAAIK,EAASC,EAASf,EAAQM,EAASlC,SAAUuB,EAAQM,KAEzD,GAAoB,UAAhBa,EAAOE,KAIT,OAHArB,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,IACrBN,EAAQW,SAAW,KACZG,EAGT,IAAIsC,EAAOjC,EAAOb,IAElB,OAAM8C,EAOFA,EAAK9B,MAGPtB,EAAQW,EAAS0C,YAAcD,EAAKnE,MAGpCe,EAAQsD,KAAO3C,EAAS4C,QAQD,WAAnBvD,EAAQK,SACVL,EAAQK,OAAS,OACjBL,EAAQM,IAAMtC,GAUlBgC,EAAQW,SAAW,KACZG,GANEsC,GA3BPpD,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI6C,UAAU,oCAC5BnD,EAAQW,SAAW,KACZG,GAoDX,SAAS0C,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxB3B,KAAKiC,WAAWC,KAAKN,GAGvB,SAASO,EAAcP,GACrB,IAAIvC,EAASuC,EAAMQ,YAAc,GACjC/C,EAAOE,KAAO,gBACPF,EAAOb,IACdoD,EAAMQ,WAAa/C,EAGrB,SAASlB,EAAQN,GAIfmC,KAAKiC,WAAa,CAAC,CAAEJ,OAAQ,SAC7BhE,EAAY0C,QAAQmB,EAAc1B,MAClCA,KAAKqC,OAAM,GA8Bb,SAASjC,EAAOkC,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAS5F,GAC9B,GAAI6F,EACF,OAAOA,EAAe3C,KAAK0C,GAG7B,GAA6B,mBAAlBA,EAASd,KAClB,OAAOc,EAGT,IAAKE,MAAMF,EAASG,QAAS,CAC3B,IAAIC,GAAK,EAAGlB,EAAO,SAASA,IAC1B,OAASkB,EAAIJ,EAASG,QACpB,GAAInG,EAAOsD,KAAK0C,EAAUI,GAGxB,OAFAlB,EAAKrE,MAAQmF,EAASI,GACtBlB,EAAKhC,MAAO,EACLgC,EAOX,OAHAA,EAAKrE,MAAQjB,EACbsF,EAAKhC,MAAO,EAELgC,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAM5C,GAIjB,SAASA,IACP,MAAO,CAAEzB,MAAOjB,EAAWsD,MAAM,GA+MnC,OA7mBAK,EAAkBxD,UAAYyD,EAC9B9C,EAAOqD,EAAI,cAAeP,GAC1B9C,EAAO8C,EAA4B,cAAeD,GAClDA,EAAkB8C,YAAc3F,EAC9B8C,EACAhD,EACA,qBAaFb,EAAQ2G,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOE,YAClD,QAAOD,IACHA,IAASjD,GAG2B,uBAAnCiD,EAAKH,aAAeG,EAAKE,QAIhC/G,EAAQgH,KAAO,SAASJ,GAQtB,OAPIzG,OAAO8G,eACT9G,OAAO8G,eAAeL,EAAQ/C,IAE9B+C,EAAOM,UAAYrD,EACnB9C,EAAO6F,EAAQ/F,EAAmB,sBAEpC+F,EAAOxG,UAAYD,OAAO6B,OAAOoC,GAC1BwC,GAOT5G,EAAQmH,MAAQ,SAAS5E,GACvB,MAAO,CAAEuC,QAASvC,IAsEpB8B,EAAsBE,EAAcnE,WACpCW,EAAOwD,EAAcnE,UAAWO,GAAqB,WACnD,OAAOoD,QAET/D,EAAQuE,cAAgBA,EAKxBvE,EAAQoH,MAAQ,SAAS3F,EAASC,EAASC,EAAMC,EAAa4C,QACxC,IAAhBA,IAAwBA,EAAc6C,SAE1C,IAAIC,EAAO,IAAI/C,EACb/C,EAAKC,EAASC,EAASC,EAAMC,GAC7B4C,GAGF,OAAOxE,EAAQ2G,oBAAoBjF,GAC/B4F,EACAA,EAAK/B,OAAOR,MAAK,SAASH,GACxB,OAAOA,EAAOrB,KAAOqB,EAAO1D,MAAQoG,EAAK/B,WAuKjDlB,EAAsBD,GAEtBrD,EAAOqD,EAAIvD,EAAmB,aAO9BE,EAAOqD,EAAI3D,GAAgB,WACzB,OAAOsD,QAGThD,EAAOqD,EAAI,YAAY,WACrB,MAAO,wBAkCTpE,EAAQuH,KAAO,SAASC,GACtB,IAAID,EAAO,GACX,IAAK,IAAItG,KAAOuG,EACdD,EAAKtB,KAAKhF,GAMZ,OAJAsG,EAAKE,UAIE,SAASlC,IACd,KAAOgC,EAAKf,QAAQ,CAClB,IAAIvF,EAAMsG,EAAKG,MACf,GAAIzG,KAAOuG,EAGT,OAFAjC,EAAKrE,MAAQD,EACbsE,EAAKhC,MAAO,EACLgC,EAQX,OADAA,EAAKhC,MAAO,EACLgC,IAsCXvF,EAAQmE,OAASA,EAMjBjC,EAAQ9B,UAAY,CAClB0G,YAAa5E,EAEbkE,MAAO,SAASuB,GAcd,GAbA5D,KAAK6D,KAAO,EACZ7D,KAAKwB,KAAO,EAGZxB,KAAKf,KAAOe,KAAKd,MAAQhD,EACzB8D,KAAKR,MAAO,EACZQ,KAAKnB,SAAW,KAEhBmB,KAAKzB,OAAS,OACdyB,KAAKxB,IAAMtC,EAEX8D,KAAKiC,WAAW1B,QAAQ4B,IAEnByB,EACH,IAAK,IAAIZ,KAAQhD,KAEQ,MAAnBgD,EAAKc,OAAO,IACZxH,EAAOsD,KAAKI,KAAMgD,KACjBR,OAAOQ,EAAKe,MAAM,MACrB/D,KAAKgD,GAAQ9G,IAMrB8H,KAAM,WACJhE,KAAKR,MAAO,EAEZ,IACIyE,EADYjE,KAAKiC,WAAW,GACLG,WAC3B,GAAwB,UAApB6B,EAAW1E,KACb,MAAM0E,EAAWzF,IAGnB,OAAOwB,KAAKkE,MAGd/E,kBAAmB,SAASgF,GAC1B,GAAInE,KAAKR,KACP,MAAM2E,EAGR,IAAIjG,EAAU8B,KACd,SAASoE,EAAOC,EAAKC,GAYnB,OAXAjF,EAAOE,KAAO,QACdF,EAAOb,IAAM2F,EACbjG,EAAQsD,KAAO6C,EAEXC,IAGFpG,EAAQK,OAAS,OACjBL,EAAQM,IAAMtC,KAGNoI,EAGZ,IAAK,IAAI5B,EAAI1C,KAAKiC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ5B,KAAKiC,WAAWS,GACxBrD,EAASuC,EAAMQ,WAEnB,GAAqB,SAAjBR,EAAMC,OAIR,OAAOuC,EAAO,OAGhB,GAAIxC,EAAMC,QAAU7B,KAAK6D,KAAM,CAC7B,IAAIU,EAAWjI,EAAOsD,KAAKgC,EAAO,YAC9B4C,EAAalI,EAAOsD,KAAKgC,EAAO,cAEpC,GAAI2C,GAAYC,EAAY,CAC1B,GAAIxE,KAAK6D,KAAOjC,EAAME,SACpB,OAAOsC,EAAOxC,EAAME,UAAU,GACzB,GAAI9B,KAAK6D,KAAOjC,EAAMG,WAC3B,OAAOqC,EAAOxC,EAAMG,iBAGjB,GAAIwC,GACT,GAAIvE,KAAK6D,KAAOjC,EAAME,SACpB,OAAOsC,EAAOxC,EAAME,UAAU,OAG3B,CAAA,IAAI0C,EAMT,MAAM,IAAI9F,MAAM,0CALhB,GAAIsB,KAAK6D,KAAOjC,EAAMG,WACpB,OAAOqC,EAAOxC,EAAMG,gBAU9B3C,OAAQ,SAASG,EAAMf,GACrB,IAAK,IAAIkE,EAAI1C,KAAKiC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ5B,KAAKiC,WAAWS,GAC5B,GAAId,EAAMC,QAAU7B,KAAK6D,MACrBvH,EAAOsD,KAAKgC,EAAO,eACnB5B,KAAK6D,KAAOjC,EAAMG,WAAY,CAChC,IAAI0C,EAAe7C,EACnB,OAIA6C,IACU,UAATlF,GACS,aAATA,IACDkF,EAAa5C,QAAUrD,GACvBA,GAAOiG,EAAa1C,aAGtB0C,EAAe,MAGjB,IAAIpF,EAASoF,EAAeA,EAAarC,WAAa,GAItD,OAHA/C,EAAOE,KAAOA,EACdF,EAAOb,IAAMA,EAETiG,GACFzE,KAAKzB,OAAS,OACdyB,KAAKwB,KAAOiD,EAAa1C,WAClB/C,GAGFgB,KAAK0E,SAASrF,IAGvBqF,SAAU,SAASrF,EAAQ2C,GACzB,GAAoB,UAAhB3C,EAAOE,KACT,MAAMF,EAAOb,IAcf,MAXoB,UAAhBa,EAAOE,MACS,aAAhBF,EAAOE,KACTS,KAAKwB,KAAOnC,EAAOb,IACM,WAAhBa,EAAOE,MAChBS,KAAKkE,KAAOlE,KAAKxB,IAAMa,EAAOb,IAC9BwB,KAAKzB,OAAS,SACdyB,KAAKwB,KAAO,OACa,WAAhBnC,EAAOE,MAAqByC,IACrChC,KAAKwB,KAAOQ,GAGPhD,GAGT2F,OAAQ,SAAS5C,GACf,IAAK,IAAIW,EAAI1C,KAAKiC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ5B,KAAKiC,WAAWS,GAC5B,GAAId,EAAMG,aAAeA,EAGvB,OAFA/B,KAAK0E,SAAS9C,EAAMQ,WAAYR,EAAMI,UACtCG,EAAcP,GACP5C,IAKb4F,MAAS,SAAS/C,GAChB,IAAK,IAAIa,EAAI1C,KAAKiC,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ5B,KAAKiC,WAAWS,GAC5B,GAAId,EAAMC,SAAWA,EAAQ,CAC3B,IAAIxC,EAASuC,EAAMQ,WACnB,GAAoB,UAAhB/C,EAAOE,KAAkB,CAC3B,IAAIsF,EAASxF,EAAOb,IACpB2D,EAAcP,GAEhB,OAAOiD,GAMX,MAAM,IAAInG,MAAM,0BAGlBoG,cAAe,SAASxC,EAAUf,EAAYE,GAa5C,OAZAzB,KAAKnB,SAAW,CACdlC,SAAUyD,EAAOkC,GACjBf,WAAYA,EACZE,QAASA,GAGS,SAAhBzB,KAAKzB,SAGPyB,KAAKxB,IAAMtC,GAGN8C,IAQJ/C,EA9sBM,KAwtBf,IACE8I,mBAAqB/I,EACrB,MAAOgJ,GAWmB,YAAtB,oBAAOC,WAAP,YAAAnE,EAAOmE,aACTA,WAAWF,mBAAqB/I,EAEhCkJ,SAAS,IAAK,yBAAdA,CAAwClJ,OCltBzC,CAACmJ,QAAQ9I,UAAW+I,SAAS/I,UAAWgJ,iBAAiBhJ,WArBtDkE,SAAQ,SAAU+E,GAChBA,EAAK/I,eAAe,YAGxBH,OAAOgB,eAAekI,EAAM,UAAW,CACrChI,cAAc,EACdD,YAAY,EACZE,UAAU,EACVJ,MAAO,WACL,IAAIoI,EAASC,MAAMnJ,UAAU0H,MAAMnE,KAAK6F,WACtCC,EAAUC,SAASC,yBAErBL,EAAOhF,SAAQ,SAAUsF,GACvB,IAAIC,EAASD,aAAmBE,KAChCL,EAAQM,YAAYF,EAASD,EAAUF,SAASM,eAAeC,OAAOL,QAGxE7F,KAAKmG,aAAaT,EAAS1F,KAAKoG,kBAMpCC,OAAOC,WAAaA,SAASjK,UAAUkE,UACzC+F,SAASjK,UAAUkE,QAAUiF,MAAMnJ,UAAUkE,SAG3C8F,OAAOE,iBAAmBA,eAAelK,UAAUkE,UACrDgG,eAAelK,UAAUkE,QAAUiF,MAAMnJ,UAAUkE,SAGrD,IAmDMiG,EAAkB,SAAAC,GACtB,OAAQA,GACN,IAAK,KACL,IAAK,OACL,IAAK,IACH,OAAO,EACT,QACE,OAAO,IAIPC,EAAY,SAACC,EAAQC,EAASC,GAOlC,IANuB,iBAAZD,IACTA,EAAUjB,SAASmB,cAAcF,IAGnCD,EAAOX,YAAYY,GAASC,UAAYA,EAEjCF,EAAOP,aAAeQ,GAC3BA,EAAQZ,YAAYW,EAAOP,aAIzBW,EAAS,SAAAH,GACb,IAAIlB,EAAUC,SAASC,yBAEvB,GAAKgB,EAAL,CAEA,KAAOA,EAAQR,YAAY,CACzB,IAAIY,EAAQJ,EAAQK,YAAYL,EAAQR,YACxCV,EAAQM,YAAYgB,GAGtBJ,EAAQM,WAAWC,aAAazB,EAASkB,KAGrCQ,EAAY,SAAC3D,EAAQ4D,GACzBjL,OAAOoH,KAAKC,GAAQlD,SAAQ,SAAArD,GACF,mBAAbmK,GACTA,EAASnK,OAKToK,EAAW,SAACC,EAAOF,GACvB7B,MAAMgC,KAAKD,GAAOhH,SAAQ,SAAArD,GACA,mBAAbmK,GACTA,EAASnK,OAiBTuK,EAAQ,WAAA,OAAMpB,OAAOqB,iBCnJrBC,EAAY,WAAiC,IAAvB3E,EAAuByC,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAhB,GAAItI,EAAYsI,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAJ,GACzCmC,EAAM,IAAIC,KACVC,EAAOF,EAAIG,UACfD,GAAQ,MACRF,EAAII,QAAQF,GACZnC,SAASsC,OAAT,OAAAC,OAAyBlF,EAAzB,KAAAkF,OAAiC/K,EAAjC,oBAAA+K,OAAyDN,EAAIO,cAA7D,YAAAD,OAAqFE,SAASC,OAG1FC,EAAY,WAAqB,IAAXtF,EAAWyC,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAJ,GACjCzC,EAAI,OAAAkF,OAAUlF,EAAV,KAIJ,IAHA,IAAIuF,EAAgBC,mBAAmB7C,SAASsC,QAC5CQ,EAAUF,EAAcG,MAAM,KAEzBhG,EAAI,EAAGA,EAAI+F,EAAQhG,OAAQC,IAAK,CACvC,IAAIuF,EAASQ,EAAQ/F,GAAGiG,OAExB,IAA8B,IAA1BV,EAAOW,QAAQ5F,GACjB,OAAOiF,EAAOY,UAAU7F,EAAKP,OAAQwF,EAAOxF,UAK5CqG,EAAe,WAAqB,IAAX9F,EAAWyC,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAJ,GACpCE,SAASsC,OAAT,OAAAC,OAAyBlF,EAAzB,0DAAAkF,OAAsFE,SAASC,OCvB3FU,EAAO,CACX,QAAS,CACPC,KAAQ,CACNC,SAAY,gBACZC,WAAc,cACdC,OAAU,cACVC,OAAU,cACVC,SAAY,YACZC,wBAA2B,uBAC3BC,cAAiB,0BACjBC,OAAU,cACVC,QAAW,UACXC,IAAO,UACPC,WAAc,uBACdC,KAAQ,QACRC,MAAS,cACTC,MAAS,cACTC,cAAiB,2CACjBC,GAAM,WACNC,IAAO,YACP5H,MAAS,qBACT6H,SAAY,UACZC,SAAY,UACZC,SAAY,YAEdC,MAAS,CACPC,aAAgB,0BAChBC,cAAiB,0BACjBC,sBAAyB,8BACzBC,sBAAyB,8BACzBC,wBAA2B,qCAC3BC,oBAAuB,sCACvBC,0BAA6B,0CAC7BC,SAAY,uBACZC,UAAa,wBACbC,gBAAmB,0BACnBC,SAAY,sBACZC,UAAa,wBACbC,iBAAoB,mCACpBC,kBAAqB,+BACrBC,cAAiB,+BACjBC,oBAAuB,qCACvBC,qBAAwB,iCACxBC,iBAAoB,iCACpBC,UAAa,oBACbC,UAAa,oBACbC,gBAAmB,+BACnBC,iBAAoB,gCACpBC,cAAiB,sCACjBC,UAAa,iBACbC,UAAa,gBACbC,QAAW,iCACXC,SAAY,yBAGhB,QAAS,CACPhD,KAAQ,CACNC,SAAY,YACZC,WAAc,cACdC,OAAU,SACVC,OAAU,mBACVC,SAAY,WACZC,wBAA2B,8BAC3BC,cAAiB,iBACjBC,OAAU,SACVC,QAAW,iBACXC,IAAO,SACPC,WAAc,eACdC,KAAO,OACPC,MAAS,qBACTC,MAAS,0BACTC,cAAiB,+CACjBC,GAAM,SACNC,IAAO,WACP5H,MAAS,iBACT6H,SAAY,QACZC,SAAY,SACZC,SAAY,UAEdC,MAAS,CACPC,aAAgB,sBAChBC,cAAiB,oBACjBC,sBAAyB,4BACzBC,sBAAyB,4BACzBC,wBAA2B,+BAC3BC,oBAAuB,sBACvBC,0BAA6B,iCAC7BC,SAAY,gBACZC,UAAa,kBACbC,gBAAmB,oBACnBC,SAAY,0BACZC,UAAa,4BACbC,iBAAoB,sBACpBC,kBAAqB,8BACrBC,cAAiB,sBACjBC,oBAAuB,wBACvBC,qBAAwB,gCACxBC,iBAAoB,+BACpBC,UAAa,qBACbC,UAAa,0BACbC,gBAAmB,sCACnBC,iBAAoB,uCACpBC,cAAiB,iCACjBC,UAAa,aACbC,UAAa,aACbC,QAAW,qCACXC,SAAY,iCAKZC,EAAAA,WACJ,SAAAA,EAAYC,GAASC,EAAAnM,KAAAiM,GACnBjM,KAAKoM,QAAUF,6BAGjB,SAAEhP,GACA,OAAO6L,EAAK/I,KAAKoM,QAAQrD,MAAlB,KAAgC7L,oBAGzC,SAAEA,GACA,OAAO6L,EAAK/I,KAAKoM,QAAQrD,MAAlB,MAAiC7L,SAVtC+O,GCxFAI,EAAU,CACdC,OAAQ,YACRrD,SAAU,GACVsD,MAAO,QACPpD,OAAQ,YACRI,cAAe,SACfI,WAAY,SACZP,QAAQ,EACRoD,WAAY,QACZzC,eAAe,EACf0C,YAAY,EACZX,WAAW,EACXY,QAAQ,EACR3D,KAAM,SAGF4D,EAAc,CAClBL,OAAQ,SACRrD,SAAU,SACVsD,MAAO,SACPpD,OAAQ,mBACRI,cAAe,SACfI,WAAY,SACZP,OAAQ,UACRoD,WAAY,SACZzC,cAAe,UACf0C,WAAY,UACZX,UAAW,UACXY,OAAQ,UACR3D,KAAM,UAGF6D,EAAiB,CACrBN,OAAQ,GACRrD,SAAU,+BACVsD,MAAO,iCACPpD,OAAQ,yBACRI,cAAe,uBACfI,WAAY,uBACZP,OAAQ,eACRoD,WAAY,gBACZzC,cAAe,eACf0C,WAAY,eACZX,UAAW,eACXY,OAAQ,eACR3D,KAAM,uBChEO,CAAE8D,IDwEXA,WACJ,SAAAA,EAAYX,GAASC,EAAAnM,KAAA6M,GACnB7M,KAAKoM,QAAUpM,KAAK8M,WAAWZ,GAC/BlM,KAAK+M,UAAYpH,SAASqH,iBAAiBhN,KAAKoM,QAAQE,QACxDtM,KAAKiN,MAAQ,IAAIhB,EAAK,CACpBlD,KAAM/I,KAAKoM,QAAQrD,OAGrB/I,KAAKkN,qBACLlN,KAAKmN,QAELC,QAAQC,IAAI,qFAKd,WACEjG,EAAUpH,KAAKoM,SAAS,SAAAlP,QACQ,IAAnBoL,EAAUpL,IACnB4L,EAAa,kBAIbtC,EAAgB8B,EAAU,iBAC5BtI,KAAKsN,OACLtN,KAAKuN,YACLvN,KAAKwN,0BACLxN,KAAKyN,UACLzN,KAAK0N,gBAED,oBAAqBrH,QAAUG,EAAgB8B,EAAU,YAE3DqF,aAAY,WACV,IAAwB,IAApBlG,IAAQmG,QAAmB,CAC7B,IAAIC,EAAOlI,SAASqH,iBAAiB,oBACjCc,EAAQnI,SAASqH,iBAAiB,qBAClCe,EAASpI,SAASqH,iBAAiB,sBACnChJ,EAAO2B,SAASqH,iBAAiB,oBAC/BgB,EAAK,SAACC,EAAU5G,GACpB4G,EAAS1N,SAAQ,SAAA2N,GACf,OAAO7G,EAAS6G,OAIpBF,EAAGH,GAAM,SAAAK,GAAO,OAAIA,EAAQC,UAAUC,OAAO,eAC7CJ,EAAGF,GAAO,SAAAI,GAAO,OAAIA,EAAQC,UAAUE,IAAI,eAC3CL,EAAGD,GAAQ,SAAAG,GAAO,OAAIA,EAAQC,UAAUE,IAAI,eAC5CL,EAAGhK,GAAM,SAAAkK,GAAO,OAAIA,EAAQC,UAAUE,IAAI,kBAE3C,MAILrO,KAAKsO,4CAIT,WAAqB,IAAAC,EAAAvO,KACnB,IAAKA,KAAK+M,UACR,OAAO,EAGT/M,KAAK+M,UAAUxM,SAAQ,SAAA2N,GACrBA,EAAQM,iBAAiB,SAAS,SAAAC,GAChCA,EAAMC,iBAENtH,EAAUmH,EAAKnC,SAAS,SAAAlP,GAAG,OAAIyK,EAAUzK,EAAKqR,EAAKnC,QAAQlP,OAC3DyK,EAAU,eAAe,GAEzB4G,EAAKpB,QACLoB,EAAKI,QAAL,GAAAzG,OAAgBqG,EAAKtB,MAAM2B,EAAE,0DAMnC,WAA0B,IAAAC,EAAA7O,KAClBiO,EAAW,CACf1D,cAAe5E,SAASmJ,cAAc,uBACtCxE,aAAc3E,SAASmJ,cAAc,sBACrCC,WAAYpJ,SAASmJ,cAAc,oBACnCE,WAAYrJ,SAASmJ,cAAc,oBACnCG,UAAWtJ,SAASmJ,cAAc,mBAClCI,WAAYvJ,SAASmJ,cAAc,oBACnCK,WAAYxJ,SAASmJ,cAAc,oBACnCjE,SAAUlF,SAASmJ,cAAc,kBACjCM,UAAWzJ,SAASmJ,cAAc,mBAClC/D,gBAAiBpF,SAASmJ,cAAc,yBACxC9D,SAAUrF,SAASmJ,cAAc,kBACjC7D,UAAWtF,SAASmJ,cAAc,mBAClC5D,iBAAkBvF,SAASmJ,cAAc,2BACzC3D,kBAAmBxF,SAASmJ,cAAc,4BAC1C1D,cAAezF,SAASmJ,cAAc,wBACtCO,oBAAqB1J,SAASmJ,cAAc,8BAC5CQ,qBAAsB3J,SAASmJ,cAAc,+BAC7CS,iBAAkB5J,SAASmJ,cAAc,2BACzCU,gBAAiB7J,SAASmJ,cAAc,0BACxCW,gBAAiB9J,SAASmJ,cAAc,0BACxCpD,gBAAiB/F,SAASmJ,cAAc,0BACxCY,iBAAkB/J,SAASmJ,cAAc,2BACzCzM,MAAOsD,SAASmJ,cAAc,cAC9Ba,MAAOhK,SAASqH,iBAAiB,aACjC4C,MAAOjK,SAASmJ,cAAc,eAG1Be,EAAa,SAAA3B,GAAW,IAAA4B,EAAAC,65BAAAC,CACR9B,EAAQhH,WAAW+I,UADX,IAC5B,IAAAF,EAAAG,MAAAJ,EAAAC,EAAAI,KAAA3Q,MAAiDsQ,EAAA3S,MACvCgR,UAAUC,OAAO,UAFC,MAAA5Q,GAAAuS,EAAAK,EAAA5S,GAAA,QAAAuS,EAAAM,IAK5BnC,EAAQC,UAAUE,IAAI,WAGlBiC,EAAQ,SAACpC,EAAS7G,GACtB6G,EAAQM,iBAAiB,SAAS,SAAAC,GAChCA,EAAMC,iBAEkB,mBAAbrH,GACTA,EAASoH,OAKT8B,EAAY,WACJ5K,SAASqH,iBAAiB,aAEhCzM,SAAQ,SAAAiQ,GACZA,EAAKrC,UAAUC,OAAO,aAGxBhH,EAAUyH,EAAKzC,SAAS,SAAAlP,GACtB,GAAY,UAARA,EAAiB,CACnB,IAAIC,EAAQmL,EAAUpL,GACtByI,SAASmJ,cAAT,cAAA5G,OAAqC/K,IAASgR,UAAUE,IAAI,UAG9D,GAAY,WAARnR,EAAkB,CACpB,IAAIC,EAA2B,cAAnBmL,EAAUpL,GAAuB,YAAcsJ,EAAgB8B,EAAUpL,IAAQ,KAAO,MAEpGyI,SAASmJ,cAAT,eAAA5G,OAAsC/K,IAASgR,UAAUE,IAAI,UAG/D,GAAY,WAARnR,EAAkB,CACpB,IAAIC,EAAQqJ,EAAgB8B,EAAUpL,IAAQ,KAAO,MAErDyI,SAASmJ,cAAT,eAAA5G,OAAsC/K,IAASgR,UAAUE,IAAI,UAG/D,GAAY,eAARnR,EAAsB,CACxB,IAAIC,EAAQmL,EAAUpL,GAEtByI,SAASmJ,cAAT,oBAAA5G,OAA2C/K,IAASgR,UAAUE,IAAI,UAGpE,GAAY,kBAARnR,EAAyB,CAC3B,IAAIC,EAAQmL,EAAUpL,GAEtByI,SAASmJ,cAAT,uBAAA5G,OAA8C/K,IAASgR,UAAUE,IAAI,UAGvE,GAAY,eAARnR,EAAsB,CACxB,IAAIC,EAAQmL,EAAUpL,GAEtByI,SAASmJ,cAAT,oBAAA5G,OAA2C/K,IAASgR,UAAUE,IAAI,UAGpE,GAAY,kBAARnR,EAAyB,CAC3B,IAAIC,EAAQqJ,EAAgB8B,EAAUpL,IAAQ,KAAO,MAErDyI,SAASmJ,cAAT,uBAAA5G,OAA8C/K,IAASgR,UAAUE,IAAI,eAK3EkC,IAGAD,EAAMrC,EAAS1D,eAAe,WAC5B,IAAIkG,EAAOC,WAAWpI,EAAU,aAAe,EAElC,IAATmI,IACF5B,EAAK8B,oBAAoB,WAAYF,GACrC9I,EAAU,WAAY8I,GACtB5B,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,mBAC7BiB,EAAW5B,EAAS1D,mBAIxB+F,EAAMrC,EAAS3D,cAAc,WAC3B,IAAImG,EAAOC,WAAWpI,EAAU,aAAe,EAElC,KAATmI,IACF5B,EAAK8B,oBAAoB,WAAYF,GACrC9I,EAAU,WAAY8I,GACtB5B,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,kBAC7BiB,EAAW5B,EAAS3D,kBAKxBgG,EAAMrC,EAASc,YAAY,WACzBF,EAAK8B,oBAAoB,QAAS,SAClChJ,EAAU,QAAS,SACnBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,2BAC7BiB,EAAW5B,EAASc,eAGtBuB,EAAMrC,EAASe,YAAY,WACzBH,EAAK8B,oBAAoB,QAAS,SAClChJ,EAAU,QAAS,SACnBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,2BAC7BiB,EAAW5B,EAASe,eAGtBsB,EAAMrC,EAASgB,WAAW,WACxBJ,EAAK8B,oBAAoB,QAAS,QAClChJ,EAAU,QAAS,QACnBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,6BAC7BiB,EAAW5B,EAASgB,cAGtBqB,EAAMrC,EAASiB,YAAY,WACzBL,EAAK8B,oBAAoB,QAAS,SAClChJ,EAAU,QAAS,SACnBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,yBAC7BiB,EAAW5B,EAASiB,eAGtBoB,EAAMrC,EAASkB,YAAY,WACzBN,EAAK8B,oBAAoB,QAAS,SAClChJ,EAAU,QAAS,SACnBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,+BAC7BiB,EAAW5B,EAASkB,eAItBmB,EAAMrC,EAASpD,UAAU,WACvBgE,EAAK8B,oBAAoB,SAAU,QACnChJ,EAAU,SAAU,QACpBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,cAC7BiB,EAAW5B,EAASpD,aAGtByF,EAAMrC,EAASmB,WAAW,WACxBP,EAAK8B,oBAAoB,SAAU,SACnChJ,EAAU,SAAU,SACpBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,eAC7BiB,EAAW5B,EAASmB,cAGtBkB,EAAMrC,EAASlD,iBAAiB,WAC9B8D,EAAK8B,oBAAoB,SAAU,aACnChJ,EAAU,SAAU,aACpBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,qBAC7BiB,EAAW5B,EAASlD,oBAItBuF,EAAMrC,EAASjD,UAAU,WACvB6D,EAAK8B,oBAAoB,SAAU,QACnChJ,EAAU,SAAU,QACpBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,cAC7BiB,EAAW5B,EAASjD,UACpB6D,EAAKnB,mBAGP4C,EAAMrC,EAAShD,WAAW,WACxB4D,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,eAC7BC,EAAK8B,oBAAoB,SAAU,SACnChJ,EAAU,SAAU,SACpBkI,EAAW5B,EAAShD,WACpB4D,EAAKnB,mBAIP4C,EAAMrC,EAAS/C,kBAAkB,WAC/B2D,EAAK8B,oBAAoB,aAAc,UACvChJ,EAAU,aAAc,UACxBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,sBAC7BiB,EAAW5B,EAAS/C,qBAGtBoF,EAAMrC,EAAS9C,mBAAmB,WAChC0D,EAAK8B,oBAAoB,aAAc,WACvChJ,EAAU,aAAc,WACxBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,uBAC7BiB,EAAW5B,EAAS9C,sBAGtBmF,EAAMrC,EAAS7C,eAAe,WAC5ByD,EAAK8B,oBAAoB,aAAc,OACvChJ,EAAU,aAAc,OACxBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,mBAC7BiB,EAAW5B,EAAS7C,kBAItBkF,EAAMrC,EAASoB,qBAAqB,WAClCR,EAAK8B,oBAAoB,gBAAiB,UAC1ChJ,EAAU,gBAAiB,UAC3BkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,yBAC7BiB,EAAW5B,EAASoB,wBAGtBiB,EAAMrC,EAASqB,sBAAsB,WACnCT,EAAK8B,oBAAoB,gBAAiB,WAC1ChJ,EAAU,gBAAiB,WAC3BkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,0BAC7BiB,EAAW5B,EAASqB,yBAGtBgB,EAAMrC,EAASsB,kBAAkB,WAC/BV,EAAK8B,oBAAoB,gBAAiB,OAC1ChJ,EAAU,gBAAiB,OAC3BkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,sBAC7BiB,EAAW5B,EAASsB,qBAItBe,EAAMrC,EAASuB,iBAAiB,WAC9BX,EAAK8B,oBAAoB,aAAc,SACvChJ,EAAU,aAAc,SACxBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,eAC7BiB,EAAW5B,EAASuB,oBAGtBc,EAAMrC,EAASwB,iBAAiB,WAC9BZ,EAAK8B,oBAAoB,aAAc,SACvChJ,EAAU,aAAc,SACxBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,eAC7BiB,EAAW5B,EAASwB,oBAItBa,EAAMrC,EAASvC,iBAAiB,WAC9BmD,EAAK8B,oBAAoB,gBAAiB,QAC1ChJ,EAAU,gBAAiB,QAC3BkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,qBAC7BiB,EAAW5B,EAASvC,oBAGtB4E,EAAMrC,EAASyB,kBAAkB,WAC/Bb,EAAK8B,oBAAoB,gBAAiB,SAC1ChJ,EAAU,gBAAiB,SAC3BkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,sBAC7BiB,EAAW5B,EAASyB,qBAItBY,EAAMrC,EAAS5L,OAAO,WACpBwM,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,mBAC7BxH,EAAUyH,EAAKzC,SAAS,SAAAlP,GACtB2R,EAAK8B,oBAAoBzT,EAAK2R,EAAKzC,QAAQlP,IAC3CyK,EAAUzK,EAAK2R,EAAKzC,QAAQlP,IAC5BqT,UAIJjJ,EAAS2G,EAAS0B,OAAO,SAAAzB,GACvBoC,EAAMpC,GAAS,SAAAO,GACb,IAAInC,EAASmC,EAAMnC,OAAOsE,aAAa,YAExB,UAAXtE,IACFuC,EAAK8B,oBAAoB,cAAe,SACxChJ,EAAU,cAAe,SACzBkH,EAAK1B,SAGQ,UAAXb,IACF3G,SAASkL,KAAKC,MAAMC,SAAW,SAC/BpL,SAASkL,KAAK1C,UAAUE,IAAI,gBAC5BJ,EAAS2B,MAAMzB,UAAU6C,OAAO,SAGnB,gBAAX1E,IACF3G,SAASkL,KAAK1C,UAAUC,OAAO,gBAC/BzI,SAASkL,KAAKC,MAAMC,SAAW,GAC/B9C,EAAS2B,MAAMzB,UAAUC,OAAO,SAGnB,eAAX9B,IACF3G,SAASmJ,cAAc,cAAcX,UAAUE,IAAI,kBACnD1I,SAASmJ,cAAc,uBAAuBX,UAAUC,OAAO,YAC/DzI,SAASmJ,cAAc,uBAAuBX,UAAUE,IAAI,YAC5D1G,EAAU,YAAa,QACvBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,gBAGhB,eAAXtC,IACF3G,SAASmJ,cAAc,uBAAuBX,UAAUC,OAAO,YAC/DzI,SAASmJ,cAAc,uBAAuBX,UAAUE,IAAI,YAC5D1I,SAASmJ,cAAc,cAAcX,UAAUC,OAAO,kBACtDzG,EAAU,YAAa,SACvBkH,EAAKF,QAAL,GAAAzG,OAAgB2G,EAAK5B,MAAM2B,EAAE,sBAKnC0B,EAAMrC,EAAS2B,OAAO,SAAAnB,GAChBA,EAAMnC,OAAO2E,SAAShD,EAAS2B,SACjCjK,SAASkL,KAAK1C,UAAUC,OAAO,gBAC/BzI,SAASkL,KAAKC,MAAMC,SAAW,GAC/B9C,EAAS2B,MAAMzB,UAAUC,OAAO,qCAKtC,WACE,IAAM8C,EAAS,WACb,IAAIA,OAAiChV,IAAvBmK,OAAO8K,YAA6B9K,OAAO8K,aAAexL,SAASyL,iBAAmBzL,SAASkL,KAAK3J,YAAcvB,SAASkL,MAAMQ,UAE3I7K,EAAgB8B,EAAU,iBACxB4I,EAAS,IACXvL,SAASmJ,cAAc,cAAcX,UAAUE,IAAI,iBAEnD1I,SAASmJ,cAAc,cAAcX,UAAUC,OAAO,mBAKxDtC,EAAYtF,EAAgB8B,EAAU,cAAgB,kBAAoB,GAC1EgJ,EAAY9K,EAAgB8B,EAAU,cAA8B,WAAd,YACtDiJ,EAAI,8BAAArJ,OACe4D,EADf,8IAAA5D,OAImClI,KAAKiN,MAAMuE,EAAE,YAJhD,+OAAAtJ,OASmClI,KAAKiN,MAAMuE,EAAE,cAThD,qcAAAtJ,OAiBmClI,KAAKiN,MAAMuE,EAAE,UAjBhD,8jBAAAtJ,OA6BmClI,KAAKiN,MAAMuE,EAAE,UA7BhD,oaAAAtJ,OAsCmClI,KAAKiN,MAAMuE,EAAE,YAtChD,qPAAAtJ,OA2CUlI,KAAKiN,MAAMuE,EAAE,2BA3CvB,mcAAAtJ,OAsD2ClI,KAAKiN,MAAMuE,EAAE,YAtDxD,kXAAAtJ,OA4DmDlI,KAAKiN,MAAMuE,EAAE,iBA5DhE,mGAAAtJ,OA6D6ElI,KAAKiN,MAAMuE,EAAE,UA7D1F,kGAAAtJ,OA8D8ElI,KAAKiN,MAAMuE,EAAE,WA9D3F,8FAAAtJ,OA+D0ElI,KAAKiN,MAAMuE,EAAE,OA/DvF,gKAAAtJ,OAkEmDlI,KAAKiN,MAAMuE,EAAE,cAlEhE,gGAAAtJ,OAmE0ElI,KAAKiN,MAAMuE,EAAE,UAnEvF,+FAAAtJ,OAoE2ElI,KAAKiN,MAAMuE,EAAE,WApExF,2FAAAtJ,OAqEuElI,KAAKiN,MAAMuE,EAAE,OArEpF,gKAAAtJ,OAwEmDlI,KAAKiN,MAAMuE,EAAE,QAxEhE,+FAAAtJ,OAyEyElI,KAAKiN,MAAMuE,EAAE,SAzEtF,6FAAAtJ,OA0EyElI,KAAKiN,MAAMuE,EAAE,SA1EtF,gKAAAtJ,OA6EmDlI,KAAKiN,MAAMuE,EAAE,iBA7EhE,+FAAAtJ,OA8EyElI,KAAKiN,MAAMuE,EAAE,MA9EtF,8FAAAtJ,OA+E0ElI,KAAKiN,MAAMuE,EAAE,OA/EvF,mbAAAtJ,OAuFqDlI,KAAKiN,MAAMuE,EAAE,SAvFlE,4GA8FJhB,EAAO,gEAAAtI,OAAgEoJ,EAAhE,4BACT,iFAEFjL,OAAOmI,iBAAiB,SAAU0C,GAClCvL,SAASmJ,cAAc,aAAa2C,mBAAmB,cAAeF,GACtE5L,SAASmJ,cAAc,aAAa2C,mBAAmB,aAAcjB,GACrEU,wBAGF,WAAO,IAAAQ,EAAA1R,KACL2F,SAASkL,KAAK1C,UAAUE,IAAI,cAC5B3H,EAAUf,SAASkL,KAAM,MAAO,YAChCzJ,EAAUpH,KAAKoM,SAAS,SAAAlP,GAAG,OAAIwU,EAAKf,oBAAoBzT,EAAKoL,EAAUpL,OACvEoK,EAAStH,KAAK+M,WAAW,SAAAmB,GAAO,OAAIA,EAAQ4C,MAAMa,QAAU,UAE5DhM,SAASqH,iBAAiB,OACvBzM,SAAQ,SAAA2N,GACHA,EAAQC,UAAU8C,SAAS,YAC7B/C,EAAQC,UAAUC,OAAO,cAI/BzI,SAASqH,iBAAiB,UACvBzM,SAAQ,SAAA2N,GACHA,EAAQC,UAAU8C,SAAS,yBAC7B/C,EAAQC,UAAUC,OAAO,kDAKjC,WACE,IAAIwD,EAAWjM,SAASmJ,cAAc,cAClC+C,EAAUlM,SAASmJ,cAAc,aACjCgD,EAAkBnM,SAASmJ,cAAc,uBAEzC8C,GACFA,EAASxD,SAGPyD,GACF9K,EAAO8K,GAGLC,GACFA,EAAgB1D,SAGlBpO,KAAK2O,QAAL,GAAAzG,OAAgBlI,KAAKiN,MAAM2B,EAAE,cAE7BjJ,SAASkL,KAAK1C,UAAUC,OAAO,cAE/B9G,EAAStH,KAAK+M,WAAW,SAAAmB,GAAO,OAAIA,EAAQ4C,MAAMa,QAAU,MAExDnL,EAAgB8B,EAAU,YAC5B3C,SAASyC,SAASsE,SAGpBtF,EAAUpH,KAAKoM,SAAS,SAAAlP,GACtB4L,EAAa5L,MAGf8C,KAAK0N,gBAEL5E,EAAa,sCAGf,WACEnD,SAASqH,iBAAiB,OAAOzM,SAAQ,SAAA2N,GAClCA,EAAQC,UAAU8C,SAAS,iBAC9B/C,EAAQC,UAAUE,IAAI,cAI1B1I,SAASqH,iBAAiB,eAAezM,SAAQ,SAAA2N,GAC/C,IAAI4C,EAAQiB,iBAAiB7D,GACC,SAA1B4C,EAAMkB,iBAAmD,SAArBlB,EAAMmB,YAA0B/D,EAAQC,UAAU8C,SAAS,iBACjG/C,EAAQC,UAAUE,IAAI,qDAK5B,SAAW6D,GACTA,EAAMC,EAAAA,EAAA,GAAO9F,GAAY6F,GACzB,IAAIE,EAAW,GAEf,IAAK,IAAIC,KAAchG,EACrB+F,EAASC,GAAcH,EAAOG,GAKhC,OH3nBgB,SAACH,EAAQI,EAAaC,GACxCnW,OAAOoH,KAAK8O,GAAa/R,SAAQ,SAAArD,GAC/B,IAVcD,EAURuV,EAAgBF,EAAYpV,GAC5BC,EAAQ+U,EAAOhV,GACfuV,EAAYtV,IAZJF,EAYuBE,IAXZ,WAAf2D,EAAO7D,SAIY,IAAjBA,EAAIyV,SAO8B,UApBnC,SAAAzV,GACb,OAAIA,MAAAA,EACF,GAAAiL,OAAUjL,GAGL,GAAG0V,SAAS/S,KAAK3C,GAAK2V,MAAM,eAAe,GAAGC,cAeOC,CAAO3V,GAEjE,IAAK,IAAI4V,OAAOP,GAAeQ,KAAKP,GAClC,MAAM,IAAIpR,UAAJ,uBAAA6G,OACmBhL,EADnB,2BAAAgL,OACgDuK,EADhD,sBAAAvK,OAC8EsK,EAD9E,UAMVpW,OAAOoH,KAAK+O,GAAehS,SAAQ,SAAArD,GACjC,IAAM+V,EAAkBV,EAAcrV,GAChCC,EAAQ+U,EAAOhV,GAErB,IAAK,IAAI6V,OAAOE,GAAiBD,KAAK7V,GACpC,MAAM,IAAIkE,UAAJ,uBAAA6G,OACmBhL,EADnB,gBAAAgL,OACqC/K,EADrC,2BAAA+K,OACoE+K,EADpE,UGumBRC,CAAYd,EAAUzF,EAAaC,GAE5BwF,qCAGT,WAA2C,IAAvBpP,EAAuByC,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAhB,GAAItI,EAAYsI,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,GAAAA,UAAA,GAAJ,GACrCE,SAASmJ,cAAc,aAAaqE,aAApC,YAAAjL,OAA6DlF,GAAQ7F,gCAGvE,WAAgB,IAAAiW,EAAApT,KACVqT,EAAqB1N,SAASqH,iBAAiB,oBAC/CsG,EAAqB3N,SAASqH,iBAAiB,oBAC/CuG,EAAoB5N,SAASqH,iBAAiB,eAElD,GAAI,oBAAqB3G,QAAUG,EAAgB8B,EAAU,YAE3D,GAAIiL,EAAmB,CACjBF,GACFA,EAAmB9S,SAAQ,SAAA2N,GAAO,OAAInH,EAAOmH,MAG3CoF,GACFA,EAAmB/S,SAAQ,SAAA2N,GAAO,OAAIA,EAAQE,YAGhDmF,EAAkBhT,SAAQ,SAACiT,EAAgBC,GACzC,IAAIC,EAAE,sBAAAxL,OAAyBuL,EAAQ,GASvC/M,EAAU8M,EAAgB,MAAjB,mBAAAtL,OAA2CwL,IACpDF,EAAe/B,mBAAmB,aAT1B,8cAYV,IAAIkC,EAAehO,SAASqH,iBAAiB,oBACzC4G,EAAgBjO,SAASqH,iBAAiB,qBAC1C6G,EAAiBlO,SAASqH,iBAAiB,sBAC3C8G,EAAenO,SAASqH,iBAAiB,oBACvCgB,EAAK,SAACC,EAAU5G,GACpB4G,EAAS1N,SAAQ,SAAA2N,GACfA,EAAQM,iBAAiB,SAAS,SAAAC,GAEhC,GADAA,EAAMC,iBACkB,mBAAbrH,EACT,OAAOA,EAAS6G,EAASO,MAE1B,OAIPT,EAAG2F,GAAc,SAACzF,EAASO,GACzB,IAAInC,EAASmC,EAAMnC,OACftD,EAAOsD,EAAOpF,WAAW6M,mBACzBC,EAAUvF,EAAMnC,OAAO0H,QAAQ,oBAC/BnG,EAAOlI,SAASqH,iBAAiB,oBACjCc,EAAQnI,SAASqH,iBAAiB,qBAClCe,EAASpI,SAASqH,iBAAiB,sBACnChJ,EAAO2B,SAASqH,iBAAiB,oBAErCoG,EAAKzE,QAAQ3F,EAAKiL,YAAajL,GAAM,GAErC6E,EAAKtN,SAAQ,SAAA2N,GAAO,OAAIA,EAAQC,UAAUC,OAAO,eACjDN,EAAMvN,SAAQ,SAAA2N,GAAO,OAAIA,EAAQC,UAAUE,IAAI,eAC/CN,EAAOxN,SAAQ,SAAA2N,GAAO,OAAIA,EAAQC,UAAUE,IAAI,eAChDrK,EAAKzD,SAAQ,SAAA2N,GAAO,OAAIA,EAAQC,UAAUE,IAAI,eAE9C/B,EAAO6B,UAAUE,IAAI,YACrB2F,EAAQlF,cAAc,qBAAqBX,UAAUC,OAAO,YAC5D4F,EAAQlF,cAAc,oBAAoBX,UAAUC,OAAO,eAG7DJ,EAAG4F,GAAe,SAAC1F,EAASO,GAC1B,IAAInC,EAASmC,EAAMnC,OACf0H,EAAUvF,EAAMnC,OAAO0H,QAAQ,oBAEnC1H,EAAO6B,UAAUE,IAAI,YACrB2F,EAAQlF,cAAc,sBAAsBX,UAAUC,OAAO,YAC7D3G,IAAQqG,WAGVE,EAAG6F,GAAgB,SAAC3F,EAASO,GAC3B,IAAInC,EAASmC,EAAMnC,OACf0H,EAAUvF,EAAMnC,OAAO0H,QAAQ,oBAEnC1H,EAAO6B,UAAUE,IAAI,YACrB2F,EAAQlF,cAAc,qBAAqBX,UAAUC,OAAO,YAC5D3G,IAAQsG,YAGVC,EAAG8F,GAAc,SAAC5F,EAASO,GACzB,IAAInC,EAASmC,EAAMnC,OACf0H,EAAUvF,EAAMnC,OAAO0H,QAAQ,oBAEnC1H,EAAO6B,UAAUE,IAAI,YACrB2F,EAAQlF,cAAc,qBAAqBX,UAAUE,IAAI,YACzD2F,EAAQlF,cAAc,oBAAoBX,UAAUC,OAAO,YAC3D3G,IAAQyM,kBAIRb,GACFA,EAAmB9S,SAAQ,SAAA2N,GAAO,OAAInH,EAAOmH,MAG3CoF,GACFA,EAAmB/S,SAAQ,SAAA2N,GAAO,OAAIA,EAAQE,mCAKpD,SAAQpF,EAAMkF,GAAuB,IAAAiG,EAAAnU,KAAdoU,EAAc3O,UAAAhD,OAAA,QAAAvG,IAAAuJ,UAAA,IAAAA,UAAA,GACnC,GAAI,oBAAqBY,QAAUG,EAAgB8B,EAAU,WAAY,CACvEb,IAAQyM,SAoBR,IAnBA,IAAMG,EAAY,SAACC,EAAKC,GACtBD,EAAMpO,OAAOoO,GACbC,EAAMC,OAAOD,KAAS,EAEtB,IAAIE,EAAOH,EAAIvQ,MAAM,EAAGwQ,EAAM,GAAGG,OAAO,QACpCC,EAAQL,EAAIvQ,MAAMwQ,GAAKG,OAAO,MAElC,OAAIC,EAAQ,EACHL,EAAIvQ,MAAM0Q,GAEZH,EAAIvQ,MAAM0Q,EAAME,EAAQJ,IAG7BK,EAAc,IACdC,EAAe,IAAI9B,OAAO,aAAe+B,KAAKC,MAAMH,EAAc,GAAK,IAAMA,EAAc,0BAA4BA,EAAc,kBAAoBA,EAAc,MACvKrN,EAAQ,GACRyN,EAAQhM,EACRiM,EAASxN,IAAQyN,YAEdF,EAAMvS,OAAS,GACpB8E,EAAMrF,KAAK8S,EAAMpC,MAAMiC,GAAc,IACrCG,EAAQA,EAAMnM,UAAUtB,EAAMA,EAAM9E,OAAS,GAAGA,QAGlD8E,EAAMhH,SAAQ,SAAA4U,GACZ,IAAIC,EAAQ,IAAIC,yBAAyBF,EAAQxM,QACjDyM,EAAME,OAAS,EACfF,EAAMG,KAAO,EACbH,EAAMI,MAAQ,EACdJ,EAAMrM,KAAOoL,EAAK/H,QAAQrD,KAE1B,IAAK,IAAIrG,EAAI,EAAGA,EAAIuS,EAAOxS,OAAQC,IACP,UAAtByR,EAAK/H,QAAQrD,MAAuC,uCAAnBkM,EAAOvS,GAAGM,OAC7CoS,EAAM/K,MAAQ4K,EAAOvS,IAGG,UAAtByR,EAAK/H,QAAQrD,MAAuC,wCAAnBkM,EAAOvS,GAAGM,OAC7CoS,EAAM/K,MAAQ4K,EAAOvS,IAIrB0R,IACFgB,EAAMK,WAAa,SAAAhH,GAEjBP,EAAQC,UAAUE,IAAI,oBACtB,IAAIqH,EAAQrB,EAAU5F,EAAMkH,UAAU3M,KAAMyF,EAAMmH,WAC9C3B,EAAc/F,EAAQ+F,YACtB4B,EAAOH,EAAMI,QAAQ,QAAS,4BAC9BC,EAAU,IAAIhD,OAAO,IAAM8C,EAAO,IAAK,MAE3C5B,GADAA,EAAcA,EAAY6B,QAAQC,EAAS,oBACjBD,QAAQ,6CAA8C,uBAChF5H,EAAQ8H,UAAY/B,GAGtBmB,EAAMa,MAAQ,SAAAxH,GACZP,EAAQC,UAAUC,OAAO,oBACzB,IAAI6F,EAAc/F,EAAQ+F,YAC1BA,EAAcA,EAAY6B,QAAQ,qBAAsB,MACxD5H,EAAQ8H,UAAY/B,IAIxBxM,IAAQyO,MAAMd,aAhxBhBvI","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/index.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n(function (arr) {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('prepend')) {\n return\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend () {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment()\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)))\n })\n\n this.insertBefore(docFrag, this.firstChild)\n },\n })\n })\n})([Element.prototype, Document.prototype, DocumentFragment.prototype])\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach\n}\n\nif (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\n HTMLCollection.prototype.forEach = Array.prototype.forEach\n}\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst checkConfig = (config, configTypes, configOptions) => {\n Object.keys(configTypes).forEach(key => {\n const expectedTypes = configTypes[key]\n const value = config[key]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" предоставленный тип \"${valueType}\", ожидаемый тип \"${expectedTypes}\".`,\n )\n }\n })\n\n Object.keys(configOptions).forEach(key => {\n const expectedOptions = configOptions[key]\n const value = config[key]\n\n if (!new RegExp(expectedOptions).test(value)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" параметр \"${value}\", ожидаемый параметр \"${expectedOptions}\".`,\n )\n }\n })\n}\n\nconst plural = (number, text = ['пиксель', 'пекселя', 'пикселей']) => {\n if (number % 10 === 1 && number % 100 !== 11) {\n return `${number} ${text[0]}`\n } else if (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return `${number} ${text[1]}`\n } else {\n return `${number} ${text[2]}`\n }\n}\n\nconst stringToBoolean = string => {\n switch (string) {\n case 'on':\n case 'true':\n case '1':\n return true\n default:\n return false\n }\n}\n\nconst wrapInner = (parent, wrapper, className) => {\n if (typeof wrapper === 'string') {\n wrapper = document.createElement(wrapper)\n }\n\n parent.appendChild(wrapper).className = className\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild)\n }\n}\n\nconst unwrap = wrapper => {\n let docFrag = document.createDocumentFragment()\n\n if (!wrapper) return\n\n while (wrapper.firstChild) {\n let child = wrapper.removeChild(wrapper.firstChild)\n docFrag.appendChild(child)\n }\n\n wrapper.parentNode.replaceChild(docFrag, wrapper)\n}\n\nconst getObject = (object, callback) => {\n Object.keys(object).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst getArray = (array, callback) => {\n Array.from(array).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst inArray = (needle, haystack) => {\n let length = haystack.length\n\n for (let i = 0; i < length; i++) {\n if (haystack[i] === needle) {\n return true\n }\n }\n\n return false\n}\n\nconst synth = () => window.speechSynthesis\n\nconst synthSupportBrowser = () => {\n return 'speechSynthesis' in window\n}\n\nexport {\n plural,\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n synthSupportBrowser,\n inArray,\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/cookie.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst setCookie = function (name = '', value = '') {\n let now = new Date();\n let time = now.getTime();\n time += 24 * 60 * 60 * 1000;\n now.setTime(time);\n document.cookie = `bvi_${name}=${value};path=/;expires=${now.toUTCString()};domain=${location.host}`;\n};\n\nconst getCookie = function (name = '') {\n name = `bvi_${name}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let cookies = decodedCookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n let cookie = cookies[i].trim();\n\n if (cookie.indexOf(name) !== -1) {\n return cookie.substring(name.length, cookie.length);\n }\n }\n};\n\nconst removeCookie = function (name = '') {\n document.cookie = `bvi_${name}=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=${location.host}`;\n};\n\nexport {\n setCookie,\n getCookie,\n removeCookie,\n};\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): i18n.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst lang = {\n 'ru-RU': {\n 'text': {\n 'fontSize': 'Размер шрифта',\n 'siteColors': 'Цвета сайта',\n 'images': 'Изображения',\n 'speech': 'Синтез речи',\n 'settings': 'Настройки',\n 'regularVersionOfTheSite': 'Обычная версия сайта',\n 'letterSpacing': 'Межбуквенное расстояние',\n 'normal': 'Стандартный',\n 'average': 'Средний',\n 'big': 'Большой',\n 'lineHeight': 'Межстрочный интервал',\n 'font': 'Шрифт',\n 'arial': 'Без засечек',\n 'times': 'С засечками',\n 'builtElements': 'Встроенные элементы (Видео, карты и тд.)',\n 'on': 'Включить',\n 'off': 'Выключить',\n 'reset': 'Сбросить настройки',\n 'plural_0': 'пиксель',\n 'plural_1': 'пекселя',\n 'plural_2': 'пикселей',\n },\n 'voice': {\n 'fontSizePlus': 'Размер шрифта увели́чен',\n 'fontSizeMinus': 'Размер шрифта уме́ньшен',\n 'siteColorBlackOnWhite': 'Цвет сайта черным по белому',\n 'siteColorWhiteOnBlack': 'Цвет сайта белым по черному',\n 'siteColorDarkBlueOnBlue': 'Цвет сайта тёмно-синим по голубому',\n 'siteColorBeigeBrown': 'Цвет сайта кори́чневым по бе́жевому',\n 'siteColorGreenOnDarkBrown': 'Цвет сайта зеленым по тёмно-коричневому',\n 'imagesOn': 'Изображения включены',\n 'imagesOFF': 'Изображения выключены',\n 'imagesGrayscale': 'Изображения чёрно-белые',\n 'speechOn': 'Синтез речи включён',\n 'speechOff': 'Синтез речи вы́ключен',\n 'lineHeightNormal': 'Межстрочный интервал стандартный',\n 'lineHeightAverage': 'Межстрочный интервал средний',\n 'lineHeightBig': 'Межстрочный интервал большой',\n 'LetterSpacingNormal': 'Интервал между буквами стандартный',\n 'LetterSpacingAverage': 'Интервал между буквами средний',\n 'LetterSpacingBig': 'Интервал между буквами большой',\n 'fontArial': 'Шрифт без засечек',\n 'fontTimes': 'Шрифт с засечками',\n 'builtElementsOn': 'Встроенные элементы включены',\n 'builtElementsOFF': 'Встроенные элементы выключены',\n 'resetSettings': 'Установлены настройки по умолча́нию',\n 'panelShow': 'Панель открыта',\n 'panelHide': 'Панель скрыта',\n 'panelOn': 'Версия сайта для слабови́дящий',\n 'panelOff': 'Обычная версия сайта',\n }\n },\n 'en-US': {\n 'text': {\n 'fontSize': 'Font size',\n 'siteColors': 'Site colors',\n 'images': 'Images',\n 'speech': 'Speech synthesis',\n 'settings': 'Settings',\n 'regularVersionOfTheSite': 'Regular version Of The site',\n 'letterSpacing': 'Letter spacing',\n 'normal': 'Single',\n 'average': 'One and a half',\n 'big': 'Double',\n 'lineHeight': 'Line spacing',\n 'font':'Font',\n 'arial': 'Sans Serif - Arial',\n 'times': 'Serif - Times New Roman',\n 'builtElements': 'Include inline elements (Videos, maps, etc.)',\n 'on': 'Enable',\n 'off': 'Disabled',\n 'reset': 'Reset settings',\n 'plural_0': 'pixel',\n 'plural_1': 'pixels',\n 'plural_2': 'pixels',\n },\n 'voice': {\n 'fontSizePlus': 'Font size increased',\n 'fontSizeMinus': 'Font size reduced',\n 'siteColorBlackOnWhite': 'Site color black on white',\n 'siteColorWhiteOnBlack': 'Site color white on black',\n 'siteColorDarkBlueOnBlue': 'Site color dark blue on cyan',\n 'siteColorBeigeBrown': 'SiteColorBeigeBrown',\n 'siteColorGreenOnDarkBrown': 'Site color green on dark brown',\n 'imagesOn': 'Images enable',\n 'imagesOFF': 'Images disabled',\n 'imagesGrayscale': 'Images gray scale',\n 'speechOn': 'Synthesis speech enable',\n 'speechOff': 'Synthesis speech disabled',\n 'lineHeightNormal': 'Line spacing single',\n 'lineHeightAverage': 'Line spacing one and a half',\n 'lineHeightBig': 'Line spacing double',\n 'LetterSpacingNormal': 'Letter spacing single',\n 'LetterSpacingAverage': 'Letter spacing one and a half',\n 'LetterSpacingBig': 'Letter spacing letter double',\n 'fontArial': 'Sans Serif - Arial',\n 'fontTimes': 'Serif - Times New Roman',\n 'builtElementsOn': 'Include inline elements are enabled',\n 'builtElementsOFF': 'Include inline elements are disabled',\n 'resetSettings': 'Default settings have been set',\n 'panelShow': 'Panel show',\n 'panelHide': 'Panel hide',\n 'panelOn': 'Site version for visually impaired',\n 'panelOff': 'Regular version of the site',\n }\n }\n}\n\nclass I18n {\n constructor(options) {\n this._config = options\n }\n\n t(key) {\n return lang[this._config.lang]['text'][key]\n }\n\n v(key) {\n return lang[this._config.lang]['voice'][key]\n }\n}\n\nexport default I18n\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): bvi.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nimport {\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n} from './util'\n\nimport {\n setCookie,\n getCookie,\n removeCookie,\n} from './util/cookie'\nimport I18n from './i18n'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst Default = {\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n images: 'grayscale',\n letterSpacing: 'normal',\n lineHeight: 'normal',\n speech: true,\n fontFamily: 'arial',\n builtElements: false,\n panelFixed: true,\n panelHide: false,\n reload: false,\n lang: 'ru-RU',\n}\n\nconst DefaultType = {\n target: 'string',\n fontSize: 'number',\n theme: 'string',\n images: '(string|boolean)',\n letterSpacing: 'string',\n lineHeight: 'string',\n speech: 'boolean',\n fontFamily: 'string',\n builtElements: 'boolean',\n panelFixed: 'boolean',\n panelHide: 'boolean',\n reload: 'boolean',\n lang: 'string',\n}\n\nconst DefaultOptions = {\n target: '',\n fontSize: '(^[1-9]$|^[1-3][0-9]?$|^39$)',\n theme: '(white|black|blue|brown|green)',\n images: '(true|false|grayscale)',\n letterSpacing: '(normal|average|big)',\n lineHeight: '(normal|average|big)',\n speech: '(true|false)',\n fontFamily: '(arial|times)',\n builtElements: '(true|false)',\n panelFixed: '(true|false)',\n panelHide: '(true|false)',\n reload: '(true|false)',\n lang: '(ru-RU|en-US)',\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Bvi {\n constructor(options) {\n this._config = this._getConfig(options)\n this._elements = document.querySelectorAll(this._config.target)\n this._i18n = new I18n({\n lang: this._config.lang\n })\n\n this._addEventListeners()\n this._init()\n\n console.log('Bvi console: ready Button visually impaired v1.0.0')\n }\n\n // Private\n\n _init() {\n getObject(this._config, key => {\n if (typeof getCookie(key) === 'undefined') {\n removeCookie('panelActive')\n }\n })\n\n if (stringToBoolean(getCookie('panelActive'))) {\n this._set()\n this._getPanel()\n this._addEventListenersPanel()\n this._images()\n this._speechPlayer()\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n setInterval(() => {\n if (synth().pending === false) {\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n return callback(element)\n })\n }\n\n el(play, element => element.classList.remove('disabled'))\n el(pause, element => element.classList.add('disabled'))\n el(resume, element => element.classList.add('disabled'))\n el(stop, element => element.classList.add('disabled'))\n }\n }, 1000)\n }\n\n } else {\n this._remove()\n }\n }\n\n _addEventListeners() {\n if (!this._elements) {\n return false\n }\n\n this._elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n getObject(this._config, key => setCookie(key, this._config[key]))\n setCookie('panelActive', true)\n\n this._init()\n this._speech(`${this._i18n.v('panelOn')}`)\n })\n })\n\n }\n\n _addEventListenersPanel() {\n const elements = {\n fontSizeMinus: document.querySelector('.bvi-fontSize-minus'),\n fontSizePlus: document.querySelector('.bvi-fontSize-plus'),\n themeWhite: document.querySelector('.bvi-theme-white'),\n themeBlack: document.querySelector('.bvi-theme-black'),\n themeBlue: document.querySelector('.bvi-theme-blue'),\n themeBrown: document.querySelector('.bvi-theme-brown'),\n themeGreen: document.querySelector('.bvi-theme-green'),\n imagesOn: document.querySelector('.bvi-images-on'),\n imagesOff: document.querySelector('.bvi-images-off'),\n imagesGrayscale: document.querySelector('.bvi-images-grayscale'),\n speechOn: document.querySelector('.bvi-speech-on'),\n speechOff: document.querySelector('.bvi-speech-off'),\n lineHeightNormal: document.querySelector('.bvi-line-height-normal'),\n lineHeightAverage: document.querySelector('.bvi-line-height-average'),\n lineHeightBig: document.querySelector('.bvi-line-height-big'),\n letterSpacingNormal: document.querySelector('.bvi-letter-spacing-normal'),\n letterSpacingAverage: document.querySelector('.bvi-letter-spacing-average'),\n letterSpacingBig: document.querySelector('.bvi-letter-spacing-big'),\n fontFamilyArial: document.querySelector('.bvi-font-family-arial'),\n fontFamilyTimes: document.querySelector('.bvi-font-family-times'),\n builtElementsOn: document.querySelector('.bvi-built-elements-on'),\n builtElementsOff: document.querySelector('.bvi-built-elements-off'),\n reset: document.querySelector('.bvi-reset'),\n links: document.querySelectorAll('.bvi-link'),\n modal: document.querySelector('.bvi-modal')\n }\n\n const activeLink = element => {\n for (let sibling of element.parentNode.children) {\n sibling.classList.remove('active')\n }\n\n element.classList.add('active')\n }\n\n const click = (element, callback) => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n if (typeof callback === 'function') {\n callback(event)\n }\n })\n }\n\n const activeAll = () => {\n let links = document.querySelectorAll('.bvi-link')\n\n links.forEach(link => {\n link.classList.remove('active')\n })\n\n getObject(this._config, key => {\n if (key === 'theme') {\n let value = getCookie(key)\n document.querySelector(`.bvi-theme-${value}`).classList.add('active')\n }\n\n if (key === 'images') {\n let value = getCookie(key) === 'grayscale' ? 'grayscale' : stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-images-${value}`).classList.add('active')\n }\n\n if (key === 'speech') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-speech-${value}`).classList.add('active')\n }\n\n if (key === 'lineHeight') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-line-height-${value}`).classList.add('active')\n }\n\n if (key === 'letterSpacing') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-letter-spacing-${value}`).classList.add('active')\n }\n\n if (key === 'fontFamily') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-font-family-${value}`).classList.add('active')\n }\n\n if (key === 'builtElements') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-built-elements-${value}`).classList.add('active')\n }\n })\n }\n\n activeAll()\n\n // Font size\n click(elements.fontSizeMinus, () => {\n let size = parseFloat(getCookie('fontSize')) - 1\n\n if (size !== 0) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizeMinus')}`)\n activeLink(elements.fontSizeMinus)\n }\n })\n\n click(elements.fontSizePlus, () => {\n let size = parseFloat(getCookie('fontSize')) + 1\n\n if (size !== 40) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizePlus')}`)\n activeLink(elements.fontSizePlus)\n }\n })\n\n // Theme\n click(elements.themeWhite, () => {\n this._setAttrDataBviBody('theme', 'white')\n setCookie('theme', 'white')\n this._speech(`${this._i18n.v('siteColorBlackOnWhite')}`)\n activeLink(elements.themeWhite)\n })\n\n click(elements.themeBlack, () => {\n this._setAttrDataBviBody('theme', 'black')\n setCookie('theme', 'black')\n this._speech(`${this._i18n.v('siteColorWhiteOnBlack')}`)\n activeLink(elements.themeBlack)\n })\n\n click(elements.themeBlue, () => {\n this._setAttrDataBviBody('theme', 'blue')\n setCookie('theme', 'blue')\n this._speech(`${this._i18n.v('siteColorDarkBlueOnBlue')}`)\n activeLink(elements.themeBlue)\n })\n\n click(elements.themeBrown, () => {\n this._setAttrDataBviBody('theme', 'brown')\n setCookie('theme', 'brown')\n this._speech(`${this._i18n.v('siteColorBeigeBrown')}`)\n activeLink(elements.themeBrown)\n })\n\n click(elements.themeGreen, () => {\n this._setAttrDataBviBody('theme', 'green')\n setCookie('theme', 'green')\n this._speech(`${this._i18n.v('siteColorGreenOnDarkBrown')}`)\n activeLink(elements.themeGreen)\n })\n\n // Images\n click(elements.imagesOn, () => {\n this._setAttrDataBviBody('images', 'true')\n setCookie('images', 'true')\n this._speech(`${this._i18n.v('imagesOn')}`)\n activeLink(elements.imagesOn)\n })\n\n click(elements.imagesOff, () => {\n this._setAttrDataBviBody('images', 'false')\n setCookie('images', 'false')\n this._speech(`${this._i18n.v('imagesOFF')}`)\n activeLink(elements.imagesOff)\n })\n\n click(elements.imagesGrayscale, () => {\n this._setAttrDataBviBody('images', 'grayscale')\n setCookie('images', 'grayscale')\n this._speech(`${this._i18n.v('imagesGrayscale')}`)\n activeLink(elements.imagesGrayscale)\n })\n\n // Speech\n click(elements.speechOn, () => {\n this._setAttrDataBviBody('speech', 'true')\n setCookie('speech', 'true')\n this._speech(`${this._i18n.v('speechOn')}`)\n activeLink(elements.speechOn)\n this._speechPlayer()\n })\n\n click(elements.speechOff, () => {\n this._speech(`${this._i18n.v('speechOff')}`)\n this._setAttrDataBviBody('speech', 'false')\n setCookie('speech', 'false')\n activeLink(elements.speechOff)\n this._speechPlayer()\n })\n\n // Line height\n click(elements.lineHeightNormal, () => {\n this._setAttrDataBviBody('lineHeight', 'normal')\n setCookie('lineHeight', 'normal')\n this._speech(`${this._i18n.v('lineHeightNormal')}`)\n activeLink(elements.lineHeightNormal)\n })\n\n click(elements.lineHeightAverage, () => {\n this._setAttrDataBviBody('lineHeight', 'average')\n setCookie('lineHeight', 'average')\n this._speech(`${this._i18n.v('lineHeightAverage')}`)\n activeLink(elements.lineHeightAverage)\n })\n\n click(elements.lineHeightBig, () => {\n this._setAttrDataBviBody('lineHeight', 'big')\n setCookie('lineHeight', 'big')\n this._speech(`${this._i18n.v('lineHeightBig')}`)\n activeLink(elements.lineHeightBig)\n })\n\n // Letter spacing\n click(elements.letterSpacingNormal, () => {\n this._setAttrDataBviBody('letterSpacing', 'normal')\n setCookie('letterSpacing', 'normal')\n this._speech(`${this._i18n.v('LetterSpacingNormal')}`)\n activeLink(elements.letterSpacingNormal)\n })\n\n click(elements.letterSpacingAverage, () => {\n this._setAttrDataBviBody('letterSpacing', 'average')\n setCookie('letterSpacing', 'average')\n this._speech(`${this._i18n.v('LetterSpacingAverage')}`)\n activeLink(elements.letterSpacingAverage)\n })\n\n click(elements.letterSpacingBig, () => {\n this._setAttrDataBviBody('letterSpacing', 'big')\n setCookie('letterSpacing', 'big')\n this._speech(`${this._i18n.v('LetterSpacingBig')}`)\n activeLink(elements.letterSpacingBig)\n })\n\n // Font family\n click(elements.fontFamilyArial, () => {\n this._setAttrDataBviBody('fontFamily', 'arial')\n setCookie('fontFamily', 'arial')\n this._speech(`${this._i18n.v('fontArial')}`)\n activeLink(elements.fontFamilyArial)\n })\n\n click(elements.fontFamilyTimes, () => {\n this._setAttrDataBviBody('fontFamily', 'times')\n setCookie('fontFamily', 'times')\n this._speech(`${this._i18n.v('fontTimes')}`)\n activeLink(elements.fontFamilyTimes)\n })\n\n // Built elements\n click(elements.builtElementsOn, () => {\n this._setAttrDataBviBody('builtElements', 'true')\n setCookie('builtElements', 'true')\n this._speech(`${this._i18n.v('builtElementsOn')}`)\n activeLink(elements.builtElementsOn)\n })\n\n click(elements.builtElementsOff, () => {\n this._setAttrDataBviBody('builtElements', 'false')\n setCookie('builtElements', 'false')\n this._speech(`${this._i18n.v('builtElementsOFF')}`)\n activeLink(elements.builtElementsOff)\n })\n\n // Reset\n click(elements.reset, () => {\n this._speech(`${this._i18n.v('resetSettings')}`)\n getObject(this._config, key => {\n this._setAttrDataBviBody(key, this._config[key])\n setCookie(key, this._config[key])\n activeAll()\n })\n })\n\n getArray(elements.links, element => {\n click(element, event => {\n let target = event.target.getAttribute('data-bvi')\n\n if (target === 'close') {\n this._setAttrDataBviBody('panelActive', 'false')\n setCookie('panelActive', 'false')\n this._init()\n }\n\n if (target === 'modal') {\n document.body.style.overflow = 'hidden'\n document.body.classList.add('bvi-noscroll')\n elements.modal.classList.toggle('show')\n }\n\n if (target === 'modal-close') {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n\n if (target === 'panel-hide') {\n document.querySelector('.bvi-panel').classList.add('bvi-panel-hide')\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-hide')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-show')\n setCookie('panelHide', 'true')\n this._speech(`${this._i18n.v('panelHide')}`)\n }\n\n if (target === 'panel-show') {\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-show')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-hide')\n document.querySelector('.bvi-panel').classList.remove('bvi-panel-hide')\n setCookie('panelHide', 'false')\n this._speech(`${this._i18n.v('panelShow')}`)\n }\n })\n })\n\n click(elements.modal, event => {\n if (event.target.contains(elements.modal)) {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n })\n }\n\n _getPanel() {\n const scroll = () => {\n let scroll = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n\n if (stringToBoolean(getCookie('panelFixed'))) {\n if (scroll > 200) {\n document.querySelector('.bvi-panel').classList.add('bvi-fixed-top')\n } else {\n document.querySelector('.bvi-panel').classList.remove('bvi-fixed-top')\n }\n }\n }\n\n let panelHide = stringToBoolean(getCookie('panelHide')) ? ' bvi-panel-hide' : ''\n let linkHide = !stringToBoolean(getCookie('panelHide')) ? ' bvi-hide' : 'bvi-show'\n let html = `\n
\n
\n
\n
${this._i18n.t('fontSize')}
\n А-\n А+\n
\n
\n
${this._i18n.t('siteColors')}
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
${this._i18n.t('images')}
\n \n \n \n \n \n \n \n \n \n
\n
\n
${this._i18n.t('speech')}
\n \n \n \n \n \n \n
\n
\n
${this._i18n.t('settings')}
\n \n \n \n \n ${this._i18n.t('regularVersionOfTheSite')}\n \n \n \n \n
\n
\n
\n
\n
\n
\n
${this._i18n.t('settings')}
\n ×\n
\n
\n
\n \n \n
\n
${this._i18n.t('font')}
\n ${this._i18n.t('arial')}\n ${this._i18n.t('times')}\n
\n
\n
${this._i18n.t('builtElements')}
\n ${this._i18n.t('on')}\n ${this._i18n.t('off')}\n
\n
\n \n
\n \n
\n
\n
\n
`\n\n let link = `` +\n ''\n\n window.addEventListener('scroll', scroll)\n document.querySelector('.bvi-body').insertAdjacentHTML('beforebegin', html)\n document.querySelector('.bvi-body').insertAdjacentHTML('afterbegin', link)\n scroll()\n }\n\n _set() {\n document.body.classList.add('bvi-active')\n wrapInner(document.body, 'div', 'bvi-body')\n getObject(this._config, key => this._setAttrDataBviBody(key, getCookie(key)))\n getArray(this._elements, element => element.style.display = 'none')\n\n document.querySelectorAll('img')\n .forEach(element => {\n if (element.classList.contains('bvi-img')) {\n element.classList.remove('bvi-img')\n }\n })\n\n document.querySelectorAll('body *')\n .forEach(element => {\n if (element.classList.contains('bvi-background-image')) {\n element.classList.remove('bvi-background-image')\n }\n })\n }\n\n _remove() {\n let bviPanel = document.querySelector('.bvi-panel')\n let bviBody = document.querySelector('.bvi-body')\n let bviLinkFixedTop = document.querySelector('.bvi-link-fixed-top')\n\n if (bviPanel) {\n bviPanel.remove()\n }\n\n if (bviBody) {\n unwrap(bviBody)\n }\n\n if (bviLinkFixedTop) {\n bviLinkFixedTop.remove()\n }\n\n this._speech(`${this._i18n.v('panelOff')}`)\n\n document.body.classList.remove('bvi-active')\n\n getArray(this._elements, element => element.style.display = '')\n\n if (stringToBoolean(getCookie('reload'))) {\n document.location.reload()\n }\n\n getObject(this._config, key => {\n removeCookie(key)\n })\n\n this._speechPlayer()\n\n removeCookie('panelActive')\n }\n\n _images() {\n document.querySelectorAll('img').forEach(element => {\n if (!element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-img')\n }\n })\n\n document.querySelectorAll('.bvi-body *').forEach(element => {\n let style = getComputedStyle(element)\n if (style.backgroundImage !== 'none' && style.background !== 'none' && !element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-background-image')\n }\n })\n }\n\n _getConfig(config) {\n config = {...Default, ...config}\n let extended = {}\n\n for (let keyDefault in Default) {\n extended[keyDefault] = config[keyDefault]\n }\n\n checkConfig(extended, DefaultType, DefaultOptions)\n\n return extended\n }\n\n _setAttrDataBviBody(name = '', value = '') {\n document.querySelector('.bvi-body').setAttribute(`data-bvi-${name}`, value)\n }\n\n _speechPlayer() {\n let selectorSpeechText = document.querySelectorAll('.bvi-speech-text')\n let selectorSpeechLink = document.querySelectorAll('.bvi-speech-link')\n let selectorBviSpeech = document.querySelectorAll('.bvi-speech')\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n if (selectorBviSpeech) {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n\n selectorBviSpeech.forEach((speechDivBlock, index) => {\n let id = `bvi-speech-text-id-${index + 1}`\n let html = `\n `\n\n wrapInner(speechDivBlock, 'div', `bvi-speech-text ${id}`)\n speechDivBlock.insertAdjacentHTML('afterbegin', html)\n })\n\n let selectorPlay = document.querySelectorAll('.bvi-speech-play')\n let selectorPause = document.querySelectorAll('.bvi-speech-pause')\n let selectorResume = document.querySelectorAll('.bvi-speech-resume')\n let selectorStop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n if (typeof callback === 'function') {\n return callback(element, event)\n }\n }, false)\n })\n }\n\n el(selectorPlay, (element, event) => {\n let target = event.target\n let text = target.parentNode.nextElementSibling;\n let closest = event.target.closest('.bvi-speech-link')\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n\n this._speech(text.textContent, text, true);\n\n play.forEach(element => element.classList.remove('disabled'))\n pause.forEach(element => element.classList.add('disabled'))\n resume.forEach(element => element.classList.add('disabled'))\n stop.forEach(element => element.classList.add('disabled'))\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n closest.querySelector('.bvi-speech-stop').classList.remove('disabled')\n })\n\n el(selectorPause, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-resume').classList.remove('disabled')\n synth().pause()\n })\n\n el(selectorResume, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n synth().resume()\n })\n\n el(selectorStop, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.add('disabled')\n closest.querySelector('.bvi-speech-play').classList.remove('disabled')\n synth().cancel();\n })\n }\n } else {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n }\n }\n\n _speech(text, element, echo = false) {\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n synth().cancel()\n const getWordAt = (str, pos) => {\n str = String(str)\n pos = Number(pos) >>> 0\n\n let left = str.slice(0, pos + 1).search(/\\S+$/)\n let right = str.slice(pos).search(/\\s/)\n\n if (right < 0) {\n return str.slice(left)\n }\n return str.slice(left, right + pos)\n }\n\n let chunkLength = 120\n let patternRegex = new RegExp('^[\\\\s\\\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\\\s\\\\S]{1,' + chunkLength + '}$|^[\\\\s\\\\S]{1,' + chunkLength + '} ')\n let array = []\n let $text = text\n let voices = synth().getVoices()\n\n while ($text.length > 0) {\n array.push($text.match(patternRegex)[0])\n $text = $text.substring(array[array.length - 1].length)\n }\n\n array.forEach(getText => {\n let utter = new SpeechSynthesisUtterance(getText.trim())\n utter.volume = 1\n utter.rate = 1\n utter.pitch = 1\n utter.lang = this._config.lang\n\n for (let i = 0; i < voices.length; i++) {\n if (this._config.lang === 'ru-RU' && voices[i].name === 'Microsoft Pavel - Russian (Russia)') {\n utter.voice = voices[i]\n }\n\n if (this._config.lang === 'en-US' && voices[i].name === 'Microsoft Pavel - English (English)') {\n utter.voice = voices[i]\n }\n }\n\n if (echo) {\n utter.onboundary = event => {\n\n element.classList.add('bvi-highlighting')\n let world = getWordAt(event.utterance.text, event.charIndex)\n let textContent = element.textContent\n let term = world.replace(/(\\s+)/, '((<[^>]+>)*$1(<[^>]+>)*)')\n let pattern = new RegExp('(' + term + ')', 'gi')\n textContent = textContent.replace(pattern, '$1')\n textContent = textContent.replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\\/mark>)/, '$1$2$4')\n element.innerHTML = textContent\n }\n\n utter.onend = event => {\n element.classList.remove('bvi-highlighting')\n let textContent = element.textContent\n textContent = textContent.replace(/($1<\\/mark>)/, '$1')\n element.innerHTML = textContent\n }\n }\n\n synth().speak(utter)\n })\n }\n }\n}\n\nexport default Bvi\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): index.umd.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n/*import 'core-js/stable';*/\nimport 'regenerator-runtime/runtime'\nimport Bvi from './bvi'\n\nexport default { Bvi }\n"]} \ No newline at end of file +{"version":3,"sources":["../../node_modules/regenerator-runtime/runtime.js","../../src/js/util/index.js","../../src/js/util/cookie.js","../../src/js/i18n.js","../../src/js/bvi.js","../../src/js/index.umd.js"],"names":["runtime","exports","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","Element","Document","DocumentFragment","item","argArr","Array","arguments","docFrag","document","createDocumentFragment","argItem","isNode","Node","appendChild","createTextNode","String","insertBefore","firstChild","window","NodeList","HTMLCollection","stringToBoolean","string","wrapInner","parent","wrapper","className","createElement","unwrap","child","removeChild","parentNode","replaceChild","getObject","callback","getArray","array","from","synth","speechSynthesis","setCookie","now","Date","time","getTime","setTime","cookie","concat","toUTCString","location","host","getCookie","decodedCookie","decodeURIComponent","cookies","split","trim","indexOf","options","substring","removeCookie","lang","text","fontSize","siteColors","images","speech","settings","regularVersionOfTheSite","letterSpacing","normal","average","big","lineHeight","font","arial","times","builtElements","on","off","plural_0","plural_1","plural_2","voice","fontSizePlus","fontSizeMinus","siteColorBlackOnWhite","siteColorWhiteOnBlack","siteColorDarkBlueOnBlue","siteColorBeigeBrown","siteColorGreenOnDarkBrown","imagesOn","imagesOFF","imagesGrayscale","speechOn","speechOff","lineHeightNormal","lineHeightAverage","lineHeightBig","LetterSpacingNormal","LetterSpacingAverage","LetterSpacingBig","fontArial","fontTimes","builtElementsOn","builtElementsOFF","resetSettings","panelShow","panelHide","panelOn","panelOff","I18n","_classCallCheck","_config","Default","target","theme","fontFamily","panelFixed","reload","DefaultType","DefaultOptions","Bvi","_getConfig","_elements","querySelectorAll","_i18n","_addEventListeners","_init","console","log","_set","_getPanel","_addEventListenersPanel","_images","_speechPlayer","setInterval","pending","play","pause","resume","el","elements","element","classList","remove","add","_remove","_this","addEventListener","event","preventDefault","_speech","v","_this2","querySelector","themeWhite","themeBlack","themeBlue","themeBrown","themeGreen","imagesOff","letterSpacingNormal","letterSpacingAverage","letterSpacingBig","fontFamilyArial","fontFamilyTimes","builtElementsOff","links","modal","activeLink","_step","_iterator","_createForOfIteratorHelper","children","s","n","e","f","click","activeAll","link","size","parseFloat","_setAttrDataBviBody","getAttribute","body","style","overflow","toggle","contains","scroll","pageYOffset","documentElement","scrollTop","linkHide","html","t","insertAdjacentHTML","_this3","display","bviPanel","bviBody","bviLinkFixedTop","getComputedStyle","backgroundImage","background","config","_objectSpread2","extended","keyDefault","configTypes","configOptions","expectedTypes","valueType","_typeof","nodeType","toString","match","toLowerCase","toType","RegExp","test","expectedOptions","checkConfig","setAttribute","_this4","selectorSpeechText","selectorSpeechLink","selectorBviSpeech","speechDivBlock","index","id","selectorPlay","selectorPause","selectorResume","selectorStop","nextElementSibling","closest","textContent","cancel","_this5","echo","getWordAt","str","pos","Number","left","search","right","chunkLength","patternRegex","Math","floor","$text","voices","getVoices","getText","utter","SpeechSynthesisUtterance","volume","rate","pitch","onboundary","world","utterance","charIndex","term","replace","pattern","innerHTML","onend","speak"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/index.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n(function (arr) {\n arr.forEach(function (item) {\n if (item.hasOwnProperty('prepend')) {\n return\n }\n Object.defineProperty(item, 'prepend', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function prepend () {\n var argArr = Array.prototype.slice.call(arguments),\n docFrag = document.createDocumentFragment()\n\n argArr.forEach(function (argItem) {\n var isNode = argItem instanceof Node\n docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)))\n })\n\n this.insertBefore(docFrag, this.firstChild)\n },\n })\n })\n})([Element.prototype, Document.prototype, DocumentFragment.prototype])\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach\n}\n\nif (window.HTMLCollection && !HTMLCollection.prototype.forEach) {\n HTMLCollection.prototype.forEach = Array.prototype.forEach\n}\n\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nconst isElement = obj => {\n if (!obj || typeof obj !== 'object') {\n return false\n }\n\n return typeof obj.nodeType !== 'undefined'\n}\n\nconst checkConfig = (config, configTypes, configOptions) => {\n Object.keys(configTypes).forEach(key => {\n const expectedTypes = configTypes[key]\n const value = config[key]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" предоставленный тип \"${valueType}\", ожидаемый тип \"${expectedTypes}\".`,\n )\n }\n })\n\n Object.keys(configOptions).forEach(key => {\n const expectedOptions = configOptions[key]\n const value = config[key]\n\n if (!new RegExp(expectedOptions).test(value)) {\n throw new TypeError(\n `Bvi console: Опция \"${key}\" параметр \"${value}\", ожидаемый параметр \"${expectedOptions}\".`,\n )\n }\n })\n}\n\nconst plural = (number, text = ['пиксель', 'пекселя', 'пикселей']) => {\n if (number % 10 === 1 && number % 100 !== 11) {\n return `${number} ${text[0]}`\n } else if (number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return `${number} ${text[1]}`\n } else {\n return `${number} ${text[2]}`\n }\n}\n\nconst stringToBoolean = string => {\n switch (string) {\n case 'on':\n case 'true':\n case '1':\n return true\n default:\n return false\n }\n}\n\nconst wrapInner = (parent, wrapper, className) => {\n if (typeof wrapper === 'string') {\n wrapper = document.createElement(wrapper)\n }\n\n parent.appendChild(wrapper).className = className\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild)\n }\n}\n\nconst unwrap = wrapper => {\n let docFrag = document.createDocumentFragment()\n\n if (!wrapper) return\n\n while (wrapper.firstChild) {\n let child = wrapper.removeChild(wrapper.firstChild)\n docFrag.appendChild(child)\n }\n\n wrapper.parentNode.replaceChild(docFrag, wrapper)\n}\n\nconst getObject = (object, callback) => {\n Object.keys(object).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst getArray = (array, callback) => {\n Array.from(array).forEach(key => {\n if (typeof callback === 'function') {\n callback(key)\n }\n })\n}\n\nconst inArray = (needle, haystack) => {\n let length = haystack.length\n\n for (let i = 0; i < length; i++) {\n if (haystack[i] === needle) {\n return true\n }\n }\n\n return false\n}\n\nconst synth = () => window.speechSynthesis\n\nconst synthSupportBrowser = () => {\n return 'speechSynthesis' in window\n}\n\nexport {\n plural,\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n synthSupportBrowser,\n inArray,\n}\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): util/cookie.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst setCookie = function (name = '', value = '') {\n let now = new Date();\n let time = now.getTime();\n time += 24 * 60 * 60 * 1000;\n now.setTime(time);\n document.cookie = `bvi_${name}=${value},path=/,expires=${now.toUTCString()},domain=${location.host}`;\n};\n\nconst getCookie = function (name = '') {\n name = `bvi_${name}=`;\n let decodedCookie = decodeURIComponent(document.cookie);\n let cookies = decodedCookie.split(',');\n\n for (let i = 0; i < cookies.length; i++) {\n let cookie = cookies[i].trim();\n\n if (cookie.indexOf(name) !== -1) {\n let options = cookie.split(\",\");\n return options[0].substring(name.length, options[0].length);\n }\n }\n};\n\nconst removeCookie = function (name = '') {\n document.cookie = `bvi_${name}=,path=/,expires=Thu, 01 Jan 1970 00:00:01 GMT,domain=${location.host}`;\n};\n\nexport {\n setCookie,\n getCookie,\n removeCookie,\n};\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): i18n.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nconst lang = {\n 'ru-RU': {\n 'text': {\n 'fontSize': 'Размер шрифта',\n 'siteColors': 'Цвета сайта',\n 'images': 'Изображения',\n 'speech': 'Синтез речи',\n 'settings': 'Настройки',\n 'regularVersionOfTheSite': 'Обычная версия сайта',\n 'letterSpacing': 'Межбуквенное расстояние',\n 'normal': 'Стандартный',\n 'average': 'Средний',\n 'big': 'Большой',\n 'lineHeight': 'Межстрочный интервал',\n 'font': 'Шрифт',\n 'arial': 'Без засечек',\n 'times': 'С засечками',\n 'builtElements': 'Встроенные элементы (Видео, карты и тд.)',\n 'on': 'Включить',\n 'off': 'Выключить',\n 'reset': 'Сбросить настройки',\n 'plural_0': 'пиксель',\n 'plural_1': 'пекселя',\n 'plural_2': 'пикселей',\n },\n 'voice': {\n 'fontSizePlus': 'Размер шрифта увели́чен',\n 'fontSizeMinus': 'Размер шрифта уме́ньшен',\n 'siteColorBlackOnWhite': 'Цвет сайта черным по белому',\n 'siteColorWhiteOnBlack': 'Цвет сайта белым по черному',\n 'siteColorDarkBlueOnBlue': 'Цвет сайта тёмно-синим по голубому',\n 'siteColorBeigeBrown': 'Цвет сайта кори́чневым по бе́жевому',\n 'siteColorGreenOnDarkBrown': 'Цвет сайта зеленым по тёмно-коричневому',\n 'imagesOn': 'Изображения включены',\n 'imagesOFF': 'Изображения выключены',\n 'imagesGrayscale': 'Изображения чёрно-белые',\n 'speechOn': 'Синтез речи включён',\n 'speechOff': 'Синтез речи вы́ключен',\n 'lineHeightNormal': 'Межстрочный интервал стандартный',\n 'lineHeightAverage': 'Межстрочный интервал средний',\n 'lineHeightBig': 'Межстрочный интервал большой',\n 'LetterSpacingNormal': 'Интервал между буквами стандартный',\n 'LetterSpacingAverage': 'Интервал между буквами средний',\n 'LetterSpacingBig': 'Интервал между буквами большой',\n 'fontArial': 'Шрифт без засечек',\n 'fontTimes': 'Шрифт с засечками',\n 'builtElementsOn': 'Встроенные элементы включены',\n 'builtElementsOFF': 'Встроенные элементы выключены',\n 'resetSettings': 'Установлены настройки по умолча́нию',\n 'panelShow': 'Панель открыта',\n 'panelHide': 'Панель скрыта',\n 'panelOn': 'Версия сайта для слабови́дящий',\n 'panelOff': 'Обычная версия сайта',\n }\n },\n 'en-US': {\n 'text': {\n 'fontSize': 'Font size',\n 'siteColors': 'Site colors',\n 'images': 'Images',\n 'speech': 'Speech synthesis',\n 'settings': 'Settings',\n 'regularVersionOfTheSite': 'Regular version Of The site',\n 'letterSpacing': 'Letter spacing',\n 'normal': 'Single',\n 'average': 'One and a half',\n 'big': 'Double',\n 'lineHeight': 'Line spacing',\n 'font':'Font',\n 'arial': 'Sans Serif - Arial',\n 'times': 'Serif - Times New Roman',\n 'builtElements': 'Include inline elements (Videos, maps, etc.)',\n 'on': 'Enable',\n 'off': 'Disabled',\n 'reset': 'Reset settings',\n 'plural_0': 'pixel',\n 'plural_1': 'pixels',\n 'plural_2': 'pixels',\n },\n 'voice': {\n 'fontSizePlus': 'Font size increased',\n 'fontSizeMinus': 'Font size reduced',\n 'siteColorBlackOnWhite': 'Site color black on white',\n 'siteColorWhiteOnBlack': 'Site color white on black',\n 'siteColorDarkBlueOnBlue': 'Site color dark blue on cyan',\n 'siteColorBeigeBrown': 'SiteColorBeigeBrown',\n 'siteColorGreenOnDarkBrown': 'Site color green on dark brown',\n 'imagesOn': 'Images enable',\n 'imagesOFF': 'Images disabled',\n 'imagesGrayscale': 'Images gray scale',\n 'speechOn': 'Synthesis speech enable',\n 'speechOff': 'Synthesis speech disabled',\n 'lineHeightNormal': 'Line spacing single',\n 'lineHeightAverage': 'Line spacing one and a half',\n 'lineHeightBig': 'Line spacing double',\n 'LetterSpacingNormal': 'Letter spacing single',\n 'LetterSpacingAverage': 'Letter spacing one and a half',\n 'LetterSpacingBig': 'Letter spacing letter double',\n 'fontArial': 'Sans Serif - Arial',\n 'fontTimes': 'Serif - Times New Roman',\n 'builtElementsOn': 'Include inline elements are enabled',\n 'builtElementsOFF': 'Include inline elements are disabled',\n 'resetSettings': 'Default settings have been set',\n 'panelShow': 'Panel show',\n 'panelHide': 'Panel hide',\n 'panelOn': 'Site version for visually impaired',\n 'panelOff': 'Regular version of the site',\n }\n }\n}\n\nclass I18n {\n constructor(options) {\n this._config = options\n }\n\n t(key) {\n return lang[this._config.lang]['text'][key]\n }\n\n v(key) {\n return lang[this._config.lang]['voice'][key]\n }\n}\n\nexport default I18n\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): bvi.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\nimport {\n checkConfig,\n stringToBoolean,\n wrapInner,\n unwrap,\n getObject,\n getArray,\n synth,\n} from './util'\n\nimport {\n setCookie,\n getCookie,\n removeCookie,\n} from './util/cookie'\nimport I18n from './i18n'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst Default = {\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n images: 'grayscale',\n letterSpacing: 'normal',\n lineHeight: 'normal',\n speech: true,\n fontFamily: 'arial',\n builtElements: false,\n panelFixed: true,\n panelHide: false,\n reload: false,\n lang: 'ru-RU',\n}\n\nconst DefaultType = {\n target: 'string',\n fontSize: 'number',\n theme: 'string',\n images: '(string|boolean)',\n letterSpacing: 'string',\n lineHeight: 'string',\n speech: 'boolean',\n fontFamily: 'string',\n builtElements: 'boolean',\n panelFixed: 'boolean',\n panelHide: 'boolean',\n reload: 'boolean',\n lang: 'string',\n}\n\nconst DefaultOptions = {\n target: '',\n fontSize: '(^[1-9]$|^[1-3][0-9]?$|^39$)',\n theme: '(white|black|blue|brown|green)',\n images: '(true|false|grayscale)',\n letterSpacing: '(normal|average|big)',\n lineHeight: '(normal|average|big)',\n speech: '(true|false)',\n fontFamily: '(arial|times)',\n builtElements: '(true|false)',\n panelFixed: '(true|false)',\n panelHide: '(true|false)',\n reload: '(true|false)',\n lang: '(ru-RU|en-US)',\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Bvi {\n constructor(options) {\n this._config = this._getConfig(options)\n this._elements = document.querySelectorAll(this._config.target)\n this._i18n = new I18n({\n lang: this._config.lang\n })\n\n this._addEventListeners()\n this._init()\n\n console.log('Bvi console: ready Button visually impaired v1.0.0')\n }\n\n // Private\n\n _init() {\n getObject(this._config, key => {\n if (typeof getCookie(key) === 'undefined') {\n removeCookie('panelActive')\n }\n })\n\n if (stringToBoolean(getCookie('panelActive'))) {\n this._set()\n this._getPanel()\n this._addEventListenersPanel()\n this._images()\n this._speechPlayer()\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n setInterval(() => {\n if (synth().pending === false) {\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n return callback(element)\n })\n }\n\n el(play, element => element.classList.remove('disabled'))\n el(pause, element => element.classList.add('disabled'))\n el(resume, element => element.classList.add('disabled'))\n el(stop, element => element.classList.add('disabled'))\n }\n }, 1000)\n }\n\n } else {\n this._remove()\n }\n }\n\n _addEventListeners() {\n if (!this._elements) {\n return false\n }\n\n this._elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n getObject(this._config, key => setCookie(key, this._config[key]))\n setCookie('panelActive', true)\n\n this._init()\n this._speech(`${this._i18n.v('panelOn')}`)\n })\n })\n\n }\n\n _addEventListenersPanel() {\n const elements = {\n fontSizeMinus: document.querySelector('.bvi-fontSize-minus'),\n fontSizePlus: document.querySelector('.bvi-fontSize-plus'),\n themeWhite: document.querySelector('.bvi-theme-white'),\n themeBlack: document.querySelector('.bvi-theme-black'),\n themeBlue: document.querySelector('.bvi-theme-blue'),\n themeBrown: document.querySelector('.bvi-theme-brown'),\n themeGreen: document.querySelector('.bvi-theme-green'),\n imagesOn: document.querySelector('.bvi-images-on'),\n imagesOff: document.querySelector('.bvi-images-off'),\n imagesGrayscale: document.querySelector('.bvi-images-grayscale'),\n speechOn: document.querySelector('.bvi-speech-on'),\n speechOff: document.querySelector('.bvi-speech-off'),\n lineHeightNormal: document.querySelector('.bvi-line-height-normal'),\n lineHeightAverage: document.querySelector('.bvi-line-height-average'),\n lineHeightBig: document.querySelector('.bvi-line-height-big'),\n letterSpacingNormal: document.querySelector('.bvi-letter-spacing-normal'),\n letterSpacingAverage: document.querySelector('.bvi-letter-spacing-average'),\n letterSpacingBig: document.querySelector('.bvi-letter-spacing-big'),\n fontFamilyArial: document.querySelector('.bvi-font-family-arial'),\n fontFamilyTimes: document.querySelector('.bvi-font-family-times'),\n builtElementsOn: document.querySelector('.bvi-built-elements-on'),\n builtElementsOff: document.querySelector('.bvi-built-elements-off'),\n reset: document.querySelector('.bvi-reset'),\n links: document.querySelectorAll('.bvi-link'),\n modal: document.querySelector('.bvi-modal')\n }\n\n const activeLink = element => {\n for (let sibling of element.parentNode.children) {\n sibling.classList.remove('active')\n }\n\n element.classList.add('active')\n }\n\n const click = (element, callback) => {\n element.addEventListener('click', event => {\n event.preventDefault()\n\n if (typeof callback === 'function') {\n callback(event)\n }\n })\n }\n\n const activeAll = () => {\n let links = document.querySelectorAll('.bvi-link')\n\n links.forEach(link => {\n link.classList.remove('active')\n })\n\n getObject(this._config, key => {\n if (key === 'theme') {\n let value = getCookie(key)\n document.querySelector(`.bvi-theme-${value}`).classList.add('active')\n }\n\n if (key === 'images') {\n let value = getCookie(key) === 'grayscale' ? 'grayscale' : stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-images-${value}`).classList.add('active')\n }\n\n if (key === 'speech') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-speech-${value}`).classList.add('active')\n }\n\n if (key === 'lineHeight') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-line-height-${value}`).classList.add('active')\n }\n\n if (key === 'letterSpacing') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-letter-spacing-${value}`).classList.add('active')\n }\n\n if (key === 'fontFamily') {\n let value = getCookie(key)\n\n document.querySelector(`.bvi-font-family-${value}`).classList.add('active')\n }\n\n if (key === 'builtElements') {\n let value = stringToBoolean(getCookie(key)) ? 'on' : 'off'\n\n document.querySelector(`.bvi-built-elements-${value}`).classList.add('active')\n }\n })\n }\n\n activeAll()\n\n // Font size\n click(elements.fontSizeMinus, () => {\n let size = parseFloat(getCookie('fontSize')) - 1\n\n if (size !== 0) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizeMinus')}`)\n activeLink(elements.fontSizeMinus)\n }\n })\n\n click(elements.fontSizePlus, () => {\n let size = parseFloat(getCookie('fontSize')) + 1\n\n if (size !== 40) {\n this._setAttrDataBviBody('fontSize', size)\n setCookie('fontSize', size)\n this._speech(`${this._i18n.v('fontSizePlus')}`)\n activeLink(elements.fontSizePlus)\n }\n })\n\n // Theme\n click(elements.themeWhite, () => {\n this._setAttrDataBviBody('theme', 'white')\n setCookie('theme', 'white')\n this._speech(`${this._i18n.v('siteColorBlackOnWhite')}`)\n activeLink(elements.themeWhite)\n })\n\n click(elements.themeBlack, () => {\n this._setAttrDataBviBody('theme', 'black')\n setCookie('theme', 'black')\n this._speech(`${this._i18n.v('siteColorWhiteOnBlack')}`)\n activeLink(elements.themeBlack)\n })\n\n click(elements.themeBlue, () => {\n this._setAttrDataBviBody('theme', 'blue')\n setCookie('theme', 'blue')\n this._speech(`${this._i18n.v('siteColorDarkBlueOnBlue')}`)\n activeLink(elements.themeBlue)\n })\n\n click(elements.themeBrown, () => {\n this._setAttrDataBviBody('theme', 'brown')\n setCookie('theme', 'brown')\n this._speech(`${this._i18n.v('siteColorBeigeBrown')}`)\n activeLink(elements.themeBrown)\n })\n\n click(elements.themeGreen, () => {\n this._setAttrDataBviBody('theme', 'green')\n setCookie('theme', 'green')\n this._speech(`${this._i18n.v('siteColorGreenOnDarkBrown')}`)\n activeLink(elements.themeGreen)\n })\n\n // Images\n click(elements.imagesOn, () => {\n this._setAttrDataBviBody('images', 'true')\n setCookie('images', 'true')\n this._speech(`${this._i18n.v('imagesOn')}`)\n activeLink(elements.imagesOn)\n })\n\n click(elements.imagesOff, () => {\n this._setAttrDataBviBody('images', 'false')\n setCookie('images', 'false')\n this._speech(`${this._i18n.v('imagesOFF')}`)\n activeLink(elements.imagesOff)\n })\n\n click(elements.imagesGrayscale, () => {\n this._setAttrDataBviBody('images', 'grayscale')\n setCookie('images', 'grayscale')\n this._speech(`${this._i18n.v('imagesGrayscale')}`)\n activeLink(elements.imagesGrayscale)\n })\n\n // Speech\n click(elements.speechOn, () => {\n this._setAttrDataBviBody('speech', 'true')\n setCookie('speech', 'true')\n this._speech(`${this._i18n.v('speechOn')}`)\n activeLink(elements.speechOn)\n this._speechPlayer()\n })\n\n click(elements.speechOff, () => {\n this._speech(`${this._i18n.v('speechOff')}`)\n this._setAttrDataBviBody('speech', 'false')\n setCookie('speech', 'false')\n activeLink(elements.speechOff)\n this._speechPlayer()\n })\n\n // Line height\n click(elements.lineHeightNormal, () => {\n this._setAttrDataBviBody('lineHeight', 'normal')\n setCookie('lineHeight', 'normal')\n this._speech(`${this._i18n.v('lineHeightNormal')}`)\n activeLink(elements.lineHeightNormal)\n })\n\n click(elements.lineHeightAverage, () => {\n this._setAttrDataBviBody('lineHeight', 'average')\n setCookie('lineHeight', 'average')\n this._speech(`${this._i18n.v('lineHeightAverage')}`)\n activeLink(elements.lineHeightAverage)\n })\n\n click(elements.lineHeightBig, () => {\n this._setAttrDataBviBody('lineHeight', 'big')\n setCookie('lineHeight', 'big')\n this._speech(`${this._i18n.v('lineHeightBig')}`)\n activeLink(elements.lineHeightBig)\n })\n\n // Letter spacing\n click(elements.letterSpacingNormal, () => {\n this._setAttrDataBviBody('letterSpacing', 'normal')\n setCookie('letterSpacing', 'normal')\n this._speech(`${this._i18n.v('LetterSpacingNormal')}`)\n activeLink(elements.letterSpacingNormal)\n })\n\n click(elements.letterSpacingAverage, () => {\n this._setAttrDataBviBody('letterSpacing', 'average')\n setCookie('letterSpacing', 'average')\n this._speech(`${this._i18n.v('LetterSpacingAverage')}`)\n activeLink(elements.letterSpacingAverage)\n })\n\n click(elements.letterSpacingBig, () => {\n this._setAttrDataBviBody('letterSpacing', 'big')\n setCookie('letterSpacing', 'big')\n this._speech(`${this._i18n.v('LetterSpacingBig')}`)\n activeLink(elements.letterSpacingBig)\n })\n\n // Font family\n click(elements.fontFamilyArial, () => {\n this._setAttrDataBviBody('fontFamily', 'arial')\n setCookie('fontFamily', 'arial')\n this._speech(`${this._i18n.v('fontArial')}`)\n activeLink(elements.fontFamilyArial)\n })\n\n click(elements.fontFamilyTimes, () => {\n this._setAttrDataBviBody('fontFamily', 'times')\n setCookie('fontFamily', 'times')\n this._speech(`${this._i18n.v('fontTimes')}`)\n activeLink(elements.fontFamilyTimes)\n })\n\n // Built elements\n click(elements.builtElementsOn, () => {\n this._setAttrDataBviBody('builtElements', 'true')\n setCookie('builtElements', 'true')\n this._speech(`${this._i18n.v('builtElementsOn')}`)\n activeLink(elements.builtElementsOn)\n })\n\n click(elements.builtElementsOff, () => {\n this._setAttrDataBviBody('builtElements', 'false')\n setCookie('builtElements', 'false')\n this._speech(`${this._i18n.v('builtElementsOFF')}`)\n activeLink(elements.builtElementsOff)\n })\n\n // Reset\n click(elements.reset, () => {\n this._speech(`${this._i18n.v('resetSettings')}`)\n getObject(this._config, key => {\n this._setAttrDataBviBody(key, this._config[key])\n setCookie(key, this._config[key])\n activeAll()\n })\n })\n\n getArray(elements.links, element => {\n click(element, event => {\n let target = event.target.getAttribute('data-bvi')\n\n if (target === 'close') {\n this._setAttrDataBviBody('panelActive', 'false')\n setCookie('panelActive', 'false')\n this._init()\n }\n\n if (target === 'modal') {\n document.body.style.overflow = 'hidden'\n document.body.classList.add('bvi-noscroll')\n elements.modal.classList.toggle('show')\n }\n\n if (target === 'modal-close') {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n\n if (target === 'panel-hide') {\n document.querySelector('.bvi-panel').classList.add('bvi-panel-hide')\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-hide')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-show')\n setCookie('panelHide', 'true')\n this._speech(`${this._i18n.v('panelHide')}`)\n }\n\n if (target === 'panel-show') {\n document.querySelector('.bvi-link-fixed-top').classList.remove('bvi-show')\n document.querySelector('.bvi-link-fixed-top').classList.add('bvi-hide')\n document.querySelector('.bvi-panel').classList.remove('bvi-panel-hide')\n setCookie('panelHide', 'false')\n this._speech(`${this._i18n.v('panelShow')}`)\n }\n })\n })\n\n click(elements.modal, event => {\n if (event.target.contains(elements.modal)) {\n document.body.classList.remove('bvi-noscroll')\n document.body.style.overflow = ''\n elements.modal.classList.remove('show')\n }\n })\n }\n\n _getPanel() {\n const scroll = () => {\n let scroll = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop\n\n if (stringToBoolean(getCookie('panelFixed'))) {\n if (scroll > 200) {\n document.querySelector('.bvi-panel').classList.add('bvi-fixed-top')\n } else {\n document.querySelector('.bvi-panel').classList.remove('bvi-fixed-top')\n }\n }\n }\n\n let panelHide = stringToBoolean(getCookie('panelHide')) ? ' bvi-panel-hide' : ''\n let linkHide = !stringToBoolean(getCookie('panelHide')) ? ' bvi-hide' : 'bvi-show'\n let html = `\n
\n
\n
\n
${this._i18n.t('fontSize')}
\n А-\n А+\n
\n
\n
${this._i18n.t('siteColors')}
\n Ц\n Ц\n Ц\n Ц\n Ц\n
\n
\n
${this._i18n.t('images')}
\n \n \n \n \n \n \n \n \n \n
\n
\n
${this._i18n.t('speech')}
\n \n \n \n \n \n \n
\n
\n
${this._i18n.t('settings')}
\n \n \n \n \n ${this._i18n.t('regularVersionOfTheSite')}\n \n \n \n \n
\n
\n
\n
\n
\n
\n
${this._i18n.t('settings')}
\n ×\n
\n
\n
\n \n \n
\n
${this._i18n.t('font')}
\n ${this._i18n.t('arial')}\n ${this._i18n.t('times')}\n
\n
\n
${this._i18n.t('builtElements')}
\n ${this._i18n.t('on')}\n ${this._i18n.t('off')}\n
\n
\n \n
\n \n
\n
\n
\n
`\n\n let link = `` +\n ''\n\n window.addEventListener('scroll', scroll)\n document.querySelector('.bvi-body').insertAdjacentHTML('beforebegin', html)\n document.querySelector('.bvi-body').insertAdjacentHTML('afterbegin', link)\n scroll()\n }\n\n _set() {\n document.body.classList.add('bvi-active')\n wrapInner(document.body, 'div', 'bvi-body')\n getObject(this._config, key => this._setAttrDataBviBody(key, getCookie(key)))\n getArray(this._elements, element => element.style.display = 'none')\n\n document.querySelectorAll('img')\n .forEach(element => {\n if (element.classList.contains('bvi-img')) {\n element.classList.remove('bvi-img')\n }\n })\n\n document.querySelectorAll('body *')\n .forEach(element => {\n if (element.classList.contains('bvi-background-image')) {\n element.classList.remove('bvi-background-image')\n }\n })\n }\n\n _remove() {\n let bviPanel = document.querySelector('.bvi-panel')\n let bviBody = document.querySelector('.bvi-body')\n let bviLinkFixedTop = document.querySelector('.bvi-link-fixed-top')\n\n if (bviPanel) {\n bviPanel.remove()\n }\n\n if (bviBody) {\n unwrap(bviBody)\n }\n\n if (bviLinkFixedTop) {\n bviLinkFixedTop.remove()\n }\n\n this._speech(`${this._i18n.v('panelOff')}`)\n\n document.body.classList.remove('bvi-active')\n\n getArray(this._elements, element => element.style.display = '')\n\n if (stringToBoolean(getCookie('reload'))) {\n document.location.reload()\n }\n\n getObject(this._config, key => {\n removeCookie(key)\n })\n\n this._speechPlayer()\n\n removeCookie('panelActive')\n }\n\n _images() {\n document.querySelectorAll('img').forEach(element => {\n if (!element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-img')\n }\n })\n\n document.querySelectorAll('.bvi-body *').forEach(element => {\n let style = getComputedStyle(element)\n if (style.backgroundImage !== 'none' && style.background !== 'none' && !element.classList.contains('bvi-no-style')) {\n element.classList.add('bvi-background-image')\n }\n })\n }\n\n _getConfig(config) {\n config = {...Default, ...config}\n let extended = {}\n\n for (let keyDefault in Default) {\n extended[keyDefault] = config[keyDefault]\n }\n\n checkConfig(extended, DefaultType, DefaultOptions)\n\n return extended\n }\n\n _setAttrDataBviBody(name = '', value = '') {\n document.querySelector('.bvi-body').setAttribute(`data-bvi-${name}`, value)\n }\n\n _speechPlayer() {\n let selectorSpeechText = document.querySelectorAll('.bvi-speech-text')\n let selectorSpeechLink = document.querySelectorAll('.bvi-speech-link')\n let selectorBviSpeech = document.querySelectorAll('.bvi-speech')\n\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n\n if (selectorBviSpeech) {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n\n selectorBviSpeech.forEach((speechDivBlock, index) => {\n let id = `bvi-speech-text-id-${index + 1}`\n let html = `\n `\n\n wrapInner(speechDivBlock, 'div', `bvi-speech-text ${id}`)\n speechDivBlock.insertAdjacentHTML('afterbegin', html)\n })\n\n let selectorPlay = document.querySelectorAll('.bvi-speech-play')\n let selectorPause = document.querySelectorAll('.bvi-speech-pause')\n let selectorResume = document.querySelectorAll('.bvi-speech-resume')\n let selectorStop = document.querySelectorAll('.bvi-speech-stop')\n const el = (elements, callback) => {\n elements.forEach(element => {\n element.addEventListener('click', event => {\n event.preventDefault()\n if (typeof callback === 'function') {\n return callback(element, event)\n }\n }, false)\n })\n }\n\n el(selectorPlay, (element, event) => {\n let target = event.target\n let text = target.parentNode.nextElementSibling;\n let closest = event.target.closest('.bvi-speech-link')\n let play = document.querySelectorAll('.bvi-speech-play')\n let pause = document.querySelectorAll('.bvi-speech-pause')\n let resume = document.querySelectorAll('.bvi-speech-resume')\n let stop = document.querySelectorAll('.bvi-speech-stop')\n\n this._speech(text.textContent, text, true);\n\n play.forEach(element => element.classList.remove('disabled'))\n pause.forEach(element => element.classList.add('disabled'))\n resume.forEach(element => element.classList.add('disabled'))\n stop.forEach(element => element.classList.add('disabled'))\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n closest.querySelector('.bvi-speech-stop').classList.remove('disabled')\n })\n\n el(selectorPause, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-resume').classList.remove('disabled')\n synth().pause()\n })\n\n el(selectorResume, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.remove('disabled')\n synth().resume()\n })\n\n el(selectorStop, (element, event) => {\n let target = event.target\n let closest = event.target.closest('.bvi-speech-link')\n\n target.classList.add('disabled')\n closest.querySelector('.bvi-speech-pause').classList.add('disabled')\n closest.querySelector('.bvi-speech-play').classList.remove('disabled')\n synth().cancel();\n })\n }\n } else {\n if (selectorSpeechText) {\n selectorSpeechText.forEach(element => unwrap(element))\n }\n\n if (selectorSpeechLink) {\n selectorSpeechLink.forEach(element => element.remove())\n }\n }\n }\n\n _speech(text, element, echo = false) {\n if ('speechSynthesis' in window && stringToBoolean(getCookie('speech'))) {\n synth().cancel()\n const getWordAt = (str, pos) => {\n str = String(str)\n pos = Number(pos) >>> 0\n\n let left = str.slice(0, pos + 1).search(/\\S+$/)\n let right = str.slice(pos).search(/\\s/)\n\n if (right < 0) {\n return str.slice(left)\n }\n return str.slice(left, right + pos)\n }\n\n let chunkLength = 120\n let patternRegex = new RegExp('^[\\\\s\\\\S]{' + Math.floor(chunkLength / 2) + ',' + chunkLength + '}[.!?,]{1}|^[\\\\s\\\\S]{1,' + chunkLength + '}$|^[\\\\s\\\\S]{1,' + chunkLength + '} ')\n let array = []\n let $text = text\n let voices = synth().getVoices()\n\n while ($text.length > 0) {\n array.push($text.match(patternRegex)[0])\n $text = $text.substring(array[array.length - 1].length)\n }\n\n array.forEach(getText => {\n let utter = new SpeechSynthesisUtterance(getText.trim())\n utter.volume = 1\n utter.rate = 1\n utter.pitch = 1\n utter.lang = this._config.lang\n\n for (let i = 0; i < voices.length; i++) {\n if (this._config.lang === 'ru-RU' && voices[i].name === 'Microsoft Pavel - Russian (Russia)') {\n utter.voice = voices[i]\n }\n\n if (this._config.lang === 'en-US' && voices[i].name === 'Microsoft Pavel - English (English)') {\n utter.voice = voices[i]\n }\n }\n\n if (echo) {\n utter.onboundary = event => {\n\n element.classList.add('bvi-highlighting')\n let world = getWordAt(event.utterance.text, event.charIndex)\n let textContent = element.textContent\n let term = world.replace(/(\\s+)/, '((<[^>]+>)*$1(<[^>]+>)*)')\n let pattern = new RegExp('(' + term + ')', 'gi')\n textContent = textContent.replace(pattern, '$1')\n textContent = textContent.replace(/([^<>]*)((<[^>]+>)+)([^<>]*<\\/mark>)/, '$1$2$4')\n element.innerHTML = textContent\n }\n\n utter.onend = event => {\n element.classList.remove('bvi-highlighting')\n let textContent = element.textContent\n textContent = textContent.replace(/($1<\\/mark>)/, '$1')\n element.innerHTML = textContent\n }\n }\n\n synth().speak(utter)\n })\n }\n }\n}\n\nexport default Bvi\n","/**\n * --------------------------------------------------------------------------\n * Button visually impaired (v1.0.0): index.umd.js\n * Licensed under MIT (https://github.com/veks/button-visually-impaired-javascript/blob/master/LICENSE.md)\n * --------------------------------------------------------------------------\n */\n\n/*import 'core-js/stable';*/\nimport 'regenerator-runtime/runtime'\nimport Bvi from './bvi'\n\nexport default { Bvi }\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7c03dec..52efff4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bvi", - "version": "1.0.1", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/js/util/cookie.js b/src/js/util/cookie.js index 3afd70d..2dd2bbf 100644 --- a/src/js/util/cookie.js +++ b/src/js/util/cookie.js @@ -10,7 +10,7 @@ const setCookie = function (name = '', value = '') { let time = now.getTime(); time += 24 * 60 * 60 * 1000; now.setTime(time); - document.cookie = `bvi_${name}=${value};path=/;expires=${now.toUTCString()};domain=${location.host}`; + document.cookie = `bvi_${name}=${value},path=/,expires=${now.toUTCString()},domain=${location.host}`; }; const getCookie = function (name = '') { @@ -22,13 +22,14 @@ const getCookie = function (name = '') { let cookie = cookies[i].trim(); if (cookie.indexOf(name) !== -1) { - return cookie.substring(name.length, cookie.length); + let options = cookie.split(","); + return options[0].substring(name.length, options[0].length); } } }; const removeCookie = function (name = '') { - document.cookie = `bvi_${name}=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=${location.host}`; + document.cookie = `bvi_${name}=,path=/,expires=Thu, 01 Jan 1970 00:00:01 GMT,domain=${location.host}`; }; export {