{"version":3,"file":"utils-9PpAN8ae.js","sources":["../../../node_modules/lodash-es/_castSlice.js","../../../node_modules/lodash-es/_hasUnicode.js","../../../node_modules/lodash-es/_asciiToArray.js","../../../node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/lodash-es/_stringToArray.js","../../../node_modules/lodash-es/_baseIsRegExp.js","../../../node_modules/lodash-es/isRegExp.js","../../../node_modules/lodash-es/_asciiSize.js","../../../node_modules/lodash-es/_unicodeSize.js","../../../node_modules/lodash-es/_stringSize.js","../../../node_modules/lodash-es/truncate.js","../../../app/javascript/components/utils.tsx"],"sourcesContent":["import baseSlice from './_baseSlice.js';\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\nexport default castSlice;\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\nexport default hasUnicode;\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\nexport default asciiToArray;\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\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\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\nexport default stringToArray;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\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 * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isObject from './isObject.js';\nimport isRegExp from './isRegExp.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nexport default truncate;\n","import { truncate } from 'lodash-es'\n\nexport const isTopInViewport = (element: Element): boolean => {\n const rect = element.getBoundingClientRect()\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.right <= (window.innerWidth ?? document.documentElement.clientWidth)\n )\n}\n\nexport const appendQueryToPath = (path: string, newQueryObject: Record): string => {\n const url = new URL(path, location.href)\n const originalSource = path.split('?')[0]\n const originalQueryObj = Object.fromEntries(url.searchParams)\n const fullQueryObj = { ...originalQueryObj, ...newQueryObject }\n const queryString = new URLSearchParams(fullQueryObj).toString()\n return `${originalSource}?${queryString}`\n}\n\nexport const truncateString = (string: string, length: number): string => {\n return truncate(string, {\n length,\n separator: ' ',\n omission: '...'\n })\n}\n"],"names":["castSlice","array","start","end","length","baseSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","string","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","regexpTag","baseIsRegExp","value","isObjectLike","baseGetTag","nodeIsRegExp","nodeUtil","isRegExp","baseUnary","asciiSize","baseProperty","unicodeSize","result","stringSize","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","reFlags","truncate","options","omission","isObject","separator","toInteger","baseToString","toString","strLength","strSymbols","match","substring","newEnd","index","isTopInViewport","element","rect","appendQueryToPath","path","newQueryObject","url","originalSource","fullQueryObj","queryString","truncateString"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}