{"version":3,"sources":["webpack:///./node_modules/ramda/es/objOf.js","webpack:///./node_modules/ramda/es/max.js","webpack:///./node_modules/ramda/es/pluck.js","webpack:///./node_modules/ramda/es/converge.js","webpack:///./node_modules/ramda/es/internal/_objectAssign.js","webpack:///./node_modules/ramda/es/mergeAll.js","webpack:///./src/utils/utils.js","webpack:///./node_modules/ramda/es/internal/_curry3.js","webpack:///./node_modules/ramda/es/curry.js","webpack:///./src/assets/icons/ic_close.svg","webpack:///./node_modules/ramda/es/propEq.js","webpack:///./node_modules/ramda/es/prop.js","webpack:///./node_modules/ramda/es/internal/_pipe.js","webpack:///./node_modules/ramda/es/pipe.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/compose.js","webpack:///./node_modules/ramda/es/internal/_isInteger.js","webpack:///./node_modules/ramda/es/paths.js","webpack:///./node_modules/ramda/es/path.js","webpack:///./node_modules/ramda/es/internal/_xtake.js","webpack:///./node_modules/ramda/es/take.js","webpack:///./src/assets/icons/ic_open.svg","webpack:///./src/assets/icons/ic_arrow-left.svg","webpack:///./src/assets/logo/ITI_Logo.svg","webpack:///./node_modules/ramda/es/tail.js","webpack:///./node_modules/ramda/es/internal/_xfind.js","webpack:///./node_modules/ramda/es/find.js","webpack:///./node_modules/ramda/es/nth.js","webpack:///./node_modules/ramda/es/reduce.js","webpack:///./node_modules/ramda/es/slice.js","webpack:///./node_modules/ramda/es/internal/_reduced.js","webpack:///./src/assets/logo/ITI_Logo_Small.svg","webpack:///./node_modules/ramda/es/internal/_checkForMethod.js","webpack:///./node_modules/ramda/es/head.js","webpack:///./src/assets/icons/ic_arrow-right.svg","webpack:///./node_modules/ramda/es/init.js","webpack:///./node_modules/ramda/es/omit.js","webpack:///./node_modules/ramda/es/internal/_xany.js","webpack:///./node_modules/ramda/es/any.js","webpack:///./node_modules/ramda/es/flip.js","webpack:///./node_modules/ramda/es/startsWith.js","webpack:///./node_modules/reactstrap/es/Navbar.js","webpack:///./node_modules/reactstrap/es/Nav.js","webpack:///./node_modules/react-use/esm/util.js","webpack:///./node_modules/react-use/esm/useEffectOnce.js","webpack:///./node_modules/react-use/esm/useUnmount.js","webpack:///./node_modules/react-use/esm/useRafState.js","webpack:///./node_modules/react-use/esm/useWindowScroll.js","webpack:///./node_modules/react-use/esm/usePrevious.js","webpack:///./src/components/shared/Navigation/NavigationGroupItem/NavigationGroupItem.js","webpack:///./src/components/shared/Navigation/NavigationGroup/NavigationGroup.js","webpack:///./src/components/shared/Navigation/Sidebar/Sidebar.js","webpack:///./src/components/shared/Navigation/Sidebar/SidebarGroupItem/SidebarGroupItem.js","webpack:///./src/components/shared/Navigation/Sidebar/SidebarGroup/SidebarGroup.js","webpack:///./src/components/shared/Navigation/Navigation.js","webpack:///./src/components/shared/Footer/FooterGroupItem/FooterGroupItem.js","webpack:///./src/components/shared/Footer/FooterGroup/FooterGroup.js","webpack:///./src/components/shared/FooterSection/FooterSection.js","webpack:///./src/layouts/MainLayout/MainLayout.js","webpack:///./node_modules/fast-deep-equal/react.js","webpack:///./node_modules/ramda/es/internal/_xmap.js","webpack:///./node_modules/ramda/es/map.js","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.min.js"],"names":["_curry2","key","val","obj","a","b","p","list","map","prop","after","fns","curryN","reduce","args","arguments","context","this","apply","_map","fn","target","TypeError","output","Object","idx","length","source","nextKey","_has","_curry1","concat","shuffle","curry","position","len","xs","result","Math","randomizingFn","shuffler","getEdgesForQuery","console","x","query","path","getEdges","getMarkdownEdges","getImageEdges","getEdgeFrontmatter","getEdgeInternal","getEdgeFluid","getEdgeHtml","compose","objOf","getQueryData","converge","getImageQueryFluidData","getSectionDataFor","find","propEq","_curry3","f3","c","_b","_c","_a","module","exports","name","_pipe","f","g","call","pipe","Error","_arity","tail","_isString","split","reverse","join","Array","prototype","slice","Number","n","pathsArray","paths","_isInteger","nth","pathAr","XTake","xf","i","_xfBase","init","input","ret","_reduced","_dispatchable","Infinity","XFind","found","offset","charAt","fromIndex","toIndex","_checkForMethod","methodname","head","names","index","hasOwnProperty","XAny","any","prefix","equals","take","props","_classNames","expand","className","cssModule","light","dark","fixed","sticky","color","Tag","tag","attributes","classes","getExpandClass","createElement","defaultProps","tabs","pills","vertical","horizontal","justified","fill","navbar","card","getVerticalClass","isClient","window","effect","fnRef","current","initialState","frame","state","setState","setRafState","value","cancelAnimationFrame","requestAnimationFrame","pageXOffset","y","pageYOffset","handler","addEventListener","capture","passive","removeEventListener","ref","label","description","url","to","rel","items","children","isOpen","handleClose","src","height","alt","onClick","style","cursor","LinkNavigation","onNavigateUrl","DepthNavigation","level","onNavigateLevel","data","useStaticQuery","ui","uiNavigationData","sidebarGroups","navigationGroups","omit","jobsNavigation","scrollY","useWindowScroll","prevY","usePrevious","isExpanded","currentPath","isIndicatorVisible","flip","React","isSidebarOpen","setIsSidebarOpen","sidebarLevel","setSidebarLevel","enableBodyScroll","setTimeout","activeClassName","size","width","disableBodyScroll","classnames","active","footerNavigation","footerNavigationData","footerDetails","details","impressum","dataPrivacy","href","email","sm","lg","header","md","location","equal","constructor","keys","isArray","RegExp","flags","valueOf","toString","$$typeof","XMap","functor","_reduce","acc","e","t","o","from","defineProperty","l","d","u","some","options","allowTouchMove","event","touches","preventDefault","m","document","body","paddingRight","overflow","navigator","platform","test","maxTouchPoints","s","v","r","error","targetElement","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","stopPropagation","reserveScrollBarGap","innerWidth","documentElement","clientWidth","clearAllBodyScrollLocks","forEach","filter"],"mappings":"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","file":"7e1e0ce3ea378abe1b2205fe06cca1fe069ea79d-a1ae2f4063e3c0386597.js","sourcesContent":["import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf = /*#__PURE__*/_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge = /*#__PURE__*/_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll = /*#__PURE__*/_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import {\r\n compose,\r\n converge,\r\n curry,\r\n find,\r\n map,\r\n mergeAll,\r\n objOf,\r\n path,\r\n propEq,\r\n} from \"ramda\"\r\n\r\n/**\r\n * Takes a list of values and runs it through a shuffling function, returning the shuffled copy\r\n * @param {f(Array)} randomizingFn - shuffling function\r\n * @param {Array} xs - values to be shuffled\r\n */\r\nconst shuffler = curry((randomizingFn, xs) => {\r\n var idx = -1\r\n var len = xs.length\r\n var position\r\n var result = []\r\n while (++idx < len) {\r\n position = Math.floor((idx + 1) * randomizingFn())\r\n result[idx] = result[position]\r\n result[position] = xs[idx]\r\n }\r\n return result\r\n})\r\n\r\n/**\r\n * @param {Array} _ - a specialized version of `shuffler`, with a shuffling function baked in\r\n */\r\nexport const shuffle = shuffler(Math.random)\r\n\r\n/**\r\n * Logs intermediary data to the console. Specially useful when logging a step from a composition chain\r\n * e.g.:\r\n * given >>> F :: a => b and G :: b => c\r\n * and >>> compose(G, log, F)(value)\r\n *\r\n * the composition chain would log the result immediately after F and pass it along directly after to G without interference\r\n * @param {string} label - a prefix for the console log message\r\n * @param {array} x - value to be outputted to the console\r\n */\r\nexport const log = curry((label, x) => {\r\n console.log(label, x)\r\n return x\r\n})\r\n\r\n/**\r\n * Stops the debugger on its point of execution. Specially useful when debugging a step from a composition chain\r\n * e.g.:\r\n * given >>> F :: a => b and G :: b => c\r\n * and >>> compose(G, debug, F)(value)\r\n *\r\n * the composition chain would bring the debugger up immediately after F and then proceed execution to G without interference\r\n * @param {array} x\r\n */\r\nexport const debug = x => {\r\n debugger\r\n return x\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} id of the markdown file section\r\n * @param {Object} data coming from graphql query\r\n * @returns {Object} the node data belonging to the selected section id\r\n */\r\nexport const contentFilterBySection = (id, data) =>\r\n data.find(element => element.node.frontmatter.section === id).node\r\n\r\n/**\r\n *\r\n * @param {string} id of the markdown file section\r\n * @param {Object} data coming from graphql query\r\n * @returns {Array} the filtered nodes belonging to the selected section id\r\n */\r\nexport const contentFilter = (id, data) =>\r\n data.filter(element => element.node.frontmatter.section === id)\r\n\r\n/**\r\n * Selects edges from a GraphQL Query Result\r\n * @param {Object} query - GraphQL query result\r\n * @returns {Array} query - matched query edges\r\n */\r\nexport const getEdgesForQuery = query => path([query, \"edges\"])\r\n\r\n/**\r\n * Selects edges from a specific GraphQL query key\r\n * @param {Object} key - GraphQL query key\r\n * @returns {Array} query - GraphQL Query Result\r\n */\r\nconst getEdges = key => path([key, \"edges\"])\r\n\r\n/**\r\n * A specialized version of `getEdges` that selects data coming from Markdown\r\n * @param {Object} _ - GraphQL Query Result\r\n * @returns {Object} a selection of the matching Markdown data\r\n */\r\nexport const getMarkdownEdges = getEdges(\"allMarkdownRemark\")\r\n\r\n/**\r\n * A specialized version of `getEdges` that selects data coming from Images\r\n * @param {Object} _ - GraphQL Query Result\r\n * @returns {Object} a selection of the matching Image data\r\n */\r\nexport const getImageEdges = getEdges(\"allImageSharp\")\r\n\r\nconst getEdgeFrontmatter = path([\"node\", \"frontmatter\"])\r\nconst getEdgeInternal = path([\"node\", \"internal\"])\r\nconst getEdgeFluid = path([\"node\", \"fluid\"])\r\nconst getEdgeHtml = compose(objOf(\"html\"), path([\"node\", \"html\"]))\r\n\r\n/**\r\n * Selects data pertaining to a specific list of edges\r\n * @param {Array} _ - list of edges to be selected upon\r\n * @returns {Object} the data that matches the selection criteria\r\n */\r\nexport const getQueryData = map(\r\n converge(compose(mergeAll, Array), [\r\n getEdgeFrontmatter,\r\n getEdgeHtml,\r\n getEdgeInternal,\r\n ])\r\n)\r\n\r\n/**\r\n * Selects a list of responsive images returned from a GraphQL Query\r\n * @param {Object} _ - GraphQL Query Edges\r\n * @returns {Array} a list of Fluid Image objects\r\n */\r\nexport const getImageQueryFluidData = map(\r\n converge(compose(mergeAll, Array), [getEdgeFluid])\r\n)\r\n\r\n/**\r\n * Selects the lower level of data. i.e. the Markdown file keys\r\n * @param {string} section - value of the section key in the Markdown file\r\n * @param {Array} content - list of Markdown content\r\n */\r\nexport const getSectionDataFor = curry((section, content) =>\r\n find(propEq(\"section\", section), content)\r\n)\r\n","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry = /*#__PURE__*/_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIgMzI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiMwMjAyMDM7fQ0KPC9zdHlsZT4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zMS4yLDI3LjJMMjAsMTZMMzEuMiw0LjhjMS4xLTEuMSwxLjEtMi45LDAtNGMtMS4xLTEuMS0yLjktMS4xLTQsMEwxNiwxMkw0LjgsMC44Yy0xLjEtMS4xLTIuOS0xLjEtNCwwDQoJcy0xLjEsMi45LDAsNEwxMiwxNkwwLjgsMjcuMmMtMS4xLDEuMS0xLjEsMi45LDAsNGMxLjEsMS4xLDIuOSwxLjEsNCwwTDE2LDIwbDExLjIsMTEuMmMxLjEsMS4xLDIuOSwxLjEsNCwwDQoJQzMyLjMsMzAuMSwzMi4zLDI4LjMsMzEuMiwyNy4yeiIvPg0KPC9zdmc+DQo=\"","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq = /*#__PURE__*/_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\nexport default propEq;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths = /*#__PURE__*/_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path = /*#__PURE__*/_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake = /*#__PURE__*/function () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake = /*#__PURE__*/_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyMSAxNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPHBhdGggZD0iTTE5LjIyIDIuMDYxSDEuMDRhLjkxMS45MTEgMCAwIDEtLjkxLS45MTNjMC0uNTA0LjQwNy0uOTEzLjkxLS45MTNIMTkuMjJjLjUwMiAwIC45MS40MS45MS45MTNhLjkxMS45MTEgMCAwIDEtLjkxLjkxM3pNMS4wNCA2LjMyMkgxOS4yMmMuNTAyIDAgLjkxLjQwOS45MS45MTNhLjkxMS45MTEgMCAwIDEtLjkxLjkxM0gxLjA0YS45MTEuOTExIDAgMCAxLS45MS0uOTEzYzAtLjUwNC40MDctLjkxMy45MS0uOTEzem0wIDYuMDg3SDE5LjIyYy41MDIgMCAuOTEuNDA5LjkxLjkxM2EuOTExLjkxMSAwIDAgMS0uOTEuOTEzSDEuMDRhLjkxMS45MTEgMCAwIDEtLjkxLS45MTNjMC0uNTA0LjQwNy0uOTEzLjkxLS45MTN6IiBmaWxsPSIjM0M0MTQ1IiBmaWxsUnVsZT0iZXZlbm9kZCIgLz4NCjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQoJPHBhdGggZmlsbD0iIzFlYTBiMyIgZD0iTTEzLDE2IiAvPg0KCTxwYXRoIGZpbGw9IiMxZWEwYjMiIGQ9Ik02LDE2bDE1LjIsMTUuMmMxLjEsMS4xLDIuOSwxLjEsNCwwYzEuMS0xLjEsMS4xLTIuOSwwLTRMMTQsMTZMMjUuMiw0LjhjMS4xLTEuMSwxLjEtMi45LDAtNA0KCWMtMS4xLTEuMS0yLjktMS4xLTQsMEw2LDE2eiIgLz4NCjwvc3ZnPg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMzQuODYgNTguMjUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZjdiYzAzO30uY2xzLTJ7ZmlsbDojMWM5ZmIyO30uY2xzLTN7ZmlsbDojZWE3MTlhO30uY2xzLTR7ZmlsbDojN2VjYmQ4O30uY2xzLTV7ZmlsbDojNWRiNzdkO30uY2xzLTZ7ZmlsbDojNzA2ZjZmO308L3N0eWxlPjwvZGVmcz48dGl0bGU+RWxlbWVudCA2PC90aXRsZT48ZyBpZD0iRWJlbmVfMiIgZGF0YS1uYW1lPSJFYmVuZSAyIj48ZyBpZD0iRWJlbmVfMS0yIiBkYXRhLW5hbWU9IkViZW5lIDEiPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMjMuMiIgY3k9IjM3LjM0IiByPSI0LjUiLz48Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9IjExLjE3IiBjeT0iMzcuMzQiIHI9IjQuNSIvPjxyZWN0IGNsYXNzPSJjbHMtMyIgeD0iMzAuNzMiIHk9IjMyLjgzIiB3aWR0aD0iNjQuMTgiIGhlaWdodD0iOSIgcng9IjQuNSIvPjxjaXJjbGUgY2xhc3M9ImNscy0zIiBjeD0iMTQuMTciIGN5PSI0LjUiIHI9IjQuNSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMjEuNyIgd2lkdGg9IjY0LjIxIiBoZWlnaHQ9IjkiIHJ4PSI0LjUiLz48cmVjdCBjbGFzcz0iY2xzLTQiIHg9Ijg4LjkzIiB3aWR0aD0iMzUuODEiIGhlaWdodD0iOSIgcng9IjQuNSIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgeD0iMzYuMiIgeT0iNDkuMjUiIHdpZHRoPSI3My4yMSIgaGVpZ2h0PSI5IiByeD0iNC41Ii8+PHJlY3QgY2xhc3M9ImNscy01IiB5PSI0OS4yNSIgd2lkdGg9IjMzLjE4IiBoZWlnaHQ9IjkiIHJ4PSI0LjUiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjEwMi41NiIgeT0iMTYuNDIiIHdpZHRoPSIyMi4xOCIgaGVpZ2h0PSI5IiByeD0iNC41Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTUiIGN4PSI4Mi45NCIgY3k9IjIwLjkyIiByPSI0LjUiLz48Y2lyY2xlIGNsYXNzPSJjbHMtMiIgY3g9Ijk1LjAzIiBjeT0iMjAuOTIiIHI9IjQuNSIvPjxyZWN0IGNsYXNzPSJjbHMtNCIgeD0iMC4wNSIgeT0iMTYuNDIiIHdpZHRoPSI3NC4zNiIgaGVpZ2h0PSI5IiByeD0iNC41Ii8+PGcgaWQ9IkRlc2lnbiI+PGcgaWQ9IkxlaXN0dW5nZW4iPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTE5MS4zLDE0Ljg2Yy42LDIuNDEsMi42NSw0LjkzLDQuNjQsNy4zN2wuMTcuMjEsMTIuNjgsMTUuMzNjLjU1LTEuMDUsMS4wNi0yLjIsMS41NS0zLjMxLDEuNTEtMy4zOSwyLjkzLTYuNTksNS4yMS02LjU5QTQuNDksNC40OSwwLDAsMSwyMjAsMzIuMjFjMCwzLTIuODYsOC40Ni01LjU2LDEyLjU2bDUsNi40MmE0LDQsMCwwLDEsMSwyLjcyLDQuMTIsNC4xMiwwLDAsMS00LDQuMjVjLTIuNjQsMC00LjcxLTIuODUtNy4xLTYuMTZsLS4zOC0uNTFjLTMsMy03LjY4LDYuNzUtMTQuNzksNi43NS05LjUzLDAtMTYuNDUtNi42Ny0xNi40NS0xNS44NiwwLTguNjUsNS43OC0xMy42NywxMC4yNS0xNi43Mi0zLjYtNC41Mi01LjI4LTguNDgtNS4yOC0xMi40MywwLTguNTksNy0xMy4yMiwxMy42Ny0xMy4yMiw2LjI1LDAsMTMuMjQsNC43NiwxMy4yNCwxMS4xMywwLDIuNzQtMi43Nyw0LjE2LTQuMzMsNC4xOGgwYy0xLjg2LDAtMi43NS0xLjYzLTMuNjItMy4yLS4yOS0uNTMtLjYtMS4wOC0uOTQtMS41OGwwLS4wNmE1LjI0LDUuMjQsMCwwLDAtOS40NiwzLjEyLDUuMzIsNS4zMiwwLDAsMCwuMTQsMS4yWk0xOTMsMzIuMDVjLTMuNjYsMi4zNS03LDUuMTctNyw5LjY4LDAsNC4xNCwyLjY3LDguMzIsNy43OCw4LjMyLDMuNTQsMCw2LjY3LTEuNjIsOS44Mi01LjEyWiIvPjwvZz48L2c+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNMTc1LjY0LDBIMTM4LjIxYTQuNDksNC40OSwwLDAsMCwwLDloMTcuNjhWNTRhNC4yMiw0LjIyLDAsMSwwLDguNDQsMFY5aDExLjMxYTQuNDksNC40OSwwLDAsMCwwLTlaIi8+PHJlY3QgY2xhc3M9ImNscy02IiB4PSIxMzMuNzMiIHk9IjE2LjQ0IiB3aWR0aD0iOC40MyIgaGVpZ2h0PSI0MS43NyIgcng9IjQuMjIiLz48cmVjdCBjbGFzcz0iY2xzLTYiIHg9IjIyNi40MyIgeT0iMC4wMSIgd2lkdGg9IjguNDMiIGhlaWdodD0iNTguMiIgcng9IjQuMjIiLz48L2c+PC9nPjwvc3ZnPg==\"","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\n\nexport default tail;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind = /*#__PURE__*/function () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth = /*#__PURE__*/_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce = /*#__PURE__*/_curry3(_reduce);\n\nexport default reduce;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjUiIGhlaWdodD0iNTkiIHZpZXdCb3g9IjAgMCAxMjUgNTkiPg0KICA8ZyBmaWxsPSJub25lIj4NCiAgICA8Y2lyY2xlIGN4PSIyMy4yIiBjeT0iMzcuMzQiIHI9IjQuNSIgZmlsbD0iI0Y3QkMwMyIvPg0KICAgIDxjaXJjbGUgY3g9IjExLjE3IiBjeT0iMzcuMzQiIHI9IjQuNSIgZmlsbD0iIzFDOUZCMiIvPg0KICAgIDxyZWN0IHdpZHRoPSI2NC4xOCIgaGVpZ2h0PSI5IiB4PSIzMC43MyIgeT0iMzIuODMiIGZpbGw9IiNFQTcxOUEiIHJ4PSI0LjUiLz4NCiAgICA8Y2lyY2xlIGN4PSIxNC4xNyIgY3k9IjQuNSIgcj0iNC41IiBmaWxsPSIjRUE3MTlBIi8+DQogICAgPHJlY3Qgd2lkdGg9IjY0LjIxIiBoZWlnaHQ9IjkiIHg9IjIxLjciIGZpbGw9IiMxQzlGQjIiIHJ4PSI0LjUiLz4NCiAgICA8cmVjdCB3aWR0aD0iMzUuODEiIGhlaWdodD0iOSIgeD0iODguOTMiIGZpbGw9IiM3RUNCRDgiIHJ4PSI0LjUiLz4NCiAgICA8cmVjdCB3aWR0aD0iNzMuMjEiIGhlaWdodD0iOSIgeD0iMzYuMiIgeT0iNDkuMjUiIGZpbGw9IiMxQzlGQjIiIHJ4PSI0LjUiLz4NCiAgICA8cmVjdCB3aWR0aD0iMzMuMTgiIGhlaWdodD0iOSIgeT0iNDkuMjUiIGZpbGw9IiM1REI3N0QiIHJ4PSI0LjUiLz4NCiAgICA8cmVjdCB3aWR0aD0iMjIuMTgiIGhlaWdodD0iOSIgeD0iMTAyLjU2IiB5PSIxNi40MiIgZmlsbD0iI0Y3QkMwMyIgcng9IjQuNSIvPg0KICAgIDxjaXJjbGUgY3g9IjgyLjk0IiBjeT0iMjAuOTIiIHI9IjQuNSIgZmlsbD0iIzVEQjc3RCIvPg0KICAgIDxjaXJjbGUgY3g9Ijk1LjAzIiBjeT0iMjAuOTIiIHI9IjQuNSIgZmlsbD0iIzFDOUZCMiIvPg0KICAgIDxyZWN0IHdpZHRoPSI3NC4zNiIgaGVpZ2h0PSI5IiB4PSIuMDUiIHk9IjE2LjQyIiBmaWxsPSIjN0VDQkQ4IiByeD0iNC41Ii8+DQogIDwvZz4NCjwvc3ZnPg0K\"","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head = /*#__PURE__*/nth(0);\nexport default head;","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAzMiAzMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIgMzI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiMwMjAyMDM7fQ0KPC9zdHlsZT4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMCwxNiIvPg0KPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjgsMC44Yy0xLjEtMS4xLTIuOS0xLjEtNCwwcy0xLjEsMi45LDAsNEwxOSwxNkw3LjgsMjcuMmMtMS4xLDEuMS0xLjEsMi45LDAsNGMxLjEsMS4xLDIuOSwxLjEsNCwwTDI3LDE2DQoJTDExLjgsMC44eiIvPg0KPC9zdmc+DQo=\"","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init = /*#__PURE__*/slice(0, -1);\nexport default init;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny = /*#__PURE__*/function () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany = /*#__PURE__*/_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\nexport default _xany;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip = /*#__PURE__*/_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport take from \"./take.js\";\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith = /*#__PURE__*/_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\n\nexport default startsWith;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'nav',\n expand: false\n};\n\nvar getExpandClass = function getExpandClass(expand) {\n if (expand === false) {\n return false;\n } else if (expand === true || expand === 'xs') {\n return 'navbar-expand';\n }\n\n return \"navbar-expand-\" + expand;\n};\n\nvar Navbar = function Navbar(props) {\n var _classNames;\n\n var expand = props.expand,\n className = props.className,\n cssModule = props.cssModule,\n light = props.light,\n dark = props.dark,\n fixed = props.fixed,\n sticky = props.sticky,\n color = props.color,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"expand\", \"className\", \"cssModule\", \"light\", \"dark\", \"fixed\", \"sticky\", \"color\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'navbar', getExpandClass(expand), (_classNames = {\n 'navbar-light': light,\n 'navbar-dark': dark\n }, _classNames[\"bg-\" + color] = color, _classNames[\"fixed-\" + fixed] = fixed, _classNames[\"sticky-\" + sticky] = sticky, _classNames)), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nNavbar.defaultProps = defaultProps;\nexport default Navbar;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'ul',\n vertical: false\n};\n\nvar getVerticalClass = function getVerticalClass(vertical) {\n if (vertical === false) {\n return false;\n } else if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n\n return \"flex-\" + vertical + \"-column\";\n};\n\nvar Nav = function Nav(props) {\n var className = props.className,\n cssModule = props.cssModule,\n tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n horizontal = props.horizontal,\n justified = props.justified,\n fill = props.fill,\n navbar = props.navbar,\n card = props.card,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tabs\", \"pills\", \"vertical\", \"horizontal\", \"justified\", \"fill\", \"navbar\", \"card\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, navbar ? 'navbar-nav' : 'nav', horizontal ? \"justify-content-\" + horizontal : false, getVerticalClass(vertical), {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nNav.defaultProps = defaultProps;\nexport default Nav;","export var isClient = typeof window === 'object';\nexport var on = function on(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.addEventListener.apply(obj, args);\n};\nexport var off = function off(obj) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return obj.removeEventListener.apply(obj, args);\n};\nexport var isDeepEqual = require('fast-deep-equal/react');","import { useEffect } from 'react';\n\nvar useEffectOnce = function useEffectOnce(effect) {\n useEffect(effect, []);\n};\n\nexport default useEffectOnce;","import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\n\nvar useUnmount = function useUnmount(fn) {\n var fnRef = useRef(fn); // update the ref each render so if it change the newest callback will be invoked\n\n fnRef.current = fn;\n useEffectOnce(function () {\n return function () {\n return fnRef.current();\n };\n });\n};\n\nexport default useUnmount;","import { useRef, useState, useCallback } from 'react';\nimport useUnmount from './useUnmount';\n\nvar useRafState = function useRafState(initialState) {\n var frame = useRef(0);\n\n var _a = useState(initialState),\n state = _a[0],\n setState = _a[1];\n\n var setRafState = useCallback(function (value) {\n cancelAnimationFrame(frame.current);\n frame.current = requestAnimationFrame(function () {\n setState(value);\n });\n }, []);\n useUnmount(function () {\n cancelAnimationFrame(frame.current);\n });\n return [state, setRafState];\n};\n\nexport default useRafState;","/* eslint-disable */\nimport { useEffect } from 'react';\nimport { isClient } from './util';\nimport useRafState from './useRafState';\n\nvar useWindowScroll = function useWindowScroll() {\n var _a = useRafState({\n x: isClient ? window.pageXOffset : 0,\n y: isClient ? window.pageYOffset : 0\n }),\n state = _a[0],\n setState = _a[1];\n\n useEffect(function () {\n var handler = function handler() {\n setState({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n };\n\n window.addEventListener('scroll', handler, {\n capture: false,\n passive: true\n });\n return function () {\n window.removeEventListener('scroll', handler);\n };\n }, []);\n return state;\n};\n\nexport default useWindowScroll;","import { useEffect, useRef } from 'react';\n\nvar usePrevious = function usePrevious(state) {\n var ref = useRef();\n useEffect(function () {\n ref.current = state;\n });\n return ref.current;\n};\n\nexport default usePrevious;","import \"./NavigationGroupItem.scss\"\r\nimport React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\n\r\nconst NavigationGroupItem = ({ label, description, position, url }) => (\r\n
  • \r\n {(url.indexOf('://') > -1)\r\n ? \r\n
    {label}
    \r\n
    \r\n {description.split(/\\n/g).map((line, key) => (\r\n
    {line}
    \r\n ))}\r\n
    \r\n \r\n : \r\n
    {label}
    \r\n
    \r\n {description.split(/\\n/g).map((line, key) => (\r\n
    {line}
    \r\n ))}\r\n
    \r\n \r\n }\r\n\r\n
  • \r\n)\r\n\r\nexport default NavigationGroupItem\r\n","import React from \"react\"\r\nimport NavigationGroupItem from \"@components/shared/Navigation/NavigationGroupItem/NavigationGroupItem\"\r\n\r\nconst NavigationGroup = ({ items }) => (\r\n
    \r\n
      \r\n {items.map((item, index) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n)\r\n\r\nexport default NavigationGroup\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions */\r\nimport \"./Sidebar.scss\"\r\nimport React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\n\r\nimport imageLogoSmall from \"@assets/logo/ITI_Logo_Small.svg\"\r\nimport iconNavigationClose from \"@assets/icons/ic_close.svg\"\r\n\r\nconst Sidebar = ({ children, isOpen, handleClose }) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {children}
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\r\nimport \"./SidebarGroupItem.scss\"\r\nimport React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\nimport iconArrowRight from \"@assets/icons/ic_arrow-right.svg\"\r\n\r\nconst LinkNavigation = ({ label, description, url, onNavigateUrl }) => (\r\n \r\n
    \r\n
    \r\n
    \r\n
    {label}
    \r\n
    \r\n
    \r\n {description}\r\n
    \r\n
    \r\n
    \r\n \r\n)\r\n\r\nconst DepthNavigation = ({ label, level, description, onNavigateLevel }) => (\r\n onNavigateLevel(level)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    {label}
    \r\n
    \r\n
    \r\n {description}\r\n
    \r\n
    \r\n
    \r\n {label}\r\n
    \r\n
    \r\n \r\n)\r\n\r\nconst SidebarGroupItem = props =>\r\n props.url ? : \r\n\r\nexport default SidebarGroupItem\r\n","import React from \"react\"\r\nimport SidebarGroupItem from \"@components/shared/Navigation/Sidebar/SidebarGroupItem/SidebarGroupItem\"\r\n\r\nconst SidebarGroup = ({ level, items, onNavigateLevel, onNavigateUrl }) => (\r\n
    \r\n {items.map((item, index) => (\r\n \r\n ))}\r\n
    \r\n)\r\n\r\nexport default SidebarGroup\r\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions */\r\nimport \"./Navigation.scss\"\r\nimport imageLogo from \"@assets/logo/ITI_Logo.svg\"\r\nimport imageLogoSmall from \"@assets/logo/ITI_Logo_Small.svg\"\r\nimport iconNavigationOpen from \"@assets/icons/ic_open.svg\"\r\nimport iconArrowLeft from \"@assets/icons/ic_arrow-left.svg\"\r\nimport React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\nimport classnames from \"classnames\"\r\nimport {\r\n compose,\r\n any,\r\n equals,\r\n head,\r\n flip,\r\n init,\r\n omit,\r\n map,\r\n path,\r\n prop,\r\n startsWith,\r\n tail,\r\n} from \"ramda\"\r\nimport { Button, Navbar, Nav, Container, Row } from \"reactstrap\"\r\nimport { usePrevious, useWindowScroll } from \"react-use\"\r\nimport NavigationGroup from \"@components/shared/Navigation/NavigationGroup/NavigationGroup\"\r\nimport Sidebar from \"@components/shared/Navigation/Sidebar/Sidebar\"\r\nimport SidebarGroup from \"@components/shared/Navigation/Sidebar/SidebarGroup/SidebarGroup\"\r\nimport { disableBodyScroll, enableBodyScroll } from \"body-scroll-lock\"\r\nimport { useStaticQuery, graphql } from \"gatsby\"\r\nimport { getEdgesForQuery, getQueryData, getSectionDataFor } from \"@utils/utils\"\r\n\r\nconst Navigation = props => {\r\n const data = useStaticQuery(graphql`\r\n query uiNavigation {\r\n ui: allMarkdownRemark(\r\n filter: {\r\n frontmatter: {\r\n path: { eq: \"/ui\" }\r\n section: { eq: \"ui-section-navigation\" }\r\n published: { eq: true }\r\n lang: { eq: \"de\" }\r\n }\r\n }\r\n ) {\r\n edges {\r\n node {\r\n frontmatter {\r\n section\r\n sidebar {\r\n description\r\n label\r\n level\r\n }\r\n services {\r\n description\r\n label\r\n url\r\n }\r\n technologies {\r\n description\r\n label\r\n url\r\n }\r\n about {\r\n description\r\n label\r\n url\r\n }\r\n jobs {\r\n description\r\n label\r\n url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n `)\r\n\r\n const ui = compose(getQueryData, getEdgesForQuery(\"ui\"))(data)\r\n const uiNavigationData = getSectionDataFor(\"ui-section-navigation\", ui)\r\n\r\n const sidebarGroups = compose(init, prop(\"sidebar\"))(uiNavigationData)\r\n const navigationGroups = omit(\r\n [\"jobs\", \"section\", \"sidebar\"],\r\n uiNavigationData\r\n )\r\n const jobsNavigation = compose(head, prop(\"jobs\"))(uiNavigationData)\r\n\r\n const { y: scrollY } = useWindowScroll()\r\n const scrollThreshold = 25 // Change this if you'd like to have a minimun tolerance\r\n const prevY = usePrevious(scrollY)\r\n const isExpanded = scrollY < scrollThreshold || scrollY < prevY || !scrollY\r\n\r\n const indicatedPaths = [\"/about\", \"/services\", \"/technologies\"]\r\n const currentPath = path([\"location\", \"pathname\"], props)\r\n\r\n const isIndicatorVisible = compose(\r\n any(equals(true)),\r\n map(flip(startsWith)(currentPath))\r\n )(indicatedPaths)\r\n\r\n const [isSidebarOpen, setIsSidebarOpen] = React.useState(false)\r\n const [sidebarLevel, setSidebarLevel] = React.useState(null)\r\n\r\n const handleClose = () => {\r\n setIsSidebarOpen(false)\r\n enableBodyScroll()\r\n }\r\n\r\n const handleCloseOnTimeout = () => {\r\n setTimeout(handleClose, 240)\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {!sidebarLevel ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n
    \r\n setSidebarLevel(null)}\r\n >\r\n \r\n Zurück\r\n \r\n
    \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n {\r\n setIsSidebarOpen(true)\r\n disableBodyScroll()\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Navigation\r\n","import React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\n\r\nconst FooterGroupItem = ({ label, url }) => (\r\n
  • \r\n {label}\r\n
  • \r\n)\r\n\r\nexport default FooterGroupItem\r\n","import React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\nimport FooterGroupItem from \"@components/shared/Footer/FooterGroupItem/FooterGroupItem\"\r\n\r\nconst FooterGroup = ({ header: { label, url }, items }) => (\r\n <>\r\n {(url.indexOf('://') > -1)\r\n ? \r\n {label}\r\n \r\n : \r\n {label}\r\n \r\n }\r\n
      \r\n {items.map((item, index) => (\r\n \r\n ))}\r\n
    \r\n \r\n)\r\n\r\nexport default FooterGroup\r\n","import \"./FooterSection.scss\"\r\nimport React from \"react\"\r\nimport Link from \"@components/shared/Link/Link\"\r\nimport { Container, Row, Col } from \"reactstrap\"\r\nimport imageLogo from \"@assets/logo/ITI_Logo.svg\"\r\nimport { compose, head, omit, tail } from \"ramda\"\r\nimport { useStaticQuery, graphql } from \"gatsby\"\r\nimport { getEdgesForQuery, getQueryData, getSectionDataFor } from \"@utils/utils\"\r\nimport FooterGroup from \"@components/shared/Footer/FooterGroup/FooterGroup\"\r\n\r\nconst FooterSection = () => {\r\n const data = useStaticQuery(graphql`\r\n query footer {\r\n navigation: allMarkdownRemark(\r\n filter: {\r\n frontmatter: {\r\n path: { eq: \"/ui\" }\r\n section: { eq: \"ui-section-navigation\" }\r\n published: { eq: true }\r\n lang: { eq: \"de\" }\r\n }\r\n }\r\n ) {\r\n edges {\r\n node {\r\n frontmatter {\r\n section\r\n services {\r\n description\r\n label\r\n url\r\n }\r\n technologies {\r\n description\r\n label\r\n url\r\n }\r\n about {\r\n description\r\n label\r\n url\r\n }\r\n jobs {\r\n description\r\n label\r\n url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n details: allMarkdownRemark(\r\n filter: {\r\n frontmatter: {\r\n path: { eq: \"/ui\" }\r\n section: { eq: \"ui-section-footer\" }\r\n published: { eq: true }\r\n lang: { eq: \"de\" }\r\n }\r\n }\r\n ) {\r\n edges {\r\n node {\r\n frontmatter {\r\n section\r\n details {\r\n address\r\n email\r\n legalName\r\n telephone\r\n }\r\n impressum {\r\n label\r\n url\r\n }\r\n dataPrivacy {\r\n label\r\n url\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n `)\r\n\r\n const footerNavigation = compose(\r\n getQueryData,\r\n getEdgesForQuery(\"navigation\")\r\n )(data)\r\n const footerNavigationData = getSectionDataFor(\r\n \"ui-section-navigation\",\r\n footerNavigation\r\n )\r\n const footerDetails = compose(getQueryData, getEdgesForQuery(\"details\"))(data)\r\n const { details, impressum, dataPrivacy } = getSectionDataFor(\r\n \"ui-section-footer\",\r\n footerDetails\r\n )\r\n\r\n const navigationGroups = omit([\"section\", \"html\"], footerNavigationData)\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    {details.address}

    \r\n

    {details.telephone}

    \r\n {details.email}\r\n
    \r\n
    \r\n
    \r\n \r\n {Object.keys(navigationGroups).map((group, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {details.legalName}\r\n \r\n \r\n
    \r\n \r\n {impressum.label}\r\n \r\n \r\n {dataPrivacy.label}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default FooterSection\r\n","import React from \"react\"\r\nimport { TransitionPortal } from \"gatsby-plugin-transition-link\"\r\nimport { Location } from \"@reach/router\"\r\nimport Navigation from \"@components/shared/Navigation/Navigation\"\r\nimport FooterSection from \"@components/shared/FooterSection/FooterSection\"\r\n\r\nexport default ({ children }) => (\r\n <>\r\n \r\n \r\n {({ location }) => }\r\n \r\n \r\n {children}\r\n \r\n \r\n)\r\n","'use strict'; // do not edit .js files directly - edit src/index.jst\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n } // true if both NaN, false otherwise\n\n\n return a !== a && b !== b;\n};","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","!function (e, t) {\n if (\"function\" == typeof define && define.amd) define([\"exports\"], t);else if (\"undefined\" != typeof exports) t(exports);else {\n var o = {};\n t(o), e.bodyScrollLock = o;\n }\n}(this, function (exports) {\n \"use strict\";\n\n function i(e) {\n if (Array.isArray(e)) {\n for (var t = 0, o = Array(e.length); t < e.length; t++) {\n o[t] = e[t];\n }\n\n return o;\n }\n\n return Array.from(e);\n }\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n var l = !1;\n\n if (\"undefined\" != typeof window) {\n var e = {\n get passive() {\n l = !0;\n }\n\n };\n window.addEventListener(\"testPassive\", null, e), window.removeEventListener(\"testPassive\", null, e);\n }\n\n function d(t) {\n return u.some(function (e) {\n return !(!e.options.allowTouchMove || !e.options.allowTouchMove(t));\n });\n }\n\n function c(e) {\n var t = e || window.event;\n return !!d(t.target) || 1 < t.touches.length || (t.preventDefault && t.preventDefault(), !1);\n }\n\n function o() {\n setTimeout(function () {\n void 0 !== m && (document.body.style.paddingRight = m, m = void 0), void 0 !== f && (document.body.style.overflow = f, f = void 0);\n });\n }\n\n var a = \"undefined\" != typeof window && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || \"MacIntel\" === window.navigator.platform && 1 < window.navigator.maxTouchPoints),\n u = [],\n s = !1,\n v = -1,\n f = void 0,\n m = void 0;\n exports.disableBodyScroll = function (r, e) {\n if (a) {\n if (!r) return void console.error(\"disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.\");\n\n if (r && !u.some(function (e) {\n return e.targetElement === r;\n })) {\n var t = {\n targetElement: r,\n options: e || {}\n };\n u = [].concat(i(u), [t]), r.ontouchstart = function (e) {\n 1 === e.targetTouches.length && (v = e.targetTouches[0].clientY);\n }, r.ontouchmove = function (e) {\n var t, o, n, i;\n 1 === e.targetTouches.length && (o = r, i = (t = e).targetTouches[0].clientY - v, d(t.target) || (o && 0 === o.scrollTop && 0 < i || (n = o) && n.scrollHeight - n.scrollTop <= n.clientHeight && i < 0 ? c(t) : t.stopPropagation()));\n }, s || (document.addEventListener(\"touchmove\", c, l ? {\n passive: !1\n } : void 0), s = !0);\n }\n } else {\n n = e, setTimeout(function () {\n if (void 0 === m) {\n var e = !!n && !0 === n.reserveScrollBarGap,\n t = window.innerWidth - document.documentElement.clientWidth;\n e && 0 < t && (m = document.body.style.paddingRight, document.body.style.paddingRight = t + \"px\");\n }\n\n void 0 === f && (f = document.body.style.overflow, document.body.style.overflow = \"hidden\");\n });\n var o = {\n targetElement: r,\n options: e || {}\n };\n u = [].concat(i(u), [o]);\n }\n\n var n;\n }, exports.clearAllBodyScrollLocks = function () {\n a ? (u.forEach(function (e) {\n e.targetElement.ontouchstart = null, e.targetElement.ontouchmove = null;\n }), s && (document.removeEventListener(\"touchmove\", c, l ? {\n passive: !1\n } : void 0), s = !1), u = [], v = -1) : (o(), u = []);\n }, exports.enableBodyScroll = function (t) {\n if (a) {\n if (!t) return void console.error(\"enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.\");\n t.ontouchstart = null, t.ontouchmove = null, u = u.filter(function (e) {\n return e.targetElement !== t;\n }), s && 0 === u.length && (document.removeEventListener(\"touchmove\", c, l ? {\n passive: !1\n } : void 0), s = !1);\n } else (u = u.filter(function (e) {\n return e.targetElement !== t;\n })).length || o();\n };\n});"],"sourceRoot":""}