{"version":3,"sources":["webpack:///./node_modules/lodash/_baseAggregator.js","webpack:///./src/pages/video/collection.tsx","webpack:///./src/components/video-lib/utils/search.server.ts","webpack:///./src/components/video-lib/utils/collectionFilters.ts","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_createAggregator.js","webpack:///./node_modules/lodash/groupBy.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_arrayAggregator.js"],"names":["baseEach","module","exports","collection","setter","iteratee","accumulator","value","key","jsVideoIds","getLabel","label","replace","c","toUpperCase","Collection","q","searchText","filter","useParams","expandedVideos","videos","flatMap","item","Array","isArray","map","id","_objectSpread","toLowerCase","groupedByProductId","useMemo","_groupBy","productFilters","filters","Object","keys","k","i","concat","_toConsumableArray","actionData","setActionData","useState","searchQuery","setSearchQuery","selectedProduct","setSelectedProduct","element","_find","getDefaultFilter","isLoading","setIsLoading","useEffect","tempVideos","_ref","fuse","Fuse","threshold","result","search","_ref2","filtertedVideos","React","createElement","Fragment","style","background","padding","Container","Row","Col","md","sm","PreviousPageLink","url","className","data-testid","_filters$find","find","getTitleFromFilters","onChange","e","target","type","placeholder","name","defaultValue","RadioButton","options","newSelectedProduct","navigate","LoadingSpinner","size","video","includes","_video$thumbnails","_video$thumbnails$hig","VideoStrip","title","duration","thumbnail","thumbnails","high","length","display","VideoWrapper","VideoLayout","getNative","defineProperty","func","arrayAggregator","baseAggregator","baseIteratee","initializer","baseAssignValue","createAggregator","hasOwnProperty","prototype","groupBy","call","push","object","array","index"],"mappings":"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","file":"component---src-pages-video-collection-tsx-405911d840d9332362f6.js","sourcesContent":["var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","import React, { useState, useMemo, useEffect } from 'react'\n\nimport {\n Container,\n Row,\n Col,\n RadioButton,\n LoadingSpinner,\n} from '@paypalcorp/pp-react'\nimport _ from 'lodash'\n\nimport { search } from '../../components/video-lib/utils/search.server'\nimport { getTitleFromFilters } from '../../components/video-lib/utils/collectionFilters'\nimport { navigate } from 'gatsby'\n\nimport { PreviousPageLink } from '../../components/video-lib/components/PreviousPageLink'\nimport { VideoStrip } from '../../components/video-lib/sections/VideoStrip'\nimport VideoLayout from '../../components/video-lib/components/VideoLayout'\nimport { Video } from '../../components/video-lib/utils/common'\nimport videos from '../../components/video-lib/data/videos.json'\nimport useParams from '../../hooks/useParams'\n\nconst jsVideoIds = ['llGKcQPeaxg', 'tq9MfIG-VXw', '3_73S7kOW8U']\n\nconst getLabel = (key) => {\n let label\n switch (key) {\n case 'woocommerce':\n label = 'WooCommerce'\n break\n case 'bigcommerce':\n label = 'BigCommerce'\n break\n case 'boldcommerce':\n label = 'Bold Commerce'\n break\n case 'api':\n label = 'API'\n break\n default:\n label = key.replace(/-/g, ' ').replace(/\\b\\w/g, (c) => c.toUpperCase())\n }\n label = label.replace(/Paypal/g, 'PayPal')\n return label\n}\n\nfunction Collection() {\n const { q: searchText, filter } = useParams()\n const expandVideoProductIds = (item) => {\n const ids = Array.isArray(item['video-Product-id'])\n ? item['video-Product-id']\n : [item['video-Product-id'] || 'others']\n return ids.map((id) => ({\n ...item,\n 'video-Product-id': id.toLowerCase().replace(/\\s+/g, ''),\n }))\n }\n const expandedVideos = videos.flatMap(expandVideoProductIds)\n const groupedByProductId = useMemo(\n () => _.groupBy(expandedVideos, 'video-Product-id'),\n [expandedVideos],\n )\n const productFilters = useMemo(() => {\n const filterKeys = Object.keys(groupedByProductId).filter(\n (k) => k !== 'others',\n )\n const filters = filterKeys.map((key, i) => ({\n label: getLabel(key),\n value: key,\n key: i,\n }))\n return [{ label: 'All Videos', value: 'all' }, ...filters]\n }, [groupedByProductId])\n\n const getDefaultFilter = (filter: string) => {\n const element = _.find(productFilters, { value: filter })\n return element ? element.value : 'all'\n }\n\n const [actionData, setActionData] = useState | null>(null)\n const [searchQuery, setSearchQuery] = useState(searchText || '')\n const [selectedProduct, setSelectedProduct] = useState(\n getDefaultFilter(filter),\n )\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n setIsLoading(true)\n const tempVideos = search({\n searchQuery,\n videos:\n selectedProduct && groupedByProductId[selectedProduct]\n ? groupedByProductId[selectedProduct]\n : videos,\n })\n setActionData({ videos: tempVideos })\n setIsLoading(false)\n }, [searchQuery, selectedProduct, searchText, videos])\n\n const filtertedVideos: Video[] = actionData ? actionData.videos : videos\n\n return (\n <>\n
\n \n \n \n \n

\n {getTitleFromFilters({\n selectedProduct,\n filters: productFilters,\n })}\n

\n \n \n {\n setSearchQuery(e.target.value)\n }}\n type=\"text\"\n className=\"search\"\n placeholder=\"Search by keyword\"\n name=\"searchQuery\"\n defaultValue={searchQuery}\n />\n \n
\n
\n
\n \n \n \n
\n\n ) => {\n const newSelectedProduct = e.target.value\n setSelectedProduct(newSelectedProduct)\n navigate(`/video/collection?filter=${newSelectedProduct}`)\n }}\n />\n \n \n {isLoading && (\n
\n \n
\n )}\n {!isLoading &&\n filtertedVideos\n .filter((video) => !jsVideoIds.includes(video.id))\n .map((video, i) => (\n \n ))}\n {!isLoading && filtertedVideos?.length === 0 && (\n

No Results found

\n )}\n \n \n \n \n )\n}\n\nexport default function VideoWrapper() {\n return (\n \n \n \n )\n}\n","import Fuse from 'fuse.js'\nimport { Video } from './common'\n\ninterface SearchParams {\n searchQuery?: string\n videos: Video[]\n}\n\nexport const search = ({ searchQuery, videos }: SearchParams) => {\n const fuse = new Fuse(videos, {\n keys: ['title', 'tags'],\n threshold: 0.5,\n })\n\n const result = searchQuery ? fuse.search(searchQuery) : null\n return result ? result.map(({ item }) => item) : videos\n}\n","export const getTitleFromFilters = ({ selectedProduct, filters = [] }: any) => {\n const selectedProductLabel = filters.find(\n ({ value }) => value === selectedProduct,\n )?.label\n\n return selectedProductLabel\n}\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 arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n"],"sourceRoot":""}