{"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","groupedByProductId","useMemo","_groupBy","videos","item","toLowerCase","productFilters","filters","Object","keys","k","map","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","id","_video$thumbnails","_video$thumbnails$hig","VideoStrip","title","duration","thumbnail","thumbnails","high","length","display","VideoWrapper","VideoLayout","getNative","defineProperty","func","arrayAggregator","baseAggregator","baseIteratee","isArray","initializer","baseAssignValue","createAggregator","hasOwnProperty","prototype","groupBy","call","push","object","array","index"],"mappings":"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","file":"component---src-pages-video-collection-tsx-73fbfbde00a4331c3103.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 '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 groupedByProductId = useMemo(\n () =>\n _.groupBy(videos, (item) =>\n (item['video-Product-id'] || 'others')\n .toLowerCase()\n .replace(/\\s+/g, ''),\n ),\n [videos],\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 Courses', 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":""}