{"version":3,"file":"ChatGIFSelection-cb7e95d7.js","sources":["../../../node_modules/@giphy/js-util/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/@giphy/js-util/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/@giphy/js-util/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/@giphy/js-util/node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@giphy/js-util/esm/get-pingback-id.js","../../../node_modules/@giphy/js-fetch-api/esm/normalize/gif.js","../../../node_modules/@giphy/js-fetch-api/esm/constants.js","../../../node_modules/@giphy/js-fetch-api/esm/fetch-error.js","../../../node_modules/@giphy/js-fetch-api/esm/request.js","../../../node_modules/@giphy/js-fetch-api/esm/api.js","../../../app/javascript/components/chat/ChatGIFSelection.vue"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { v4 as uuid } from 'uuid';\nvar pingbackId = '';\nvar idLength = 16;\n/* istanbul ignore next */\nvar noUUIDRandom = function () {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < idLength; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n};\nvar getPingbackId = function () {\n // it exists in memory\n if (!pingbackId) {\n try {\n // it exists in storage\n pingbackId = sessionStorage.getItem('giphyPingbackId');\n }\n catch (_) { }\n if (!pingbackId) {\n // we need to create it\n var hexTime = new Date().getTime().toString(16); // was told to mimic what we had\n try {\n // React Native doesn't support uuid without a polyfill\n pingbackId = \"\".concat(hexTime).concat(uuid().replace(/-/g, '')).substring(0, idLength); // 16 character max\n }\n catch (error) {\n /* istanbul ignore next */\n pingbackId = noUUIDRandom();\n }\n try {\n // save in storage\n sessionStorage.setItem('giphyPingbackId', pingbackId);\n }\n catch (_) { }\n }\n }\n return pingbackId;\n};\nexport default getPingbackId;\n//# sourceMappingURL=get-pingback-id.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * @hidden\n */\nexport var BOOL_PROPS = [\n 'is_anonymous',\n 'is_community',\n 'is_featured',\n 'is_hidden',\n 'is_indexable',\n 'is_preserve_size',\n 'is_realtime',\n 'is_removed',\n 'is_sticker',\n 'is_dynamic', // not finalized, and not adding to Gif type until type RFC is finished\n];\n/**\n * @hidden\n */\nexport var USER_BOOL_PROPS = ['suppress_chrome', 'is_public', 'is_verified'];\nvar makeBool = function (obj) { return function (prop) { return (obj[prop] = !!obj[prop]); }; };\n// tags sometimes are objects that have a text prop, sometimes they're strings\nvar getTag = function (tag) { return (typeof tag === 'string' ? tag : tag.text); };\nvar normalize = function (gif) {\n var newGif = __assign({}, gif);\n newGif.id = String(newGif.id);\n newGif.tags = (newGif.tags || []).map(getTag);\n BOOL_PROPS.forEach(makeBool(newGif));\n Object.keys(newGif.images || {}).forEach(function (name) {\n var img = newGif.images[name];\n img.width = parseInt(img.width);\n img.height = parseInt(img.height);\n });\n var user = newGif.user;\n if (user) {\n var newUser = __assign({}, user);\n USER_BOOL_PROPS.forEach(makeBool(newUser));\n newGif.user = newUser;\n }\n return newGif;\n};\n/**\n * @hidden\n */\nexport var normalizeGif = function (result) {\n result.data = normalize(result.data);\n return result;\n};\n/**\n * @hidden\n */\nexport var normalizeGifs = function (result) {\n result.data = result.data.map(function (gif) { return normalize(gif); });\n return result;\n};\n//# sourceMappingURL=gif.js.map","/* istanbul ignore next */\nvar gl = ((typeof window !== 'undefined' ? window : global) || {});\n// GIPHY_API_URL is made to override the api url in testing environments\n// must be specified before the packages load\nexport var serverUrl = gl.GIPHY_API_URL || 'https://api.giphy.com/v1/';\nexport var setServerUrl = function (url) {\n serverUrl = url;\n};\n//# sourceMappingURL=constants.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar FetchError = /** @class */ (function (_super) {\n __extends(FetchError, _super);\n function FetchError(message, url, status, statusText) {\n if (status === void 0) { status = 0; }\n if (statusText === void 0) { statusText = ''; }\n var _this = _super.call(this, message) || this;\n _this.url = url;\n _this.status = status;\n _this.statusText = statusText;\n return _this;\n }\n return FetchError;\n}(Error));\nexport default FetchError;\n//# sourceMappingURL=fetch-error.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { serverUrl } from './constants';\nimport FetchError from './fetch-error';\nexport var ERROR_PREFIX = \"@giphy/js-fetch-api: \";\nexport var DEFAULT_ERROR = 'Error fetching';\nvar identity = function (i) { return i; };\nvar requestMap = {};\nvar maxLife = 60000; // clear memory cache every minute\nvar errorMaxLife = 6000; // clear error memory cache after a second\nvar purgeCache = function () {\n var now = Date.now();\n Object.keys(requestMap).forEach(function (key) {\n var ttl = requestMap[key].isError ? errorMaxLife : maxLife;\n if (now - requestMap[key].ts >= ttl) {\n delete requestMap[key];\n }\n });\n};\nfunction request(url, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var _a = options.apiVersion, apiVersion = _a === void 0 ? 1 : _a, _b = options.noCache, noCache = _b === void 0 ? false : _b, _c = options.normalizer, normalizer = _c === void 0 ? identity : _c;\n var serverUrl_ = serverUrl.replace(/\\/v\\d+\\/$/, \"/v\".concat(apiVersion, \"/\"));\n purgeCache();\n if (!requestMap[url] || noCache) {\n var fullUrl_1 = \"\".concat(serverUrl_).concat(url);\n var makeRequest = function () { return __awaiter(_this, void 0, void 0, function () {\n var fetchError, response, result, message, result, _1, unexpectedError_1;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 9, , 10]);\n return [4 /*yield*/, fetch(fullUrl_1, {\n method: 'get',\n })];\n case 1:\n response = _b.sent();\n if (!response.ok) return [3 /*break*/, 3];\n return [4 /*yield*/, response.json()];\n case 2:\n result = (_b.sent());\n // no response id is an indiication of a synthetic response\n if (!((_a = result.meta) === null || _a === void 0 ? void 0 : _a.response_id)) {\n throw { message: \"synthetic response\" };\n }\n else {\n // if everything is successful, we return here, otherwise an error will be thrown\n return [2 /*return*/, normalizer(result)];\n }\n return [3 /*break*/, 8];\n case 3:\n message = DEFAULT_ERROR;\n _b.label = 4;\n case 4:\n _b.trys.push([4, 6, , 7]);\n return [4 /*yield*/, response.json()];\n case 5:\n result = (_b.sent());\n if (result.message)\n message = result.message;\n return [3 /*break*/, 7];\n case 6:\n _1 = _b.sent();\n return [3 /*break*/, 7];\n case 7:\n if (requestMap[url]) {\n // we got a specific error,\n // normally, you'd want to not fetch this again,\n // but the api goes down and sends 400s, so allow a refetch after errorMaxLife\n requestMap[url].isError = true;\n }\n // we got an error response, throw with the message in the response body json\n fetchError = new FetchError(\"\".concat(ERROR_PREFIX).concat(message), fullUrl_1, response.status, response.statusText);\n _b.label = 8;\n case 8: return [3 /*break*/, 10];\n case 9:\n unexpectedError_1 = _b.sent();\n fetchError = new FetchError(unexpectedError_1.message, fullUrl_1);\n // if the request fails with an unspecfied error,\n // the user can request again after the error timeout\n if (requestMap[url]) {\n requestMap[url].isError = true;\n }\n return [3 /*break*/, 10];\n case 10: throw fetchError;\n }\n });\n }); };\n requestMap[url] = { request: makeRequest(), ts: Date.now() };\n }\n return requestMap[url].request;\n}\nexport default request;\n//# sourceMappingURL=request.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/* eslint-disable no-dupe-class-members */\nimport { getPingbackId } from '@giphy/js-util';\nimport qs from 'qs';\nimport { normalizeGif, normalizeGifs } from './normalize/gif';\nimport request from './request';\nvar getType = function (options) { return (options && options.type ? options.type : 'gifs'); };\n/**\n * @class GiphyFetch\n * @param {string} apiKey\n */\nvar GiphyFetch = /** @class */ (function () {\n function GiphyFetch(apiKey) {\n var _this = this;\n /**\n * @hidden\n */\n this.getQS = function (options) {\n if (options === void 0) { options = {}; }\n return qs.stringify(__assign(__assign({}, options), { api_key: _this.apiKey, pingback_id: getPingbackId() }));\n };\n this.apiKey = apiKey;\n }\n /**\n * A list of categories\n *\n * @param {CategoriesOptions} [options]\n * @returns {Promise}\n */\n GiphyFetch.prototype.categories = function (options) {\n return request(\"gifs/categories?\".concat(this.getQS(options)));\n };\n /**\n * Get a single gif by a id\n * @param {string} id\n * @returns {Promise}\n **/\n GiphyFetch.prototype.gif = function (id) {\n return request(\"gifs/\".concat(id, \"?\").concat(this.getQS()), { normalizer: normalizeGif });\n };\n GiphyFetch.prototype.gifs = function (arg1, arg2) {\n if (Array.isArray(arg1)) {\n return request(\"gifs?\".concat(this.getQS({ ids: arg1.join(',') })), {\n normalizer: normalizeGifs,\n });\n }\n return request(\"gifs/categories/\".concat(arg1, \"/\").concat(arg2, \"?\").concat(this.getQS()), {\n normalizer: normalizeGifs,\n });\n };\n GiphyFetch.prototype.emoji = function (options) {\n return request(\"emoji?\".concat(this.getQS(options)), { normalizer: normalizeGifs });\n };\n /**\n * Returns a list of all the default emoji variations\n *\n * @param {PaginationOptions} options\n * @returns {Promise}\n **/\n GiphyFetch.prototype.emojiDefaultVariations = function (options) {\n return request(\"emoji?\".concat(this.getQS(options)), {\n apiVersion: 2,\n normalizer: normalizeGifs,\n });\n };\n /**\n * Returns a list of gifs representing all the variations for the emoji\n *\n * @param {string} id\n * @returns {Promise}\n **/\n GiphyFetch.prototype.emojiVariations = function (id) {\n return request(\"emoji/\".concat(id, \"/variations?\").concat(this.getQS()), {\n apiVersion: 2,\n normalizer: normalizeGifs,\n });\n };\n GiphyFetch.prototype.animate = function (text, options) {\n if (options === void 0) { options = {}; }\n var qsParams = this.getQS(__assign(__assign({}, options), { m: text }));\n return request(\"text/animate?\".concat(qsParams), { normalizer: normalizeGifs });\n };\n /**\n * @param term: string The term you're searching for\n * @param options: SearchOptions\n * @returns {Promise}\n **/\n GiphyFetch.prototype.search = function (term, options) {\n if (options === void 0) { options = {}; }\n var q = options.channel ? \"@\".concat(options.channel, \" \").concat(term) : term;\n var excludeDynamicResults;\n if (options.type === 'text') {\n excludeDynamicResults = true;\n }\n var qsParams = this.getQS(__assign(__assign({ rating: 'pg-13' }, options), { q: q, excludeDynamicResults: excludeDynamicResults }));\n return request(\"\".concat(getType(options), \"/search?\").concat(qsParams), { normalizer: normalizeGifs });\n };\n /**\n * Get a list of subcategories\n * @param {string} category\n * @param {SubcategoriesOptions} options\n * @returns {Promise}\n */\n GiphyFetch.prototype.subcategories = function (category, options) {\n return request(\"gifs/categories/\".concat(category, \"?\").concat(this.getQS(options)));\n };\n /**\n * Get trending gifs\n *\n * @param {TrendingOptions} options\n * @returns {Promise}\n */\n GiphyFetch.prototype.trending = function (options) {\n if (options === void 0) { options = {}; }\n return request(\"\".concat(getType(options), \"/trending?\").concat(this.getQS(__assign({ rating: 'pg-13' }, options))), {\n normalizer: normalizeGifs,\n });\n };\n /**\n * Get a random gif\n * @param {RandomOptions} options\n * @returns {Promise}\n **/\n GiphyFetch.prototype.random = function (options) {\n return request(\"\".concat(getType(options), \"/random?\").concat(this.getQS(__assign({ rating: 'pg-13' }, options))), {\n noCache: true,\n normalizer: normalizeGif,\n });\n };\n /**\n * Get related gifs by a id\n * @param {string} id\n * @param {SubcategoriesOptions} options\n * @returns {Promise}\n **/\n GiphyFetch.prototype.related = function (id, options) {\n return request(\"\".concat((options === null || options === void 0 ? void 0 : options.type) === 'stickers' ? 'stickers' : 'gifs', \"/related?\").concat(this.getQS(__assign({ gif_id: id, rating: 'pg-13' }, options))), { normalizer: normalizeGifs });\n };\n /**\n * Search for channels based on a term\n * @param {string} term\n * @param options: SearchOptions\n * @returns {Promise}\n **/\n GiphyFetch.prototype.channels = function (term, options) {\n if (options === void 0) { options = {}; }\n return request(\"channels/search?\".concat(this.getQS(__assign({ q: term, rating: 'pg-13' }, options))));\n };\n return GiphyFetch;\n}());\nexport { GiphyFetch };\nexport default GiphyFetch;\n//# sourceMappingURL=api.js.map","\n\n"],"names":["getRandomValues","rnds8","rng","byteToHex","i","unsafeStringify","arr","offset","randomUUID","native","v4","options","buf","rnds","pingbackId","idLength","noUUIDRandom","result","characters","charactersLength","getPingbackId","hexTime","uuid","getPingbackId$1","__assign","this","s","n","p","BOOL_PROPS","USER_BOOL_PROPS","makeBool","obj","prop","getTag","tag","normalize","gif","newGif","name","img","user","newUser","normalizeGif","normalizeGifs","gl","serverUrl","__extends","extendStatics","d","b","__","FetchError","_super","message","url","status","statusText","_this","FetchError$1","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","__generator","body","_","t","f","y","g","verb","v","op","ERROR_PREFIX","DEFAULT_ERROR","identity","requestMap","maxLife","errorMaxLife","purgeCache","now","key","ttl","request","_a","apiVersion","_b","noCache","_c","normalizer","serverUrl_","fullUrl_1","makeRequest","fetchError","response","unexpectedError_1","getType","GiphyFetch","apiKey","qs","id","arg1","arg2","text","qsParams","term","q","excludeDynamicResults","category","GiphyFetch$1","$store","useStore","gifs","ref","loading","searchedTerm","getGIFS","offsetVal","gf","gifsData","handleGIF","container","gifButton","props","$emit","onMounted","handleGIFScroll","scrollTop","contentHeight","onBeforeUnmount"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}