-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathcomponent---node-modules-gatsby-theme-mini-src-pages-index-jsx-231a104526c963727113.js.map
1 lines (1 loc) · 33.5 KB
/
component---node-modules-gatsby-theme-mini-src-pages-index-jsx-231a104526c963727113.js.map
1
{"version":3,"file":"component---node-modules-gatsby-theme-mini-src-pages-index-jsx-231a104526c963727113.js","mappings":"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","sources":["webpack://blog/./node_modules/gatsby-theme-mini/src/components/Author/index.jsx","webpack://blog/./node_modules/gatsby-theme-mini/src/components/PageHeader/index.jsx","webpack://blog/./node_modules/react-feather/dist/icons/arrow-right.js","webpack://blog/./node_modules/gatsby-theme-mini/src/components/PostCard/index.jsx","webpack://blog/./node_modules/gatsby-theme-mini/src/components/PostList/index.jsx","webpack://blog/./node_modules/gatsby-theme-mini/src/pages/index.jsx","webpack://blog/./node_modules/lodash/_apply.js","webpack://blog/./node_modules/lodash/_baseRest.js","webpack://blog/./node_modules/lodash/_baseSetToString.js","webpack://blog/./node_modules/lodash/_baseSlice.js","webpack://blog/./node_modules/lodash/_defineProperty.js","webpack://blog/./node_modules/lodash/_isIterateeCall.js","webpack://blog/./node_modules/lodash/_overRest.js","webpack://blog/./node_modules/lodash/_setToString.js","webpack://blog/./node_modules/lodash/_shortOut.js","webpack://blog/./node_modules/lodash/chunk.js","webpack://blog/./node_modules/lodash/compact.js","webpack://blog/./node_modules/lodash/constant.js","webpack://blog/./node_modules/lodash/isArrayLikeObject.js","webpack://blog/./node_modules/lodash/toFinite.js","webpack://blog/./node_modules/lodash/toInteger.js","webpack://blog/./node_modules/lodash/unzip.js","webpack://blog/./node_modules/lodash/zip.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport { useStaticQuery, graphql } from 'gatsby'\n\nexport default function Author(props) {\n const { author } = props\n\n const data = useStaticQuery(graphql`\n query AuthorQuery {\n site {\n siteMetadata {\n authors {\n name\n avatar\n }\n }\n }\n }\n `)\n\n if (!author) {\n return <div></div>\n }\n\n const authors = author.split(',').map((item) => item.trim())\n const avatars = authors.map((item) => {\n const target = data.site.siteMetadata.authors.find(\n (author) => author.name === item\n )\n\n return target ? target.avatar : null\n })\n\n return (\n <div className=\"flex items-center text-sm\">\n {avatars.map((item, index) => (\n <img\n key={item || index}\n className={`shrink-0 block w-8 h-8 rounded-full bg-gray-200 ${index ? '-ml-4': ''}`}\n src={item}\n alt={authors[index]}\n />\n ))}\n <h5 className=\"ml-2 font-bold text-gray-800 dark:text-gray-400\">{author}</h5>\n </div>\n )\n}\n\nAuthor.propTypes = {\n author: PropTypes.string,\n}\n\nAuthor.defaultProps = {\n author: '',\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport default function PageHeader(props) {\n const { title, description, cover, mini } = props\n\n return (\n <div className=\"header relative bg-gray-50 dark:bg-gray-900\">\n {cover ? (\n <div className=\"absolute left-0 top-0 w-full h-full\">\n <img className=\"w-full h-full object-cover\" src={cover} alt={cover} />\n </div>\n ) : null}\n <div\n className={`relative container mx-auto px-2 md:px-10 lg:px-40 text-center text-gray-900 dark:text-white ${\n mini ? 'py-24 pb-10 md:py-32' : 'py-56'\n }`}\n >\n <h1 className={`py-8 ${mini ? 'text-4xl' : 'text-6xl'}`}>{title}</h1>\n <h2 className={`font-normal ${mini ? 'text-xl' : 'text-3xl'}`}>\n {description}\n </h2>\n </div>\n </div>\n )\n}\n\nPageHeader.propTypes = {\n title: PropTypes.string,\n description: PropTypes.string,\n cover: PropTypes.string,\n mini: PropTypes.bool,\n}\n\nPageHeader.defaultProps = {\n title: '',\n description: '',\n cover: '',\n mini: false,\n}\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { forwardRef } from 'react';\nvar ArrowRight = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"12 5 19 12 12 19\"\n }));\n});\nArrowRight.displayName = 'ArrowRight';\nexport default ArrowRight;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { ArrowRight } from 'react-feather'\nimport { Link } from 'gatsby'\n\nimport Author from '../Author'\n\nexport default function PostCard(props) {\n const { data, card, clamp } = props\n\n return (\n <div className={card ? 'bg-gray-50 dark:bg-gray-800 rounded-md' : ''}>\n <Link to={data.fields.permalink}>\n <div className=\"h-52 bg-gray-100 dark:bg-gray-800 rounded-t-md overflow-hidden relative\">\n <img\n className=\"block w-full h-full object-cover rounded-t-md\"\n src={data.frontmatter.cover}\n alt=\"\"\n />\n <div className=\"absolute left-0 top-0 flex items-center justify-center w-full h-full rounded-t-md cursor-pointer opacity-0 hover:opacity-100 bg-gradient-to-r from-indigo-600/80 to-blue-600/80 hover:backdrop-blur transition-all\">\n <div className=\"flex items-center text-white\">\n <span className=\"mr-2\">立即阅读</span>\n <span>\n <ArrowRight />\n </span>\n </div>\n </div>\n </div>\n <div className={`${card ? 'px-6' : 'px-2'} py-4`}>\n <h4 className=\"mb-3 py-1 text-xl truncate dark:text-gray-100\">\n {data.frontmatter.title}\n </h4>\n <p\n className={`${\n clamp ? 'h-10 line-clamp-2' : ''\n } mt-2 mb-3 text-sm text-gray-500`}\n >\n {data.excerpt}\n </p>\n <div className=\"flex items-center justify-between\">\n <Author author={data.frontmatter.author} />\n <p className=\"text-sm text-gray-400\">{data.frontmatter.date}</p>\n </div>\n </div>\n </Link>\n </div>\n )\n}\n\nPostCard.propTypes = {\n data: PropTypes.object.isRequired,\n clamp: PropTypes.bool,\n card: PropTypes.bool,\n}\n\nPostCard.defaultProps = {\n card: true,\n clamp: false,\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport _ from 'lodash'\n\nimport PostCard from '../PostCard'\n\nexport default function PostList(props) {\n const { posts } = props\n const chunks = _.chunk(posts, 3)\n const columns = _.map(_.zip(...chunks), (item) => _.compact(item))\n\n return (\n <div className=\"flex flex-wrap\">\n {columns.map((column, index) => (\n <div\n className=\"flex flex-col w-full md:w-1/2 lg:w-1/3 px-3 md:px-4 space-y-6 md:space-y-8\"\n key={index}\n >\n {column.map((item) => (\n <PostCard key={item.id} data={item} />\n ))}\n </div>\n ))}\n </div>\n )\n}\n\nPostList.propTypes = {\n posts: PropTypes.array,\n}\n\nPostList.defaultProps = {\n posts: [],\n}\n","import React from 'react'\nimport { graphql, Link } from 'gatsby'\nimport _ from 'lodash'\n\nimport Layout from '../components/Layout'\nimport PageHeader from '../components/PageHeader'\nimport PostList from '../components/PostList'\n\nexport const query = graphql`\n query HomePageQuery {\n site {\n siteMetadata {\n name\n bio\n cover\n\n SEOTitle\n }\n }\n\n allMarkdownRemark(\n sort: { fields: frontmatter___date, order: DESC }\n limit: 9\n ) {\n pageInfo {\n totalCount\n pageCount\n perPage\n hasPreviousPage\n hasNextPage\n currentPage\n }\n\n nodes {\n id\n frontmatter {\n title\n tags\n cover\n date\n }\n excerpt\n fields {\n slug\n permalink\n }\n timeToRead\n }\n }\n }\n`\n\nexport default function HomePage(props) {\n const { data, pageContext } = props\n const { siteMetadata } = data.site\n const { pageInfo } = data.allMarkdownRemark\n const nodes = pageContext.nodes || data.allMarkdownRemark.nodes\n const hasNextPage = pageContext.nodes\n ? pageContext.hasNextPage\n : pageInfo.hasNextPage\n const currentPage = pageContext.nodes\n ? pageContext.currentPage\n : pageInfo.currentPage\n\n return (\n <Layout>\n <PageHeader\n title={siteMetadata.name}\n description={siteMetadata.bio}\n cover={siteMetadata.cover}\n />\n <div className=\"relative pt-20 pb-32 dark:bg-gray-900 bg-opacity-50\">\n <div className=\"container mx-auto px-6 md:px-10 lg:px-12\">\n <PostList posts={nodes} />\n </div>\n {hasNextPage ? (\n <div className=\"-mt-12 flex justify-center\">\n <div className=\"absolute b-0 h-32 pt-96 box-content inset-x-0 bottom-0 flex justify-center bg-gradient-to-t from-white pointer-events-none dark:from-gray-900\"></div>\n <Link\n className=\"py-2 px-6 text-gray-400 hover:text-gray-600 dark:hover:text-gray-200\"\n to={`/pages/${currentPage + 1}#page-${currentPage + 1}`}\n >\n <button className=\"relative bg-gray-900 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 text-sm text-white font-bold h-12 px-8 rounded-lg flex items-center dark:bg-gray-700 dark:hover:bg-gray-600 pointer-events-auto\">\n 查看更多\n </button>\n </Link>\n </div>\n ) : null}\n </div>\n </Layout>\n )\n}\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var arrayFilter = require('./_arrayFilter'),\n arrayMap = require('./_arrayMap'),\n baseProperty = require('./_baseProperty'),\n baseTimes = require('./_baseTimes'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\nfunction unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n}\n\nmodule.exports = unzip;\n","var baseRest = require('./_baseRest'),\n unzip = require('./unzip');\n\n/**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\nvar zip = baseRest(unzip);\n\nmodule.exports = zip;\n"],"names":["Author","props","author","data","useStaticQuery","authors","split","map","item","trim","avatars","target","site","siteMetadata","find","name","avatar","className","index","key","src","alt","defaultProps","PageHeader","title","description","cover","mini","_extends","Object","assign","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ArrowRight","forwardRef","_ref","ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","points","displayName","PostCard","card","clamp","to","fields","permalink","frontmatter","excerpt","date","PostList","posts","chunks","columns","column","id","HomePage","pageContext","pageInfo","allMarkdownRemark","nodes","hasNextPage","currentPage","Layout","bio","module","exports","func","thisArg","args","identity","overRest","setToString","start","constant","defineProperty","baseSetToString","string","array","end","result","Array","getNative","e","eq","isArrayLike","isIndex","isObject","value","object","type","nativeMax","Math","max","transform","undefined","otherArgs","shortOut","nativeNow","Date","now","count","lastCalled","stamp","remaining","baseSlice","isIterateeCall","toInteger","nativeCeil","ceil","guard","resIndex","isObjectLike","toNumber","INFINITY","toFinite","remainder","arrayFilter","arrayMap","baseProperty","baseTimes","isArrayLikeObject","group","zip","baseRest"],"sourceRoot":""}