{"version":3,"sources":["webpack:///../node_modules/lodash.throttle/index.js","webpack:///./src/components/pages/about/images/center-arrow-mobile.png","webpack:///./src/hooks/use-active-section.ts","webpack:///./src/components/pages/about/images/nav sync ^\\.\\/.*$","webpack:///./src/components/pages/about/images/nav/nav-mobile.png","webpack:///./src/components/pages/about/images/connecting-arrow.png","webpack:///./src/components/pages/about/images/connecting-arrow-mobile.png","webpack:///./src/components/pages/about/images/center-arrow.png","webpack:///./src/components/pages/about/images/arrow-closer.png","webpack:///./src/components/pages/about/images/nav/menu1-active.png","webpack:///./src/components/pages/about/images/nav/menu1-inactive.png","webpack:///./src/components/pages/about/images/nav/menu2-active.png","webpack:///./src/components/pages/about/images/nav/menu2-inactive.png","webpack:///./src/components/pages/about/images/nav/menu3-active.png","webpack:///./src/components/pages/about/images/nav/menu3-inactive.png","webpack:///./src/components/pages/about/images/nav/menu4-active.png","webpack:///./src/components/pages/about/images/nav/menu4-inactive.png","webpack:///./src/components/pages/about/images/nav/nav-mobile-active.png","webpack:///./src/components/pages/about/images/forked-arrow.png","webpack:///./src/components/pages/about/images/forked-arrow-mobile.png","webpack:///./src/components/pages/about/images/flowchart-icons sync ^\\.\\/.*$","webpack:///./src/components/pages/about/images/flowchart-icons/brain.png","webpack:///./src/components/pages/about/images/flowchart-icons/brain@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/brain@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/cancel.png","webpack:///./src/components/pages/about/images/flowchart-icons/cancel@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/cancel@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/duotone.png","webpack:///./src/components/pages/about/images/flowchart-icons/duotone@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/duotone@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/headset.png","webpack:///./src/components/pages/about/images/flowchart-icons/headset@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/headset@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/microphone.png","webpack:///./src/components/pages/about/images/flowchart-icons/microphone@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/microphone@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/rip.png","webpack:///./src/components/pages/about/images/flowchart-icons/rip@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/rip@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/time.png","webpack:///./src/components/pages/about/images/flowchart-icons/time@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/time@3x.png","webpack:///./src/components/pages/about/images/flowchart-icons/yes.png","webpack:///./src/components/pages/about/images/flowchart-icons/yes@2x.png","webpack:///./src/components/pages/about/images/flowchart-icons/yes@3x.png","webpack:///./src/components/pages/images/wave-footer@3x.png","webpack:///./src/components/pages/about/images/robot-footer.svg","webpack:///./src/components/pages/about/images/wave-top.png","webpack:///./src/components/pages/about/images/robot.png","webpack:///./src/components/pages/about/constants.ts","webpack:///./src/components/pages/about/nav.tsx","webpack:///./src/components/pages/about/how-it-works.tsx","webpack:///./src/components/pages/about/get-involved.tsx","webpack:///./src/components/pages/about/why-common-voice.tsx","webpack:///./src/components/pages/about/about.tsx"],"names":["reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","this","toNumber","isObject","cancel","clearTimeout","flush","value","type","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","throttle","require","useActiveSection","sections","activeSection","setActiveSection","useState","sectionMap","throttledHandleSectionUpdate","handleSectionUpdate","scrollMap","entries","sort","a","b","intersectionObserverCallback","forEach","e","target","id","boundingClientRect","top","isIntersecting","intersectionRatio","useEffect","sectionsElements","map","s","document","getElementById","filter","observer","IntersectionObserver","threshold","rootMargin","observe","unobserve","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","keys","resolve","SECTIONS","WHY_COMMON_VOICE","HOW_IT_WORKS","PARTNERS","GET_INVOLVED","MENU_SECTIONS","FlagIcon","className","LayersIcon","HeartIcon","Nav","React","memo","props","mobileBottom","setMobileBottom","navType","updateMobileBottomPosition","documentElement","clientHeight","window","innerHeight","addEventListener","removeEventListener","parentProps","cx","bottom","createElement","assign","_a","key","activeBg","inactiveBg","MobileIcon","_b","otherProps","__rest","active","href","src","Fragment","Localized","FLOWCHART","children","alt","ChartNode","chartNode","icon","HowItWorks","f","chartNodes","length","Array","isArray","index","pop","GetInvolved","role","elems","githubLink","GitHubLink","matrixLink","MatrixLink","ContactLink","ContactIconCode","LinkComponent","IconComponent","WhyCommonVoice","About","values","section","SectionComponent"],"mappings":"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","file":"5.js?id=d3289999fa84d208cfad","sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        result = wait - timeSinceLastCall;\n\n    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","module.exports = __webpack_public_path__ + \"fa640ae1682700c7c56a29179ee7cc97.png\";","var throttle = require('lodash.throttle');\nimport { useState, useEffect } from 'react';\n\ntype SectionMap = {\n  [key: string]: number;\n};\n\nexport default function useActiveSection(sections: any): string {\n  const [activeSection, setActiveSection] = useState<string | null>(null);\n  const sectionMap: SectionMap = {};\n\n  const handleSectionUpdate = () => {\n    let scrollMap = Object.entries(sectionMap);\n\n    scrollMap.sort((a: any[], b: any[]) => a[1] - b[1]);\n\n    if (scrollMap[0] && scrollMap[0][0] !== activeSection) {\n      setActiveSection(scrollMap[0][0]);\n    }\n  };\n\n  const throttledHandleSectionUpdate = throttle(handleSectionUpdate, 200);\n\n  const intersectionObserverCallback = (entries: any[]) => {\n    entries.forEach(e => {\n      sectionMap[e.target.id] = e.boundingClientRect.top;\n\n      if (!e.isIntersecting || e.intersectionRatio < 0.02) {\n        delete sectionMap[e.target.id];\n      }\n    });\n\n    throttledHandleSectionUpdate();\n  };\n\n  useEffect(() => {\n    const sectionsElements: HTMLElement[] = sections\n      .map((s: string) => document.getElementById(s))\n      .filter((e: HTMLElement) => !!e);\n    const observer = new IntersectionObserver(intersectionObserverCallback, {\n      threshold: [\n        0,\n        0.01,\n        0.02,\n        0.03,\n        0.04,\n        0.05,\n        0.06,\n        0.07,\n        0.08,\n        0.09,\n        0.1,\n        0.9,\n        0.91,\n        0.92,\n        0.93,\n        0.94,\n        0.95,\n        0.96,\n        0.97,\n        0.98,\n        0.99,\n        1,\n      ],\n      rootMargin: '-20%',\n    });\n\n    sectionsElements.map((e: HTMLElement) => observer.observe(e));\n\n    return () => {\n      sectionsElements.map((e: HTMLElement) => observer.unobserve(e));\n    };\n  });\n\n  return activeSection;\n}\n","var map = {\n\t\"./menu1-active.png\": 424,\n\t\"./menu1-inactive.png\": 425,\n\t\"./menu2-active.png\": 426,\n\t\"./menu2-inactive.png\": 427,\n\t\"./menu3-active.png\": 428,\n\t\"./menu3-inactive.png\": 429,\n\t\"./menu4-active.png\": 430,\n\t\"./menu4-inactive.png\": 431,\n\t\"./nav-mobile-active.png\": 432,\n\t\"./nav-mobile.png\": 333\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 332;","module.exports = __webpack_public_path__ + \"254c5358867b9d06f76df05c879f9722.png\";","module.exports = __webpack_public_path__ + \"04ab4166f1e258659cb74f4878da3d15.png\";","module.exports = __webpack_public_path__ + \"94d6f1e256215385252abfd6287d4d61.png\";","module.exports = __webpack_public_path__ + \"73f56ac11b3e41ea1337351494a434a5.png\";","module.exports = __webpack_public_path__ + \"7398e84719ea761119ff0efdc099a591.png\";","module.exports = __webpack_public_path__ + \"1de2b88d3ddcd61e1a0ad578b4acf43a.png\";","module.exports = __webpack_public_path__ + \"5cae27a2d2e6db2d3af24b65b92a32c5.png\";","module.exports = __webpack_public_path__ + \"fc64cfa4622432f76a3203ab55d22945.png\";","module.exports = __webpack_public_path__ + \"cbb1a5c1f699d25f7dc160e07b27e6d2.png\";","module.exports = __webpack_public_path__ + \"3fcdc8221612e1dd7fd62f7e5673e230.png\";","module.exports = __webpack_public_path__ + \"ca9c0e2c1dd1c69a25532467d2511c49.png\";","module.exports = __webpack_public_path__ + \"2bb9e610237f9ad0e8a28f8cb7826737.png\";","module.exports = __webpack_public_path__ + \"42287bebc163495f871ded4ccde197eb.png\";","module.exports = __webpack_public_path__ + \"f8e4b9ff76b860331ef209274d904357.png\";","module.exports = __webpack_public_path__ + \"3378e0dd11f169465bc9efc96296f41a.png\";","module.exports = __webpack_public_path__ + \"2ffe1187629d057e59c0ba134dd8f7c5.png\";","var map = {\n\t\"./brain.png\": 437,\n\t\"./brain@2x.png\": 438,\n\t\"./brain@3x.png\": 439,\n\t\"./cancel.png\": 440,\n\t\"./cancel@2x.png\": 441,\n\t\"./cancel@3x.png\": 442,\n\t\"./duotone.png\": 443,\n\t\"./duotone@2x.png\": 444,\n\t\"./duotone@3x.png\": 445,\n\t\"./headset.png\": 446,\n\t\"./headset@2x.png\": 447,\n\t\"./headset@3x.png\": 448,\n\t\"./microphone.png\": 449,\n\t\"./microphone@2x.png\": 450,\n\t\"./microphone@3x.png\": 451,\n\t\"./rip.png\": 452,\n\t\"./rip@2x.png\": 453,\n\t\"./rip@3x.png\": 454,\n\t\"./time.png\": 455,\n\t\"./time@2x.png\": 456,\n\t\"./time@3x.png\": 457,\n\t\"./yes.png\": 458,\n\t\"./yes@2x.png\": 459,\n\t\"./yes@3x.png\": 460\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 436;","module.exports = __webpack_public_path__ + \"fcaa22e464918d8a8cdf3f709c7a455f.png\";","module.exports = __webpack_public_path__ + \"ad95f9ba8ec11a5b9e2e8622b6358ec4.png\";","module.exports = __webpack_public_path__ + \"6cc7eb4fb0ade6662b4a88b077ed510d.png\";","module.exports = __webpack_public_path__ + \"e13c131cc5a58cbeff07393dc1ad276b.png\";","module.exports = __webpack_public_path__ + \"1a3d0f11c91d17475ecbcbbc6966ec17.png\";","module.exports = __webpack_public_path__ + \"d3a8d3b1ee5b76a6b13979a0fdf6ef02.png\";","module.exports = __webpack_public_path__ + \"2aca82b77a13e5581f841c74f0dcf650.png\";","module.exports = __webpack_public_path__ + \"ead0b22bd15d914f6778fed7092d1bce.png\";","module.exports = __webpack_public_path__ + \"78c28a51c1d3fd026eac2421232e2c12.png\";","module.exports = __webpack_public_path__ + \"65b890b3f4e61e4c8d827cf2aae362bf.png\";","module.exports = __webpack_public_path__ + \"4038d9e7e6d4b7e5a28cb8970c0dcaff.png\";","module.exports = __webpack_public_path__ + \"1b7028e86fddacfeeb46a6449327fb06.png\";","module.exports = __webpack_public_path__ + \"cd5d9479da443748991b0b1e89894523.png\";","module.exports = __webpack_public_path__ + \"e66cd338d5db2d05178a3cf9b4bf8d07.png\";","module.exports = __webpack_public_path__ + \"2719829f7b9bda6f20ac3eb0c31b02e4.png\";","module.exports = __webpack_public_path__ + \"91ab81b3123cc5a75e2f40fff3cb55f1.png\";","module.exports = __webpack_public_path__ + \"8991d5b0181f2a7153e7ea135b42713d.png\";","module.exports = __webpack_public_path__ + \"1fb5c9c75aa486ab42af9660e44341a8.png\";","module.exports = __webpack_public_path__ + \"13e9ffe8c1bacbee22d2f6f5e7191b65.png\";","module.exports = __webpack_public_path__ + \"eac6fec0290430e78c102fb9eafac8c9.png\";","module.exports = __webpack_public_path__ + \"8ca254cf087855d04f2315f86e2e52bf.png\";","module.exports = __webpack_public_path__ + \"501c746ec674f864f992a97bae9176bb.png\";","module.exports = __webpack_public_path__ + \"dc20cd4f233173a54d5a8501b4b936d5.png\";","module.exports = __webpack_public_path__ + \"de068e2ac14e4ecb2279766021783cfb.png\";","module.exports = __webpack_public_path__ + \"8233f313c1371e02a19caf64a677c069.png\";","module.exports = __webpack_public_path__ + \"6bad751b2683b8461ee24db886c31c5a.svg\";","module.exports = __webpack_public_path__ + \"bef7c6595dc9ef5ff13d96bd7124c115.png\";","module.exports = __webpack_public_path__ + \"362cba4c1cd3f868a00538ad7ef8336c.png\";","export const SECTIONS = {\n  WHY_COMMON_VOICE: 'why-common-voice',\n  HOW_IT_WORKS: 'how-it-works',\n  PARTNERS: 'partners',\n  GET_INVOLVED: 'get-involved',\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { SECTIONS } from './constants';\nimport { Localized } from '@fluent/react';\nimport { FlagIcon, LayersIcon, UsersIcon, HeartIcon } from '../../ui/icons';\n\nconst throttle = require('lodash.throttle');\n\nimport './nav.css';\n\ninterface Props {\n  activeSection: string;\n  navType: string;\n}\n\nconst MENU_SECTIONS: any[] = [\n  [\n    SECTIONS.WHY_COMMON_VOICE,\n    ['menu1-active.png', 'menu1-inactive.png'],\n    FlagIcon,\n    { className: 'i1' },\n  ],\n  [\n    SECTIONS.HOW_IT_WORKS,\n    ['menu2-active.png', 'menu2-inactive.png'],\n    LayersIcon,\n    { className: 'i2' },\n  ],\n  // [\n  //   SECTIONS.PARTNERS,\n  //   ['menu3-active.png', 'menu3-inactive.png'],\n  //   UsersIcon,\n  //   { className: 'i3' },\n  // ],\n  [\n    SECTIONS.GET_INVOLVED,\n    ['menu4-active.png', 'menu4-inactive.png'],\n    HeartIcon,\n    { className: 'i4' },\n  ],\n];\n\nconst Nav: React.ComponentType<Props> = React.memo((props: Props) => {\n  const [mobileBottom, setMobileBottom] = React.useState<number>(0);\n\n  React.useEffect(() => {\n    if (props.navType !== 'mobile') {\n      return;\n    }\n\n    const updateMobileBottomPosition = throttle(() => {\n      setMobileBottom(\n        document.documentElement.clientHeight - window.innerHeight\n      );\n    });\n\n    setTimeout(updateMobileBottomPosition, 0);\n\n    window.addEventListener('resize', updateMobileBottomPosition);\n\n    return () => {\n      window.removeEventListener('resize', updateMobileBottomPosition);\n    };\n  }, []);\n\n  const parentProps: any = {\n    className: cx('nav', props.navType),\n  };\n\n  if (mobileBottom) {\n    parentProps['style'] = { bottom: `${mobileBottom}px` };\n  }\n\n  return (\n    <div {...parentProps}>\n      {MENU_SECTIONS.map(\n        ([\n          key,\n          [activeBg, inactiveBg],\n          MobileIcon,\n          { className, ...otherProps },\n        ]) => (\n          <a\n            key={key}\n            className={cx('menu-item', className, {\n              active: key === props.activeSection,\n            })}\n            href={`#${key}`}\n            {...otherProps}>\n            <img src={require(`./images/nav/${inactiveBg}`)} />\n            <img src={require(`./images/nav/${activeBg}`)} className=\"active\" />\n\n            {props.navType === 'mobile' && (\n              <>\n                <img\n                  src={require('./images/nav/nav-mobile.png')}\n                  className=\"mobile-rounded\"\n                />\n\n                <MobileIcon />\n              </>\n            )}\n\n            <Localized id={`about-nav-${key}`}>\n              <div className=\"text\" />\n            </Localized>\n          </a>\n        )\n      )}\n    </div>\n  );\n});\n\nexport default Nav;\n","import React from 'react';\nimport cx from 'classnames';\nimport { Localized } from '@fluent/react';\n\nimport './how-it-works.css';\n\nconst CHART_NODE_REQUIRED_COUNT = 4;\nconst CHART_NODE_BLOCK_WITHOUT_OPTIONS_COUNT = 2;\n\nconst FLOWCHART: any[] = [\n  [['01', 'microphone.png', 'about-speak']],\n  [\n    [\n      '02',\n      'time.png',\n      'about-listen-queue',\n      {\n        children: (\n          <>\n            <img\n              src={require('./images/connecting-arrow.png')}\n              className=\"connecting-arrow left desktop\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/connecting-arrow.png')}\n              className=\"connecting-arrow right desktop\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/connecting-arrow-mobile.png')}\n              className=\"connecting-arrow left mobile\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/connecting-arrow-mobile.png')}\n              className=\"connecting-arrow right mobile\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/center-arrow.png')}\n              className=\"center-arrow\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/center-arrow-mobile.png')}\n              className=\"center-arrow mobile\"\n              alt=\"\"\n            />\n          </>\n        ),\n      },\n    ],\n  ],\n  [['03', 'headset.png', 'about-listen']],\n  [\n    [\n      '04',\n      'duotone.png',\n      'about-is-it-valid',\n      {\n        className: 'spaced-below',\n        children: (\n          <>\n            <img\n              src={require('./images/forked-arrow.png')}\n              className=\"center-arrow\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/forked-arrow-mobile.png')}\n              className=\"center-arrow mobile\"\n              alt=\"\"\n            />\n          </>\n        ),\n      },\n    ],\n  ],\n  [\n    [\n      '5.1',\n      'yes.png',\n      'about-yes-votes',\n      { className: 'after-fork inside-fork' },\n    ],\n    [\n      '5.2',\n      'cancel.png',\n      'about-no-votes',\n      { className: 'after-fork inside-fork' },\n    ],\n    { className: 'top' },\n  ],\n  [\n    [\n      '6.1',\n      'brain.png',\n      'about-dataset-new',\n      {\n        className: 'inside-fork',\n        children: (\n          <>\n            <img\n              src={require('./images/arrow-closer.png')}\n              className=\"center-arrow\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/center-arrow-mobile.png')}\n              className=\"center-arrow mobile\"\n              alt=\"\"\n            />\n          </>\n        ),\n      },\n    ],\n    [\n      '6.2',\n      'rip.png',\n      'about-clip-graveyard',\n      {\n        className: 'inside-fork',\n        children: (\n          <>\n            <img\n              src={require('./images/arrow-closer.png')}\n              className=\"center-arrow\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/center-arrow-mobile.png')}\n              className=\"center-arrow mobile\"\n              alt=\"\"\n            />\n          </>\n        ),\n      },\n    ],\n    { className: 'bottom' },\n  ],\n];\n\ninterface ChartNodeProps {\n  chartNode: any[];\n}\n\nconst ChartNode: React.ComponentType<ChartNodeProps> = React.memo(\n  ({ chartNode }: ChartNodeProps) => {\n    const [id, icon, key, { className, children, ...props }] = chartNode;\n\n    return (\n      <div className={cx('flowchart-block', className)} {...props}>\n        <div className=\"number\">{id}</div>\n\n        {icon && (\n          <img\n            className=\"icon\"\n            src={require(`./images/flowchart-icons/${icon}`)}\n            alt=\"\"\n          />\n        )}\n\n        <Localized id={key}>\n          <h2 className=\"title\" />\n        </Localized>\n\n        <Localized id={`${key}-text`}>\n          <div className=\"description\" />\n        </Localized>\n\n        {children || (\n          <>\n            <img\n              src={require('./images/center-arrow.png')}\n              className=\"center-arrow\"\n              alt=\"\"\n            />\n\n            <img\n              src={require('./images/center-arrow-mobile.png')}\n              className=\"center-arrow mobile\"\n              alt=\"\"\n            />\n          </>\n        )}\n      </div>\n    );\n  }\n);\n\nconst HowItWorks: React.ComponentType = React.memo(() => {\n  return (\n    <div className=\"about-content\">\n      <div className=\"about-container no-padding-xs\">\n        <div className=\"vertical-line\" />\n\n        <div className=\"flowchart\">\n          <Localized id=\"how-does-it-work-title\">\n            <h1 />\n          </Localized>\n\n          <Localized id=\"how-does-it-work-text\">\n            <h4 />\n          </Localized>\n\n          {FLOWCHART.map(f => {\n            const chartNodes = f.map((chartNode: any[]) =>\n              chartNode.length === CHART_NODE_REQUIRED_COUNT ||\n              !Array.isArray(chartNode)\n                ? chartNode\n                : [...chartNode, {}]\n            );\n\n            return chartNodes.length == CHART_NODE_BLOCK_WITHOUT_OPTIONS_COUNT\n              ? [...chartNodes, {}]\n              : chartNodes;\n          }).map((chartNodes: any[], index: number) => {\n            if (chartNodes.length === 1) {\n              return (\n                <ChartNode\n                  key={`chart-node-${index}`}\n                  chartNode={chartNodes[0]}\n                />\n              );\n            }\n\n            const { className, ...props } = chartNodes.pop();\n\n            return (\n              <div\n                key={`chart-node-block-${index}`}\n                className={cx('fork-group', className)}\n                {...props}>\n                {chartNodes.map((chartNode: any[], index: number) => (\n                  <ChartNode\n                    key={`chart-node-${index}`}\n                    chartNode={chartNode}\n                  />\n                ))}\n              </div>\n            );\n          })}\n        </div>\n      </div>\n    </div>\n  );\n});\n\nexport default HowItWorks;\n","import * as React from 'react';\nimport { Localized } from '@fluent/react';\nimport { GitHubLink, ContactLink, MatrixLink } from '../../shared/links';\nimport { GithubIconCode, MatrixIcon, ContactIconCode } from '../../ui/icons';\n\nimport './get-involved.css';\n\nconst GetInvolved: React.ComponentType = () => {\n  return (\n    <>\n      <img\n        className=\"wave-footer\"\n        src={require('../images/wave-footer@3x.png')}\n        alt=\"\"\n        role=\"presentation\"\n      />\n\n      {/*<div className=\"become-partner\">\n        <ContactLink>\n          <Localized id=\"about-become-a-partner\">\n            <span />\n          </Localized>\n          <ArrowLeft />\n        </ContactLink>\n      </div>*/}\n\n      <div className=\"robot-section\">\n        <img src={require('./images/robot-footer.svg')} alt=\"Robot\" />\n      </div>\n\n      <div className=\"text-section\">\n        <div className=\"line\" />\n\n        <Localized id=\"about-get-involved\">\n          <h1 />\n        </Localized>\n\n        <Localized\n          id=\"about-get-involved-text-2\"\n          elems={{\n            githubLink: <GitHubLink />,\n            matrixLink: <MatrixLink />,\n          }}>\n          <p />\n        </Localized>\n\n        <div className=\"get-involved-icons\">\n          {[[ContactLink, ContactIconCode]].map(\n            ([LinkComponent, IconComponent]: [any, any], index: number) => (\n              <LinkComponent\n                key={`get-involved-icon-${index}`}\n                className=\"round-button\">\n                <IconComponent />\n              </LinkComponent>\n            )\n          )}\n        </div>\n      </div>\n    </>\n  );\n};\n\nexport default GetInvolved;\n","import * as React from 'react';\nimport { Localized } from '@fluent/react';\n\nimport './why-common-voice.css';\n\nconst WhyCommonVoice: React.ComponentType<{}> = () => {\n  return (\n    <>\n      <img\n        className=\"wave-top\"\n        src={require('./images/wave-top.png')}\n        alt=\"Wave\"\n      />\n\n      <div className=\"about-container about-heading\">\n        <div className=\"about-header\">\n          <div className=\"about-header-text\">\n            <div className=\"line\" />\n\n            <Localized id=\"about-title\">\n              <h1 />\n            </Localized>\n\n            <Localized id=\"about-subtitle\">\n              <h2 />\n            </Localized>\n\n            <Localized id=\"about-header-description\">\n              <h2 className=\"header-description\" />\n            </Localized>\n          </div>\n\n          <div className=\"intro-img\">\n            <img\n              className=\"robot\"\n              src={require('./images/robot.png')}\n              alt=\"Waves\"\n            />\n          </div>\n        </div>\n      </div>\n    </>\n  );\n};\n\nexport default WhyCommonVoice;\n","import Nav from './nav';\nimport React from 'react';\nimport cx from 'classnames';\nimport Partners from './partners';\nimport { SECTIONS } from './constants';\nimport HowItWorks from './how-it-works';\nimport GetInvolved from './get-involved';\nimport WhyCommonVoice from './why-common-voice';\nimport useActiveSection from '../../../hooks/use-active-section';\n\nimport './about.css';\n\nconst About: React.ComponentType = React.memo(() => {\n  const activeSection = useActiveSection(Object.values(SECTIONS));\n\n  return (\n    <section className=\"about-main-container\">\n      {[\n        [SECTIONS.WHY_COMMON_VOICE, WhyCommonVoice],\n        [\n          {\n            activeSection: activeSection,\n            navType: 'desktop',\n          },\n          Nav,\n        ],\n        [SECTIONS.HOW_IT_WORKS, HowItWorks],\n        // [SECTIONS.PARTNERS, Partners],\n        [SECTIONS.GET_INVOLVED, GetInvolved],\n        [\n          {\n            activeSection: activeSection,\n            navType: 'mobile',\n          },\n          Nav,\n        ],\n      ].map(([section, SectionComponent]: [string, any], index: number) => {\n        if (typeof section === 'object') {\n          return <SectionComponent key={`section-${index}`} {...section} />;\n        }\n\n        return (\n          <section\n            id={section}\n            key={`section-${section}`}\n            className={cx('about-hero', section, {\n              active: section === activeSection,\n            })}>\n            <SectionComponent />\n          </section>\n        );\n      })}\n    </section>\n  );\n});\n\nexport default About;\n"],"sourceRoot":""}