{"version":3,"file":"component---src-pages-classes-js-f76492580d2b0bad5278.js","mappings":"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","sources":["webpack://waxcarvers-fe/./src/components/Blog/Tag.jsx","webpack://waxcarvers-fe/./src/pages/classes.js","webpack://waxcarvers-fe/./node_modules/lodash/_asciiToArray.js","webpack://waxcarvers-fe/./node_modules/lodash/_baseSlice.js","webpack://waxcarvers-fe/./node_modules/lodash/_castSlice.js","webpack://waxcarvers-fe/./node_modules/lodash/_createCaseFirst.js","webpack://waxcarvers-fe/./node_modules/lodash/_hasUnicode.js","webpack://waxcarvers-fe/./node_modules/lodash/_stringToArray.js","webpack://waxcarvers-fe/./node_modules/lodash/_unicodeToArray.js","webpack://waxcarvers-fe/./node_modules/lodash/capitalize.js","webpack://waxcarvers-fe/./node_modules/lodash/upperCase.js","webpack://waxcarvers-fe/./node_modules/lodash/upperFirst.js"],"sourcesContent":["import React from 'react'\nimport upperCase from 'lodash/upperCase'\n\nexport const colors = {\n workbench: 'bg-green-100 text-green-800',\n tools: 'bg-yellow-100 text-yellow-800',\n casting: 'bg-blue-100 text-blue-800',\n wax: 'bg-red-100 text-red-800',\n classes: 'bg-purple-100 text-purple-800',\n tips: 'bg-gray-100 text-gray-800'\n}\n\nconst Tag = ({tag}) => {\n return \n {upperCase(tag)}\n ;\n}\n\nexport const salesTagColors = {\n beginner: 'bg-green-100 text-green-800',\n intermediate: 'bg-yellow-100 text-yellow-800',\n advanced: 'bg-red-100 text-yellow-800',\n rings: 'bg-blue-100 text-blue-800',\n gemstones: 'bg-purple-100 text-purple-800'\n}\n\n\nexport const SalesTag = ({tag}) => {\n return \n {upperCase(tag)}\n ;\n}\n\n\nexport default Tag\n","import { Link } from \"gatsby\";\nimport { classes2022, overview } from \"../content/classes\";\nimport React, { useMemo, useState } from \"react\";\nimport { JoinNewsLetterButton } from \"../components/Common/NewsLetterPlug\";\nimport kebabCase from \"lodash/kebabCase\";\nimport ReactTooltip from \"react-tooltip\";\nimport Layout from \"../components/layout\";\nimport { PageTitle } from \"../components/Common/PageTitle\";\nimport { SalesTag, salesTagColors } from \"../components/Blog/Tag\";\nimport capitalize from \"lodash/capitalize\";\n\nconst Tags = ({ selected, classes, onSelect }) => {\n const displayables = { all: \"bg-gray-100 text-gray-800\", ...salesTagColors };\n return (\n
\n
\n \n {\n onSelect(e.target.value);\n }}\n className=\"block w-full pl-3 pr-10 py-2 text-base border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md\"\n >\n {Object.entries(displayables).map(([tag]) => {\n const amount = classes.filter(\n (it) => tag === \"all\" || (it.tags && it.tags.includes(tag)),\n ).length;\n return (\n \n );\n })}\n \n
\n
\n
\n
\n );\n })}\n \n
\n
\n \n );\n};\n\nconst ClassCard = ({\n image,\n title,\n description,\n timeframe,\n disabled,\n tooltip,\n tags = [],\n onSelectTag,\n salesPageUrl,\n}) => (\n \n
\n \n
\n\n
\n
\n

{title}

\n
\n
\n
\n
\n
\n {description}\n
\n
\n
\n
\n
\n
\n {!disabled ? (\n
\n \n More information\n \n
\n ) : (\n
\n \n Coming in {timeframe}\n \n
\n )}\n
\n
\n
\n
\n
\n {tags.map((it) => (\n onSelectTag(it)}\n >\n \n
\n ))}\n
\n
\n
\n \n \n);\n\nconst Classes = () => {\n const classes = [...overview.classes, ...classes2022]\n .filter((it) => !it.freebie)\n .map((it) => ({\n ...it,\n disabled: !it.salesPageReleased,\n }));\n\n const [selected, setSelected] = useState(undefined);\n const filteredClasses = useMemo(\n () =>\n classes.filter(\n (it) =>\n !selected ||\n selected === \"all\" ||\n (it.tags && it.tags.includes(selected)),\n ),\n [selected, classes],\n );\n\n return (\n \n
\n
\n
\n
\n
\n \n \n
\n {filteredClasses.map((it) => (\n \n ))}\n
\n
\n
\n
\n \n
\n \n \n );\n};\n\nexport default Classes;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\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 baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string`, as space separated words, to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the upper cased string.\n * @example\n *\n * _.upperCase('--foo-bar');\n * // => 'FOO BAR'\n *\n * _.upperCase('fooBar');\n * // => 'FOO BAR'\n *\n * _.upperCase('__foo_bar__');\n * // => 'FOO BAR'\n */\nvar upperCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toUpperCase();\n});\n\nmodule.exports = upperCase;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n"],"names":["colors","workbench","tools","casting","wax","classes","tips","salesTagColors","beginner","intermediate","advanced","rings","gemstones","SalesTag","tag","className","upperCase","Tags","selected","onSelect","displayables","all","htmlFor","id","name","value","onChange","e","target","Object","entries","map","amount","filter","it","tags","includes","length","key","capitalize","color","onClick","undefined","ClassCard","image","title","description","timeframe","disabled","tooltip","onSelectTag","salesPageUrl","src","alt","to","kebabCase","overview","classes2022","freebie","salesPageReleased","setSelected","useState","filteredClasses","useMemo","subtitle","module","exports","string","split","array","start","end","index","result","Array","baseSlice","castSlice","hasUnicode","stringToArray","toString","methodName","strSymbols","chr","charAt","trailing","join","slice","reHasUnicode","RegExp","test","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","match","upperFirst","toLowerCase","createCompounder","word","toUpperCase","createCaseFirst"],"sourceRoot":""}