(self["webpackChunkelementor"] = self["webpackChunkelementor"] || []).push([["vendors-node_modules_react-query_devtools_index_js"],{ /***/ "../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js": /*!**********************************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! \**********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ _objectWithoutPropertiesLoose) /* harmony export */ }); function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } /***/ }), /***/ "../node_modules/match-sorter/dist/match-sorter.esm.js": /*!*************************************************************!*\ !*** ../node_modules/match-sorter/dist/match-sorter.esm.js ***! \*************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ defaultBaseSortFn: () => (/* binding */ defaultBaseSortFn), /* harmony export */ matchSorter: () => (/* binding */ matchSorter), /* harmony export */ rankings: () => (/* binding */ rankings) /* harmony export */ }); /* harmony import */ var remove_accents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! remove-accents */ "../node_modules/match-sorter/node_modules/remove-accents/index.js"); /* harmony import */ var remove_accents__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(remove_accents__WEBPACK_IMPORTED_MODULE_0__); /** * @name match-sorter * @license MIT license. * @copyright (c) 2020 Kent C. Dodds * @author Kent C. Dodds (https://kentcdodds.com) */ const rankings = { CASE_SENSITIVE_EQUAL: 7, EQUAL: 6, STARTS_WITH: 5, WORD_STARTS_WITH: 4, CONTAINS: 3, ACRONYM: 2, MATCHES: 1, NO_MATCH: 0 }; const defaultBaseSortFn = (a, b) => String(a.rankedValue).localeCompare(String(b.rankedValue)); /** * Takes an array of items and a value and returns a new array with the items that match the given value * @param {Array} items - the items to sort * @param {String} value - the value to use for ranking * @param {Object} options - Some options to configure the sorter * @return {Array} - the new sorted array */ function matchSorter(items, value, options) { if (options === void 0) { options = {}; } const { keys, threshold = rankings.MATCHES, baseSort = defaultBaseSortFn, sorter = matchedItems => matchedItems.sort((a, b) => sortRankedValues(a, b, baseSort)) } = options; const matchedItems = items.reduce(reduceItemsToRanked, []); return sorter(matchedItems).map(_ref => { let { item } = _ref; return item; }); function reduceItemsToRanked(matches, item, index) { const rankingInfo = getHighestRanking(item, keys, value, options); const { rank, keyThreshold = threshold } = rankingInfo; if (rank >= keyThreshold) { matches.push({ ...rankingInfo, item, index }); } return matches; } } matchSorter.rankings = rankings; /** * Gets the highest ranking for value for the given item based on its values for the given keys * @param {*} item - the item to rank * @param {Array} keys - the keys to get values from the item for the ranking * @param {String} value - the value to rank against * @param {Object} options - options to control the ranking * @return {{rank: Number, keyIndex: Number, keyThreshold: Number}} - the highest ranking */ function getHighestRanking(item, keys, value, options) { if (!keys) { // if keys is not specified, then we assume the item given is ready to be matched const stringItem = item; return { // ends up being duplicate of 'item' in matches but consistent rankedValue: stringItem, rank: getMatchRanking(stringItem, value, options), keyIndex: -1, keyThreshold: options.threshold }; } const valuesToRank = getAllValuesToRank(item, keys); return valuesToRank.reduce((_ref2, _ref3, i) => { let { rank, rankedValue, keyIndex, keyThreshold } = _ref2; let { itemValue, attributes } = _ref3; let newRank = getMatchRanking(itemValue, value, options); let newRankedValue = rankedValue; const { minRanking, maxRanking, threshold } = attributes; if (newRank < minRanking && newRank >= rankings.MATCHES) { newRank = minRanking; } else if (newRank > maxRanking) { newRank = maxRanking; } if (newRank > rank) { rank = newRank; keyIndex = i; keyThreshold = threshold; newRankedValue = itemValue; } return { rankedValue: newRankedValue, rank, keyIndex, keyThreshold }; }, { rankedValue: item, rank: rankings.NO_MATCH, keyIndex: -1, keyThreshold: options.threshold }); } /** * Gives a rankings score based on how well the two strings match. * @param {String} testString - the string to test against * @param {String} stringToRank - the string to rank * @param {Object} options - options for the match (like keepDiacritics for comparison) * @returns {Number} the ranking for how well stringToRank matches testString */ function getMatchRanking(testString, stringToRank, options) { testString = prepareValueForComparison(testString, options); stringToRank = prepareValueForComparison(stringToRank, options); // too long if (stringToRank.length > testString.length) { return rankings.NO_MATCH; } // case sensitive equals if (testString === stringToRank) { return rankings.CASE_SENSITIVE_EQUAL; } // Lower casing before further comparison testString = testString.toLowerCase(); stringToRank = stringToRank.toLowerCase(); // case insensitive equals if (testString === stringToRank) { return rankings.EQUAL; } // starts with if (testString.startsWith(stringToRank)) { return rankings.STARTS_WITH; } // word starts with if (testString.includes(` ${stringToRank}`)) { return rankings.WORD_STARTS_WITH; } // contains if (testString.includes(stringToRank)) { return rankings.CONTAINS; } else if (stringToRank.length === 1) { // If the only character in the given stringToRank // isn't even contained in the testString, then // it's definitely not a match. return rankings.NO_MATCH; } // acronym if (getAcronym(testString).includes(stringToRank)) { return rankings.ACRONYM; } // will return a number between rankings.MATCHES and // rankings.MATCHES + 1 depending on how close of a match it is. return getClosenessRanking(testString, stringToRank); } /** * Generates an acronym for a string. * * @param {String} string the string for which to produce the acronym * @returns {String} the acronym */ function getAcronym(string) { let acronym = ''; const wordsInString = string.split(' '); wordsInString.forEach(wordInString => { const splitByHyphenWords = wordInString.split('-'); splitByHyphenWords.forEach(splitByHyphenWord => { acronym += splitByHyphenWord.substr(0, 1); }); }); return acronym; } /** * Returns a score based on how spread apart the * characters from the stringToRank are within the testString. * A number close to rankings.MATCHES represents a loose match. A number close * to rankings.MATCHES + 1 represents a tighter match. * @param {String} testString - the string to test against * @param {String} stringToRank - the string to rank * @returns {Number} the number between rankings.MATCHES and * rankings.MATCHES + 1 for how well stringToRank matches testString */ function getClosenessRanking(testString, stringToRank) { let matchingInOrderCharCount = 0; let charNumber = 0; function findMatchingCharacter(matchChar, string, index) { for (let j = index, J = string.length; j < J; j++) { const stringChar = string[j]; if (stringChar === matchChar) { matchingInOrderCharCount += 1; return j + 1; } } return -1; } function getRanking(spread) { const spreadPercentage = 1 / spread; const inOrderPercentage = matchingInOrderCharCount / stringToRank.length; const ranking = rankings.MATCHES + inOrderPercentage * spreadPercentage; return ranking; } const firstIndex = findMatchingCharacter(stringToRank[0], testString, 0); if (firstIndex < 0) { return rankings.NO_MATCH; } charNumber = firstIndex; for (let i = 1, I = stringToRank.length; i < I; i++) { const matchChar = stringToRank[i]; charNumber = findMatchingCharacter(matchChar, testString, charNumber); const found = charNumber > -1; if (!found) { return rankings.NO_MATCH; } } const spread = charNumber - firstIndex; return getRanking(spread); } /** * Sorts items that have a rank, index, and keyIndex * @param {Object} a - the first item to sort * @param {Object} b - the second item to sort * @return {Number} -1 if a should come first, 1 if b should come first, 0 if equal */ function sortRankedValues(a, b, baseSort) { const aFirst = -1; const bFirst = 1; const { rank: aRank, keyIndex: aKeyIndex } = a; const { rank: bRank, keyIndex: bKeyIndex } = b; const same = aRank === bRank; if (same) { if (aKeyIndex === bKeyIndex) { // use the base sort function as a tie-breaker return baseSort(a, b); } else { return aKeyIndex < bKeyIndex ? aFirst : bFirst; } } else { return aRank > bRank ? aFirst : bFirst; } } /** * Prepares value for comparison by stringifying it, removing diacritics (if specified) * @param {String} value - the value to clean * @param {Object} options - {keepDiacritics: whether to remove diacritics} * @return {String} the prepared value */ function prepareValueForComparison(value, _ref4) { let { keepDiacritics } = _ref4; // value might not actually be a string at this point (we don't get to choose) // so part of preparing the value for comparison is ensure that it is a string value = `${value}`; // toString if (!keepDiacritics) { value = remove_accents__WEBPACK_IMPORTED_MODULE_0___default()(value); } return value; } /** * Gets value for key in item at arbitrarily nested keypath * @param {Object} item - the item * @param {Object|Function} key - the potentially nested keypath or property callback * @return {Array} - an array containing the value(s) at the nested keypath */ function getItemValues(item, key) { if (typeof key === 'object') { key = key.key; } let value; if (typeof key === 'function') { value = key(item); } else if (item == null) { value = null; } else if (Object.hasOwnProperty.call(item, key)) { value = item[key]; } else if (key.includes('.')) { // eslint-disable-next-line @typescript-eslint/no-unsafe-call return getNestedValues(key, item); } else { value = null; } // because `value` can also be undefined if (value == null) { return []; } if (Array.isArray(value)) { return value; } return [String(value)]; } /** * Given path: "foo.bar.baz" * And item: {foo: {bar: {baz: 'buzz'}}} * -> 'buzz' * @param path a dot-separated set of keys * @param item the item to get the value from */ function getNestedValues(path, item) { const keys = path.split('.'); let values = [item]; for (let i = 0, I = keys.length; i < I; i++) { const nestedKey = keys[i]; let nestedValues = []; for (let j = 0, J = values.length; j < J; j++) { const nestedItem = values[j]; if (nestedItem == null) continue; if (Object.hasOwnProperty.call(nestedItem, nestedKey)) { const nestedValue = nestedItem[nestedKey]; if (nestedValue != null) { nestedValues.push(nestedValue); } } else if (nestedKey === '*') { // ensure that values is an array nestedValues = nestedValues.concat(nestedItem); } } values = nestedValues; } if (Array.isArray(values[0])) { // keep allowing the implicit wildcard for an array of strings at the end of // the path; don't use `.flat()` because that's not available in node.js v10 const result = []; return result.concat(...values); } // Based on our logic it should be an array of strings by now... // assuming the user's path terminated in strings return values; } /** * Gets all the values for the given keys in the given item and returns an array of those values * @param item - the item from which the values will be retrieved * @param keys - the keys to use to retrieve the values * @return objects with {itemValue, attributes} */ function getAllValuesToRank(item, keys) { const allValues = []; for (let j = 0, J = keys.length; j < J; j++) { const key = keys[j]; const attributes = getKeyAttributes(key); const itemValues = getItemValues(item, key); for (let i = 0, I = itemValues.length; i < I; i++) { allValues.push({ itemValue: itemValues[i], attributes }); } } return allValues; } const defaultKeyAttributes = { maxRanking: Infinity, minRanking: -Infinity }; /** * Gets all the attributes for the given key * @param key - the key from which the attributes will be retrieved * @return object containing the key's attributes */ function getKeyAttributes(key) { if (typeof key === 'string') { return defaultKeyAttributes; } return { ...defaultKeyAttributes, ...key }; } /* eslint no-continue: "off", */ /***/ }), /***/ "../node_modules/match-sorter/node_modules/remove-accents/index.js": /*!*************************************************************************!*\ !*** ../node_modules/match-sorter/node_modules/remove-accents/index.js ***! \*************************************************************************/ /***/ ((module) => { var characterMap = { "À": "A", "Á": "A", "Â": "A", "Ã": "A", "Ä": "A", "Å": "A", "Ấ": "A", "Ắ": "A", "Ẳ": "A", "Ẵ": "A", "Ặ": "A", "Æ": "AE", "Ầ": "A", "Ằ": "A", "Ȃ": "A", "Ả": "A", "Ạ": "A", "Ẩ": "A", "Ẫ": "A", "Ậ": "A", "Ç": "C", "Ḉ": "C", "È": "E", "É": "E", "Ê": "E", "Ë": "E", "Ế": "E", "Ḗ": "E", "Ề": "E", "Ḕ": "E", "Ḝ": "E", "Ȇ": "E", "Ẻ": "E", "Ẽ": "E", "Ẹ": "E", "Ể": "E", "Ễ": "E", "Ệ": "E", "Ì": "I", "Í": "I", "Î": "I", "Ï": "I", "Ḯ": "I", "Ȋ": "I", "Ỉ": "I", "Ị": "I", "Ð": "D", "Ñ": "N", "Ò": "O", "Ó": "O", "Ô": "O", "Õ": "O", "Ö": "O", "Ø": "O", "Ố": "O", "Ṍ": "O", "Ṓ": "O", "Ȏ": "O", "Ỏ": "O", "Ọ": "O", "Ổ": "O", "Ỗ": "O", "Ộ": "O", "Ờ": "O", "Ở": "O", "Ỡ": "O", "Ớ": "O", "Ợ": "O", "Ù": "U", "Ú": "U", "Û": "U", "Ü": "U", "Ủ": "U", "Ụ": "U", "Ử": "U", "Ữ": "U", "Ự": "U", "Ý": "Y", "à": "a", "á": "a", "â": "a", "ã": "a", "ä": "a", "å": "a", "ấ": "a", "ắ": "a", "ẳ": "a", "ẵ": "a", "ặ": "a", "æ": "ae", "ầ": "a", "ằ": "a", "ȃ": "a", "ả": "a", "ạ": "a", "ẩ": "a", "ẫ": "a", "ậ": "a", "ç": "c", "ḉ": "c", "è": "e", "é": "e", "ê": "e", "ë": "e", "ế": "e", "ḗ": "e", "ề": "e", "ḕ": "e", "ḝ": "e", "ȇ": "e", "ẻ": "e", "ẽ": "e", "ẹ": "e", "ể": "e", "ễ": "e", "ệ": "e", "ì": "i", "í": "i", "î": "i", "ï": "i", "ḯ": "i", "ȋ": "i", "ỉ": "i", "ị": "i", "ð": "d", "ñ": "n", "ò": "o", "ó": "o", "ô": "o", "õ": "o", "ö": "o", "ø": "o", "ố": "o", "ṍ": "o", "ṓ": "o", "ȏ": "o", "ỏ": "o", "ọ": "o", "ổ": "o", "ỗ": "o", "ộ": "o", "ờ": "o", "ở": "o", "ỡ": "o", "ớ": "o", "ợ": "o", "ù": "u", "ú": "u", "û": "u", "ü": "u", "ủ": "u", "ụ": "u", "ử": "u", "ữ": "u", "ự": "u", "ý": "y", "ÿ": "y", "Ā": "A", "ā": "a", "Ă": "A", "ă": "a", "Ą": "A", "ą": "a", "Ć": "C", "ć": "c", "Ĉ": "C", "ĉ": "c", "Ċ": "C", "ċ": "c", "Č": "C", "č": "c", "C̆": "C", "c̆": "c", "Ď": "D", "ď": "d", "Đ": "D", "đ": "d", "Ē": "E", "ē": "e", "Ĕ": "E", "ĕ": "e", "Ė": "E", "ė": "e", "Ę": "E", "ę": "e", "Ě": "E", "ě": "e", "Ĝ": "G", "Ǵ": "G", "ĝ": "g", "ǵ": "g", "Ğ": "G", "ğ": "g", "Ġ": "G", "ġ": "g", "Ģ": "G", "ģ": "g", "Ĥ": "H", "ĥ": "h", "Ħ": "H", "ħ": "h", "Ḫ": "H", "ḫ": "h", "Ĩ": "I", "ĩ": "i", "Ī": "I", "ī": "i", "Ĭ": "I", "ĭ": "i", "Į": "I", "į": "i", "İ": "I", "ı": "i", "IJ": "IJ", "ij": "ij", "Ĵ": "J", "ĵ": "j", "Ķ": "K", "ķ": "k", "Ḱ": "K", "ḱ": "k", "K̆": "K", "k̆": "k", "Ĺ": "L", "ĺ": "l", "Ļ": "L", "ļ": "l", "Ľ": "L", "ľ": "l", "Ŀ": "L", "ŀ": "l", "Ł": "l", "ł": "l", "Ḿ": "M", "ḿ": "m", "M̆": "M", "m̆": "m", "Ń": "N", "ń": "n", "Ņ": "N", "ņ": "n", "Ň": "N", "ň": "n", "ʼn": "n", "N̆": "N", "n̆": "n", "Ō": "O", "ō": "o", "Ŏ": "O", "ŏ": "o", "Ő": "O", "ő": "o", "Œ": "OE", "œ": "oe", "P̆": "P", "p̆": "p", "Ŕ": "R", "ŕ": "r", "Ŗ": "R", "ŗ": "r", "Ř": "R", "ř": "r", "R̆": "R", "r̆": "r", "Ȓ": "R", "ȓ": "r", "Ś": "S", "ś": "s", "Ŝ": "S", "ŝ": "s", "Ş": "S", "Ș": "S", "ș": "s", "ş": "s", "Š": "S", "š": "s", "Ţ": "T", "ţ": "t", "ț": "t", "Ț": "T", "Ť": "T", "ť": "t", "Ŧ": "T", "ŧ": "t", "T̆": "T", "t̆": "t", "Ũ": "U", "ũ": "u", "Ū": "U", "ū": "u", "Ŭ": "U", "ŭ": "u", "Ů": "U", "ů": "u", "Ű": "U", "ű": "u", "Ų": "U", "ų": "u", "Ȗ": "U", "ȗ": "u", "V̆": "V", "v̆": "v", "Ŵ": "W", "ŵ": "w", "Ẃ": "W", "ẃ": "w", "X̆": "X", "x̆": "x", "Ŷ": "Y", "ŷ": "y", "Ÿ": "Y", "Y̆": "Y", "y̆": "y", "Ź": "Z", "ź": "z", "Ż": "Z", "ż": "z", "Ž": "Z", "ž": "z", "ſ": "s", "ƒ": "f", "Ơ": "O", "ơ": "o", "Ư": "U", "ư": "u", "Ǎ": "A", "ǎ": "a", "Ǐ": "I", "ǐ": "i", "Ǒ": "O", "ǒ": "o", "Ǔ": "U", "ǔ": "u", "Ǖ": "U", "ǖ": "u", "Ǘ": "U", "ǘ": "u", "Ǚ": "U", "ǚ": "u", "Ǜ": "U", "ǜ": "u", "Ứ": "U", "ứ": "u", "Ṹ": "U", "ṹ": "u", "Ǻ": "A", "ǻ": "a", "Ǽ": "AE", "ǽ": "ae", "Ǿ": "O", "ǿ": "o", "Þ": "TH", "þ": "th", "Ṕ": "P", "ṕ": "p", "Ṥ": "S", "ṥ": "s", "X́": "X", "x́": "x", "Ѓ": "Г", "ѓ": "г", "Ќ": "К", "ќ": "к", "A̋": "A", "a̋": "a", "E̋": "E", "e̋": "e", "I̋": "I", "i̋": "i", "Ǹ": "N", "ǹ": "n", "Ồ": "O", "ồ": "o", "Ṑ": "O", "ṑ": "o", "Ừ": "U", "ừ": "u", "Ẁ": "W", "ẁ": "w", "Ỳ": "Y", "ỳ": "y", "Ȁ": "A", "ȁ": "a", "Ȅ": "E", "ȅ": "e", "Ȉ": "I", "ȉ": "i", "Ȍ": "O", "ȍ": "o", "Ȑ": "R", "ȑ": "r", "Ȕ": "U", "ȕ": "u", "B̌": "B", "b̌": "b", "Č̣": "C", "č̣": "c", "Ê̌": "E", "ê̌": "e", "F̌": "F", "f̌": "f", "Ǧ": "G", "ǧ": "g", "Ȟ": "H", "ȟ": "h", "J̌": "J", "ǰ": "j", "Ǩ": "K", "ǩ": "k", "M̌": "M", "m̌": "m", "P̌": "P", "p̌": "p", "Q̌": "Q", "q̌": "q", "Ř̩": "R", "ř̩": "r", "Ṧ": "S", "ṧ": "s", "V̌": "V", "v̌": "v", "W̌": "W", "w̌": "w", "X̌": "X", "x̌": "x", "Y̌": "Y", "y̌": "y", "A̧": "A", "a̧": "a", "B̧": "B", "b̧": "b", "Ḑ": "D", "ḑ": "d", "Ȩ": "E", "ȩ": "e", "Ɛ̧": "E", "ɛ̧": "e", "Ḩ": "H", "ḩ": "h", "I̧": "I", "i̧": "i", "Ɨ̧": "I", "ɨ̧": "i", "M̧": "M", "m̧": "m", "O̧": "O", "o̧": "o", "Q̧": "Q", "q̧": "q", "U̧": "U", "u̧": "u", "X̧": "X", "x̧": "x", "Z̧": "Z", "z̧": "z", "й":"и", "Й":"И", "ё":"е", "Ё":"Е", }; var chars = Object.keys(characterMap).join('|'); var allAccents = new RegExp(chars, 'g'); var firstAccent = new RegExp(chars, ''); function matcher(match) { return characterMap[match]; } var removeAccents = function(string) { return string.replace(allAccents, matcher); }; var hasAccents = function(string) { return !!string.match(firstAccent); }; module.exports = removeAccents; module.exports.has = hasAccents; module.exports.remove = removeAccents; /***/ }), /***/ "../node_modules/react-query/devtools/index.js": /*!*****************************************************!*\ !*** ../node_modules/react-query/devtools/index.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { if (false) // removed by dead control flow {} else { module.exports = __webpack_require__(/*! ./development */ "../node_modules/react-query/es/devtools/index.js") } /***/ }), /***/ "../node_modules/react-query/es/devtools/Explorer.js": /*!***********************************************************!*\ !*** ../node_modules/react-query/es/devtools/Explorer.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ DefaultRenderer: () => (/* binding */ DefaultRenderer), /* harmony export */ Entry: () => (/* binding */ Entry), /* harmony export */ ExpandButton: () => (/* binding */ ExpandButton), /* harmony export */ Expander: () => (/* binding */ Expander), /* harmony export */ Info: () => (/* binding */ Info), /* harmony export */ Label: () => (/* binding */ Label), /* harmony export */ LabelButton: () => (/* binding */ LabelButton), /* harmony export */ SubEntries: () => (/* binding */ SubEntries), /* harmony export */ Value: () => (/* binding */ Value), /* harmony export */ chunkArray: () => (/* binding */ chunkArray), /* harmony export */ "default": () => (/* binding */ Explorer) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "../node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "../node_modules/react-query/es/devtools/utils.js"); var Entry = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('div', { fontFamily: 'Menlo, monospace', fontSize: '1em', lineHeight: '1.7', outline: 'none', wordBreak: 'break-word' }); var Label = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('span', { color: 'white' }); var LabelButton = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('button', { cursor: 'pointer', color: 'white' }); var ExpandButton = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('button', { cursor: 'pointer', color: 'inherit', font: 'inherit', outline: 'inherit', background: 'transparent', border: 'none', padding: 0 }); var Value = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('span', function (_props, theme) { return { color: theme.danger }; }); var SubEntries = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('div', { marginLeft: '.1em', paddingLeft: '1em', borderLeft: '2px solid rgba(0,0,0,.15)' }); var Info = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.styled)('span', { color: 'grey', fontSize: '.7em' }); var Expander = function Expander(_ref) { var expanded = _ref.expanded, _ref$style = _ref.style, style = _ref$style === void 0 ? {} : _ref$style; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("span", { style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({ display: 'inline-block', transition: 'all .1s ease', transform: "rotate(" + (expanded ? 90 : 0) + "deg) " + (style.transform || '') }, style) }, "\u25B6"); }; /** * Chunk elements in the array by size * * when the array cannot be chunked evenly by size, the last chunk will be * filled with the remaining elements * * @example * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']] */ function chunkArray(array, size) { if (size < 1) return []; var i = 0; var result = []; while (i < array.length) { result.push(array.slice(i, i + size)); i = i + size; } return result; } var DefaultRenderer = function DefaultRenderer(_ref2) { var HandleEntry = _ref2.HandleEntry, label = _ref2.label, value = _ref2.value, _ref2$subEntries = _ref2.subEntries, subEntries = _ref2$subEntries === void 0 ? [] : _ref2$subEntries, _ref2$subEntryPages = _ref2.subEntryPages, subEntryPages = _ref2$subEntryPages === void 0 ? [] : _ref2$subEntryPages, type = _ref2.type, _ref2$expanded = _ref2.expanded, expanded = _ref2$expanded === void 0 ? false : _ref2$expanded, toggleExpanded = _ref2.toggleExpanded, pageSize = _ref2.pageSize; var _React$useState = react__WEBPACK_IMPORTED_MODULE_2___default().useState([]), expandedPages = _React$useState[0], setExpandedPages = _React$useState[1]; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Entry, { key: label }, (subEntryPages == null ? void 0 : subEntryPages.length) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ExpandButton, { onClick: function onClick() { return toggleExpanded(); } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Expander, { expanded: expanded }), " ", label, ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Info, null, String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : '', subEntries.length, " ", subEntries.length > 1 ? "items" : "item")), expanded ? subEntryPages.length === 1 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(SubEntries, null, subEntries.map(function (entry) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(HandleEntry, { key: entry.label, entry: entry }); })) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(SubEntries, null, subEntryPages.map(function (entries, index) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { key: index }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Entry, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(LabelButton, { onClick: function onClick() { return setExpandedPages(function (old) { return old.includes(index) ? old.filter(function (d) { return d !== index; }) : [].concat(old, [index]); }); } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Expander, { expanded: expanded }), " [", index * pageSize, " ...", ' ', index * pageSize + pageSize - 1, "]"), expandedPages.includes(index) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(SubEntries, null, entries.map(function (entry) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(HandleEntry, { key: entry.label, entry: entry }); })) : null)); })) : null) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Label, null, label, ":"), " ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Value, null, (0,_utils__WEBPACK_IMPORTED_MODULE_3__.displayValue)(value)))); }; function isIterable(x) { return Symbol.iterator in x; } function Explorer(_ref3) { var value = _ref3.value, defaultExpanded = _ref3.defaultExpanded, _ref3$renderer = _ref3.renderer, renderer = _ref3$renderer === void 0 ? DefaultRenderer : _ref3$renderer, _ref3$pageSize = _ref3.pageSize, pageSize = _ref3$pageSize === void 0 ? 100 : _ref3$pageSize, rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__["default"])(_ref3, ["value", "defaultExpanded", "renderer", "pageSize"]); var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_2___default().useState(Boolean(defaultExpanded)), expanded = _React$useState2[0], setExpanded = _React$useState2[1]; var toggleExpanded = react__WEBPACK_IMPORTED_MODULE_2___default().useCallback(function () { return setExpanded(function (old) { return !old; }); }, []); var type = typeof value; var subEntries = []; var makeProperty = function makeProperty(sub) { var _ref4; var subDefaultExpanded = defaultExpanded === true ? (_ref4 = {}, _ref4[sub.label] = true, _ref4) : defaultExpanded == null ? void 0 : defaultExpanded[sub.label]; return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, sub, { defaultExpanded: subDefaultExpanded }); }; if (Array.isArray(value)) { type = 'array'; subEntries = value.map(function (d, i) { return makeProperty({ label: i.toString(), value: d }); }); } else if (value !== null && typeof value === 'object' && isIterable(value) && typeof value[Symbol.iterator] === 'function') { type = 'Iterable'; subEntries = Array.from(value, function (val, i) { return makeProperty({ label: i.toString(), value: val }); }); } else if (typeof value === 'object' && value !== null) { type = 'object'; subEntries = Object.entries(value).map(function (_ref5) { var key = _ref5[0], val = _ref5[1]; return makeProperty({ label: key, value: val }); }); } var subEntryPages = chunkArray(subEntries, pageSize); return renderer((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({ HandleEntry: function HandleEntry(_ref6) { var entry = _ref6.entry; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Explorer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({ value: value, renderer: renderer }, rest, entry)); }, type: type, subEntries: subEntries, subEntryPages: subEntryPages, value: value, expanded: expanded, toggleExpanded: toggleExpanded, pageSize: pageSize }, rest)); } /***/ }), /***/ "../node_modules/react-query/es/devtools/Logo.js": /*!*******************************************************!*\ !*** ../node_modules/react-query/es/devtools/Logo.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Logo) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "../node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); function Logo(props) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("svg", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ width: "40px", height: "40px", viewBox: "0 0 190 190", version: "1.1" }, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("g", { transform: "translate(-33.000000, 0.000000)" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("path", { d: "M72.7239712,61.3436237 C69.631224,46.362877 68.9675112,34.8727722 70.9666331,26.5293551 C72.1555965,21.5671678 74.3293088,17.5190846 77.6346064,14.5984631 C81.1241394,11.5150478 85.5360327,10.0020122 90.493257,10.0020122 C98.6712013,10.0020122 107.26826,13.7273214 116.455725,20.8044264 C120.20312,23.6910458 124.092437,27.170411 128.131651,31.2444746 C128.45314,30.8310265 128.816542,30.4410453 129.22143,30.0806152 C140.64098,19.9149716 150.255245,13.5989272 158.478408,11.1636507 C163.367899,9.715636 167.958526,9.57768202 172.138936,10.983031 C176.551631,12.4664684 180.06766,15.5329489 182.548314,19.8281091 C186.642288,26.9166735 187.721918,36.2310983 186.195595,47.7320243 C185.573451,52.4199112 184.50985,57.5263831 183.007094,63.0593153 C183.574045,63.1277086 184.142416,63.2532808 184.705041,63.4395297 C199.193932,68.2358678 209.453582,73.3937462 215.665021,79.2882839 C219.360669,82.7953831 221.773972,86.6998434 222.646365,91.0218204 C223.567176,95.5836746 222.669313,100.159332 220.191548,104.451297 C216.105211,111.529614 208.591643,117.11221 197.887587,121.534031 C193.589552,123.309539 188.726579,124.917559 183.293259,126.363748 C183.541176,126.92292 183.733521,127.516759 183.862138,128.139758 C186.954886,143.120505 187.618598,154.61061 185.619477,162.954027 C184.430513,167.916214 182.256801,171.964297 178.951503,174.884919 C175.46197,177.968334 171.050077,179.48137 166.092853,179.48137 C157.914908,179.48137 149.31785,175.756061 140.130385,168.678956 C136.343104,165.761613 132.410866,162.238839 128.325434,158.108619 C127.905075,158.765474 127.388968,159.376011 126.77857,159.919385 C115.35902,170.085028 105.744755,176.401073 97.5215915,178.836349 C92.6321009,180.284364 88.0414736,180.422318 83.8610636,179.016969 C79.4483686,177.533532 75.9323404,174.467051 73.4516862,170.171891 C69.3577116,163.083327 68.2780823,153.768902 69.8044053,142.267976 C70.449038,137.410634 71.56762,132.103898 73.1575891,126.339009 C72.5361041,126.276104 71.9120754,126.144816 71.2949591,125.940529 C56.8060684,121.144191 46.5464184,115.986312 40.3349789,110.091775 C36.6393312,106.584675 34.2260275,102.680215 33.3536352,98.3582381 C32.4328237,93.7963839 33.3306866,89.2207269 35.8084524,84.9287618 C39.8947886,77.8504443 47.4083565,72.2678481 58.1124133,67.8460273 C62.5385143,66.0176154 67.5637208,64.366822 73.1939394,62.8874674 C72.9933393,62.3969171 72.8349374,61.8811235 72.7239712,61.3436237 Z", fill: "#002C4B", fillRule: "nonzero", transform: "translate(128.000000, 95.000000) scale(-1, 1) translate(-128.000000, -95.000000) " }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("path", { d: "M113.396882,64 L142.608177,64 C144.399254,64 146.053521,64.958025 146.944933,66.5115174 L161.577138,92.0115174 C162.461464,93.5526583 162.461464,95.4473417 161.577138,96.9884826 L146.944933,122.488483 C146.053521,124.041975 144.399254,125 142.608177,125 L113.396882,125 C111.605806,125 109.951539,124.041975 109.060126,122.488483 L94.4279211,96.9884826 C93.543596,95.4473417 93.543596,93.5526583 94.4279211,92.0115174 L109.060126,66.5115174 C109.951539,64.958025 111.605806,64 113.396882,64 Z M138.987827,70.2765273 C140.779849,70.2765273 142.434839,71.2355558 143.325899,72.7903404 L154.343038,92.0138131 C155.225607,93.5537825 155.225607,95.4462175 154.343038,96.9861869 L143.325899,116.20966 C142.434839,117.764444 140.779849,118.723473 138.987827,118.723473 L117.017233,118.723473 C115.225211,118.723473 113.570221,117.764444 112.67916,116.20966 L101.662022,96.9861869 C100.779452,95.4462175 100.779452,93.5537825 101.662022,92.0138131 L112.67916,72.7903404 C113.570221,71.2355558 115.225211,70.2765273 117.017233,70.2765273 L138.987827,70.2765273 Z M135.080648,77.1414791 L120.924411,77.1414791 C119.134228,77.1414791 117.480644,78.0985567 116.5889,79.6508285 L116.5889,79.6508285 L109.489217,92.0093494 C108.603232,93.5515958 108.603232,95.4484042 109.489217,96.9906506 L109.489217,96.9906506 L116.5889,109.349172 C117.480644,110.901443 119.134228,111.858521 120.924411,111.858521 L120.924411,111.858521 L135.080648,111.858521 C136.870831,111.858521 138.524416,110.901443 139.41616,109.349172 L139.41616,109.349172 L146.515843,96.9906506 C147.401828,95.4484042 147.401828,93.5515958 146.515843,92.0093494 L146.515843,92.0093494 L139.41616,79.6508285 C138.524416,78.0985567 136.870831,77.1414791 135.080648,77.1414791 L135.080648,77.1414791 Z M131.319186,83.7122186 C133.108028,83.7122186 134.760587,84.6678753 135.652827,86.2183156 L138.983552,92.0060969 C139.87203,93.5500005 139.87203,95.4499995 138.983552,96.9939031 L135.652827,102.781684 C134.760587,104.332125 133.108028,105.287781 131.319186,105.287781 L124.685874,105.287781 C122.897032,105.287781 121.244473,104.332125 120.352233,102.781684 L117.021508,96.9939031 C116.13303,95.4499995 116.13303,93.5500005 117.021508,92.0060969 L120.352233,86.2183156 C121.244473,84.6678753 122.897032,83.7122186 124.685874,83.7122186 L131.319186,83.7122186 Z M128.003794,90.1848875 C126.459294,90.1848875 125.034382,91.0072828 124.263005,92.3424437 C123.491732,93.6774232 123.491732,95.3225768 124.263005,96.6575563 C125.034382,97.9927172 126.459294,98.8151125 128.001266,98.8151125 L128.001266,98.8151125 C129.545766,98.8151125 130.970678,97.9927172 131.742055,96.6575563 C132.513327,95.3225768 132.513327,93.6774232 131.742055,92.3424437 C130.970678,91.0072828 129.545766,90.1848875 128.003794,90.1848875 L128.003794,90.1848875 Z M93,94.5009646 L100.767764,94.5009646", fill: "#FFD94C" }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("path", { d: "M87.8601729,108.357758 C89.1715224,107.608286 90.8360246,108.074601 91.5779424,109.399303 L91.5779424,109.399303 L92.0525843,110.24352 C95.8563392,116.982993 99.8190116,123.380176 103.940602,129.435068 C108.807881,136.585427 114.28184,143.82411 120.362479,151.151115 C121.316878,152.30114 121.184944,154.011176 120.065686,154.997937 L120.065686,154.997937 L119.454208,155.534625 C99.3465389,173.103314 86.2778188,176.612552 80.2480482,166.062341 C74.3500652,155.742717 76.4844915,136.982888 86.6513274,109.782853 C86.876818,109.179582 87.3045861,108.675291 87.8601729,108.357758 Z M173.534177,129.041504 C174.986131,128.785177 176.375496,129.742138 176.65963,131.194242 L176.65963,131.194242 L176.812815,131.986376 C181.782365,157.995459 178.283348,171 166.315764,171 C154.609745,171 139.708724,159.909007 121.612702,137.727022 C121.211349,137.235047 120.994572,136.617371 121,135.981509 C121.013158,134.480686 122.235785,133.274651 123.730918,133.287756 L123.730918,133.287756 L124.684654,133.294531 C132.305698,133.335994 139.714387,133.071591 146.910723,132.501323 C155.409039,131.82788 164.283523,130.674607 173.534177,129.041504 Z M180.408726,73.8119663 C180.932139,72.4026903 182.508386,71.6634537 183.954581,72.149012 L183.954581,72.149012 L184.742552,72.4154854 C210.583763,81.217922 220.402356,90.8916805 214.198332,101.436761 C208.129904,111.751366 190.484347,119.260339 161.26166,123.963678 C160.613529,124.067994 159.948643,123.945969 159.382735,123.618843 C158.047025,122.846729 157.602046,121.158214 158.388848,119.847438 L158.388848,119.847438 L158.889328,119.0105 C162.877183,112.31633 166.481358,105.654262 169.701854,99.0242957 C173.50501,91.1948179 177.073967,82.7907081 180.408726,73.8119663 Z M94.7383398,66.0363218 C95.3864708,65.9320063 96.0513565,66.0540315 96.6172646,66.3811573 C97.9529754,67.153271 98.3979538,68.8417862 97.6111517,70.1525615 L97.6111517,70.1525615 L97.1106718,70.9895001 C93.1228168,77.6836699 89.5186416,84.3457379 86.2981462,90.9757043 C82.49499,98.8051821 78.9260328,107.209292 75.5912744,116.188034 C75.0678608,117.59731 73.4916142,118.336546 72.045419,117.850988 L72.045419,117.850988 L71.2574475,117.584515 C45.4162372,108.782078 35.597644,99.1083195 41.8016679,88.5632391 C47.8700957,78.2486335 65.515653,70.7396611 94.7383398,66.0363218 Z M136.545792,34.4653746 C156.653461,16.8966864 169.722181,13.3874478 175.751952,23.9376587 C181.649935,34.2572826 179.515508,53.0171122 169.348673,80.2171474 C169.123182,80.8204179 168.695414,81.324709 168.139827,81.6422422 C166.828478,82.3917144 165.163975,81.9253986 164.422058,80.6006966 L164.422058,80.6006966 L163.947416,79.7564798 C160.143661,73.0170065 156.180988,66.6198239 152.059398,60.564932 C147.192119,53.4145727 141.71816,46.1758903 135.637521,38.8488847 C134.683122,37.6988602 134.815056,35.9888243 135.934314,35.0020629 L135.934314,35.0020629 Z M90.6842361,18 C102.390255,18 117.291276,29.0909926 135.387298,51.2729777 C135.788651,51.7649527 136.005428,52.3826288 136,53.0184911 C135.986842,54.5193144 134.764215,55.7253489 133.269082,55.7122445 L133.269082,55.7122445 L132.315346,55.7054689 C124.694302,55.6640063 117.285613,55.9284091 110.089277,56.4986773 C101.590961,57.17212 92.7164767,58.325393 83.4658235,59.9584962 C82.0138691,60.2148231 80.6245044,59.2578618 80.3403697,57.805758 L80.3403697,57.805758 L80.1871846,57.0136235 C75.2176347,31.0045412 78.7166519,18 90.6842361,18 Z", fill: "#FF4154" })))); } /***/ }), /***/ "../node_modules/react-query/es/devtools/devtools.js": /*!***********************************************************!*\ !*** ../node_modules/react-query/es/devtools/devtools.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ReactQueryDevtools: () => (/* binding */ ReactQueryDevtools), /* harmony export */ ReactQueryDevtoolsPanel: () => (/* binding */ ReactQueryDevtoolsPanel) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "../node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var react_query__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-query */ "../node_modules/react-query/es/index.js"); /* harmony import */ var match_sorter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! match-sorter */ "../node_modules/match-sorter/dist/match-sorter.esm.js"); /* harmony import */ var _useLocalStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./useLocalStorage */ "../node_modules/react-query/es/devtools/useLocalStorage.js"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils */ "../node_modules/react-query/es/devtools/utils.js"); /* harmony import */ var _styledComponents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styledComponents */ "../node_modules/react-query/es/devtools/styledComponents.js"); /* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./theme */ "../node_modules/react-query/es/devtools/theme.js"); /* harmony import */ var _Explorer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Explorer */ "../node_modules/react-query/es/devtools/Explorer.js"); /* harmony import */ var _Logo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Logo */ "../node_modules/react-query/es/devtools/Logo.js"); /* harmony import */ var _core_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../core/utils */ "../node_modules/react-query/es/core/utils.js"); var isServer = typeof window === 'undefined'; function ReactQueryDevtools(_ref) { var initialIsOpen = _ref.initialIsOpen, _ref$panelProps = _ref.panelProps, panelProps = _ref$panelProps === void 0 ? {} : _ref$panelProps, _ref$closeButtonProps = _ref.closeButtonProps, closeButtonProps = _ref$closeButtonProps === void 0 ? {} : _ref$closeButtonProps, _ref$toggleButtonProp = _ref.toggleButtonProps, toggleButtonProps = _ref$toggleButtonProp === void 0 ? {} : _ref$toggleButtonProp, _ref$position = _ref.position, position = _ref$position === void 0 ? 'bottom-left' : _ref$position, _ref$containerElement = _ref.containerElement, Container = _ref$containerElement === void 0 ? 'aside' : _ref$containerElement, styleNonce = _ref.styleNonce; var rootRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null); var panelRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(null); var _useLocalStorage = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsOpen', initialIsOpen), isOpen = _useLocalStorage[0], setIsOpen = _useLocalStorage[1]; var _useLocalStorage2 = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsHeight', null), devtoolsHeight = _useLocalStorage2[0], setDevtoolsHeight = _useLocalStorage2[1]; var _useSafeState = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.useSafeState)(false), isResolvedOpen = _useSafeState[0], setIsResolvedOpen = _useSafeState[1]; var _useSafeState2 = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.useSafeState)(false), isResizing = _useSafeState2[0], setIsResizing = _useSafeState2[1]; var isMounted = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.useIsMounted)(); var _handleDragStart = function handleDragStart(panelElement, startEvent) { var _panelElement$getBoun; if (startEvent.button !== 0) return; // Only allow left click for drag setIsResizing(true); var dragInfo = { originalHeight: (_panelElement$getBoun = panelElement == null ? void 0 : panelElement.getBoundingClientRect().height) != null ? _panelElement$getBoun : 0, pageY: startEvent.pageY }; var run = function run(moveEvent) { var delta = dragInfo.pageY - moveEvent.pageY; var newHeight = (dragInfo == null ? void 0 : dragInfo.originalHeight) + delta; setDevtoolsHeight(newHeight); if (newHeight < 70) { setIsOpen(false); } else { setIsOpen(true); } }; var unsub = function unsub() { setIsResizing(false); document.removeEventListener('mousemove', run); document.removeEventListener('mouseUp', unsub); }; document.addEventListener('mousemove', run); document.addEventListener('mouseup', unsub); }; react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () { setIsResolvedOpen(isOpen != null ? isOpen : false); }, [isOpen, isResolvedOpen, setIsResolvedOpen]); // Toggle panel visibility before/after transition (depending on direction). // Prevents focusing in a closed panel. react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () { var ref = panelRef.current; if (ref) { var handlePanelTransitionStart = function handlePanelTransitionStart() { if (ref && isResolvedOpen) { ref.style.visibility = 'visible'; } }; var handlePanelTransitionEnd = function handlePanelTransitionEnd() { if (ref && !isResolvedOpen) { ref.style.visibility = 'hidden'; } }; ref.addEventListener('transitionstart', handlePanelTransitionStart); ref.addEventListener('transitionend', handlePanelTransitionEnd); return function () { ref.removeEventListener('transitionstart', handlePanelTransitionStart); ref.removeEventListener('transitionend', handlePanelTransitionEnd); }; } }, [isResolvedOpen]); (react__WEBPACK_IMPORTED_MODULE_2___default())[isServer ? 'useEffect' : 'useLayoutEffect'](function () { if (isResolvedOpen) { var _rootRef$current, _rootRef$current$pare; var previousValue = (_rootRef$current = rootRef.current) == null ? void 0 : (_rootRef$current$pare = _rootRef$current.parentElement) == null ? void 0 : _rootRef$current$pare.style.paddingBottom; var run = function run() { var _panelRef$current, _rootRef$current2; var containerHeight = (_panelRef$current = panelRef.current) == null ? void 0 : _panelRef$current.getBoundingClientRect().height; if ((_rootRef$current2 = rootRef.current) == null ? void 0 : _rootRef$current2.parentElement) { rootRef.current.parentElement.style.paddingBottom = containerHeight + "px"; } }; run(); if (typeof window !== 'undefined') { window.addEventListener('resize', run); return function () { var _rootRef$current3; window.removeEventListener('resize', run); if (((_rootRef$current3 = rootRef.current) == null ? void 0 : _rootRef$current3.parentElement) && typeof previousValue === 'string') { rootRef.current.parentElement.style.paddingBottom = previousValue; } }; } } }, [isResolvedOpen]); var _panelProps$style = panelProps.style, panelStyle = _panelProps$style === void 0 ? {} : _panelProps$style, otherPanelProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(panelProps, ["style"]); var _closeButtonProps$sty = closeButtonProps.style, closeButtonStyle = _closeButtonProps$sty === void 0 ? {} : _closeButtonProps$sty, onCloseClick = closeButtonProps.onClick, otherCloseButtonProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(closeButtonProps, ["style", "onClick"]); var _toggleButtonProps$st = toggleButtonProps.style, toggleButtonStyle = _toggleButtonProps$st === void 0 ? {} : _toggleButtonProps$st, onToggleClick = toggleButtonProps.onClick, otherToggleButtonProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(toggleButtonProps, ["style", "onClick"]); // Do not render on the server if (!isMounted()) return null; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(Container, { ref: rootRef, className: "ReactQueryDevtools", "aria-label": "React Query Devtools" }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_theme__WEBPACK_IMPORTED_MODULE_8__.ThemeProvider, { theme: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ReactQueryDevtoolsPanel, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ ref: panelRef, styleNonce: styleNonce }, otherPanelProps, { style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ position: 'fixed', bottom: '0', right: '0', zIndex: 99999, width: '100%', height: devtoolsHeight != null ? devtoolsHeight : 500, maxHeight: '90%', boxShadow: '0 0 20px rgba(0,0,0,.3)', borderTop: "1px solid " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray, transformOrigin: 'top', // visibility will be toggled after transitions, but set initial state here visibility: isOpen ? 'visible' : 'hidden' }, panelStyle, isResizing ? { transition: "none" } : { transition: "all .2s ease" }, isResolvedOpen ? { opacity: 1, pointerEvents: 'all', transform: "translateY(0) scale(1)" } : { opacity: 0, pointerEvents: 'none', transform: "translateY(15px) scale(1.02)" }), isOpen: isResolvedOpen, setIsOpen: setIsOpen, handleDragStart: function handleDragStart(e) { return _handleDragStart(panelRef.current, e); } })), isResolvedOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ type: "button", "aria-controls": "ReactQueryDevtoolsPanel", "aria-haspopup": "true", "aria-expanded": "true" }, otherCloseButtonProps, { onClick: function onClick(e) { setIsOpen(false); onCloseClick && onCloseClick(e); }, style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ position: 'fixed', zIndex: 99999, margin: '.5em', bottom: 0 }, position === 'top-right' ? { right: '0' } : position === 'top-left' ? { left: '0' } : position === 'bottom-right' ? { right: '0' } : { left: '0' }, closeButtonStyle) }), "Close") : null), !isResolvedOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("button", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ type: "button" }, otherToggleButtonProps, { "aria-label": "Open React Query Devtools", "aria-controls": "ReactQueryDevtoolsPanel", "aria-haspopup": "true", "aria-expanded": "false", onClick: function onClick(e) { setIsOpen(true); onToggleClick && onToggleClick(e); }, style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ background: 'none', border: 0, padding: 0, position: 'fixed', zIndex: 99999, display: 'inline-flex', fontSize: '1.5em', margin: '.5em', cursor: 'pointer', width: 'fit-content' }, position === 'top-right' ? { top: '0', right: '0' } : position === 'top-left' ? { top: '0', left: '0' } : position === 'bottom-right' ? { bottom: '0', right: '0' } : { bottom: '0', left: '0' }, toggleButtonStyle) }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Logo__WEBPACK_IMPORTED_MODULE_10__["default"], { "aria-hidden": true })) : null); } var getStatusRank = function getStatusRank(q) { return q.state.isFetching ? 0 : !q.getObserversCount() ? 3 : q.isStale() ? 2 : 1; }; var sortFns = { 'Status > Last Updated': function StatusLastUpdated(a, b) { var _sortFns$LastUpdated; return getStatusRank(a) === getStatusRank(b) ? (_sortFns$LastUpdated = sortFns['Last Updated']) == null ? void 0 : _sortFns$LastUpdated.call(sortFns, a, b) : getStatusRank(a) > getStatusRank(b) ? 1 : -1; }, 'Query Hash': function QueryHash(a, b) { return a.queryHash > b.queryHash ? 1 : -1; }, 'Last Updated': function LastUpdated(a, b) { return a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1; } }; var ReactQueryDevtoolsPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef(function ReactQueryDevtoolsPanel(props, ref) { var _activeQuery$state; var _props$isOpen = props.isOpen, isOpen = _props$isOpen === void 0 ? true : _props$isOpen, styleNonce = props.styleNonce, setIsOpen = props.setIsOpen, handleDragStart = props.handleDragStart, panelProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, ["isOpen", "styleNonce", "setIsOpen", "handleDragStart"]); var queryClient = (0,react_query__WEBPACK_IMPORTED_MODULE_3__.useQueryClient)(); var queryCache = queryClient.getQueryCache(); var _useLocalStorage3 = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsSortFn', Object.keys(sortFns)[0]), sort = _useLocalStorage3[0], setSort = _useLocalStorage3[1]; var _useLocalStorage4 = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsFilter', ''), filter = _useLocalStorage4[0], setFilter = _useLocalStorage4[1]; var _useLocalStorage5 = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsSortDesc', false), sortDesc = _useLocalStorage5[0], setSortDesc = _useLocalStorage5[1]; var sortFn = react__WEBPACK_IMPORTED_MODULE_2___default().useMemo(function () { return sortFns[sort]; }, [sort]); (react__WEBPACK_IMPORTED_MODULE_2___default())[isServer ? 'useEffect' : 'useLayoutEffect'](function () { if (!sortFn) { setSort(Object.keys(sortFns)[0]); } }, [setSort, sortFn]); var _useSafeState3 = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.useSafeState)(Object.values(queryCache.findAll())), unsortedQueries = _useSafeState3[0], setUnsortedQueries = _useSafeState3[1]; var _useLocalStorage6 = (0,_useLocalStorage__WEBPACK_IMPORTED_MODULE_5__["default"])('reactQueryDevtoolsActiveQueryHash', ''), activeQueryHash = _useLocalStorage6[0], setActiveQueryHash = _useLocalStorage6[1]; var queries = react__WEBPACK_IMPORTED_MODULE_2___default().useMemo(function () { var sorted = [].concat(unsortedQueries).sort(sortFn); if (sortDesc) { sorted.reverse(); } if (!filter) { return sorted; } return (0,match_sorter__WEBPACK_IMPORTED_MODULE_4__.matchSorter)(sorted, filter, { keys: ['queryHash'] }).filter(function (d) { return d.queryHash; }); }, [sortDesc, sortFn, unsortedQueries, filter]); var activeQuery = react__WEBPACK_IMPORTED_MODULE_2___default().useMemo(function () { return queries.find(function (query) { return query.queryHash === activeQueryHash; }); }, [activeQueryHash, queries]); var hasFresh = queries.filter(function (q) { return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(q) === 'fresh'; }).length; var hasFetching = queries.filter(function (q) { return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(q) === 'fetching'; }).length; var hasStale = queries.filter(function (q) { return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(q) === 'stale'; }).length; var hasInactive = queries.filter(function (q) { return (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(q) === 'inactive'; }).length; react__WEBPACK_IMPORTED_MODULE_2___default().useEffect(function () { if (isOpen) { var unsubscribe = queryCache.subscribe(function () { setUnsortedQueries(Object.values(queryCache.getAll())); }); // re-subscribing after the panel is closed and re-opened won't trigger the callback, // So we'll manually populate our state setUnsortedQueries(Object.values(queryCache.getAll())); return unsubscribe; } return undefined; }, [isOpen, sort, sortFn, sortDesc, setUnsortedQueries, queryCache]); var handleRefetch = function handleRefetch() { var promise = activeQuery == null ? void 0 : activeQuery.fetch(); promise == null ? void 0 : promise.catch(_core_utils__WEBPACK_IMPORTED_MODULE_11__.noop); }; return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_theme__WEBPACK_IMPORTED_MODULE_8__.ThemeProvider, { theme: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Panel, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ ref: ref, className: "ReactQueryDevtoolsPanel", "aria-label": "React Query Devtools Panel", id: "ReactQueryDevtoolsPanel" }, panelProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("style", { nonce: styleNonce, dangerouslySetInnerHTML: { __html: "\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt + " " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray + ";\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt + ";\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray + ";\n border-radius: .5em;\n border: 3px solid " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt + ";\n }\n " } }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { position: 'absolute', left: 0, top: 0, width: '100%', height: '4px', marginBottom: '-4px', cursor: 'row-resize', zIndex: 100000 }, onMouseDown: handleDragStart }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { flex: '1 1 500px', minHeight: '40%', maxHeight: '100%', overflow: 'auto', borderRight: "1px solid " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.grayAlt, display: isOpen ? 'flex' : 'none', flexDirection: 'column' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '.5em', background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt, display: 'flex', justifyContent: 'space-between', alignItems: 'center' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("button", { type: "button", "aria-label": "Close React Query Devtools", "aria-controls": "ReactQueryDevtoolsPanel", "aria-haspopup": "true", "aria-expanded": "true", onClick: function onClick() { return setIsOpen(false); }, style: { display: 'inline-flex', background: 'none', border: 0, padding: 0, marginRight: '.5em', cursor: 'pointer' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Logo__WEBPACK_IMPORTED_MODULE_10__["default"], { "aria-hidden": true })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { display: 'flex', flexDirection: 'column' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.QueryKeys, { style: { marginBottom: '.5em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.QueryKey, { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.success, opacity: hasFresh ? 1 : 0.3 } }, "fresh ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, "(", hasFresh, ")")), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.QueryKey, { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.active, opacity: hasFetching ? 1 : 0.3 } }, "fetching ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, "(", hasFetching, ")")), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.QueryKey, { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.warning, color: 'black', textShadow: '0', opacity: hasStale ? 1 : 0.3 } }, "stale ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, "(", hasStale, ")")), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.QueryKey, { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray, opacity: hasInactive ? 1 : 0.3 } }, "inactive ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, "(", hasInactive, ")"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { display: 'flex', alignItems: 'center' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Input, { placeholder: "Filter", "aria-label": "Filter by queryhash", value: filter != null ? filter : '', onChange: function onChange(e) { return setFilter(e.target.value); }, onKeyDown: function onKeyDown(e) { if (e.key === 'Escape') setFilter(''); }, style: { flex: '1', marginRight: '.5em', width: '100%' } }), !filter ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Select, { "aria-label": "Sort queries", value: sort, onChange: function onChange(e) { return setSort(e.target.value); }, style: { flex: '1', minWidth: 75, marginRight: '.5em' } }, Object.keys(sortFns).map(function (key) { return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("option", { key: key, value: key }, "Sort by ", key); })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, { type: "button", onClick: function onClick() { return setSortDesc(function (old) { return !old; }); }, style: { padding: '.3em .4em' } }, sortDesc ? '⬇ Desc' : '⬆ Asc')) : null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { overflowY: 'auto', flex: '1' } }, queries.map(function (query, i) { var isDisabled = query.getObserversCount() > 0 && !query.isActive(); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { key: query.queryHash || i, role: "button", "aria-label": "Open query details for " + query.queryHash, onClick: function onClick() { return setActiveQueryHash(activeQueryHash === query.queryHash ? '' : query.queryHash); }, style: { display: 'flex', borderBottom: "solid 1px " + _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.grayAlt, cursor: 'pointer', background: query === activeQuery ? 'rgba(255,255,255,.1)' : undefined } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { flex: '0 0 auto', width: '2em', height: '2em', background: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusColor)(query, _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme), display: 'flex', alignItems: 'center', justifyContent: 'center', fontWeight: 'bold', textShadow: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(query) === 'stale' ? '0' : '0 0 10px black', color: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(query) === 'stale' ? 'black' : 'white' } }, query.getObserversCount()), isDisabled ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { flex: '0 0 auto', height: '2em', background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray, display: 'flex', alignItems: 'center', fontWeight: 'bold', padding: '0 0.5em' } }, "disabled") : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, { style: { padding: '.5em' } }, "" + query.queryHash)); }))), activeQuery ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.ActiveQueryPanel, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '.5em', background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt, position: 'sticky', top: 0, zIndex: 1 } }, "Query Details"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '.5em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { marginBottom: '.5em', display: 'flex', alignItems: 'start', justifyContent: 'space-between' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, { style: { lineHeight: '1.8em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("pre", { style: { margin: 0, padding: 0, overflow: 'auto' } }, JSON.stringify(activeQuery.queryKey, null, 2))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("span", { style: { padding: '0.3em .6em', borderRadius: '0.4em', fontWeight: 'bold', textShadow: '0 2px 10px black', background: (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusColor)(activeQuery, _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme), flexShrink: 0 } }, (0,_utils__WEBPACK_IMPORTED_MODULE_6__.getQueryStatusLabel)(activeQuery))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { marginBottom: '.5em', display: 'flex', alignItems: 'center', justifyContent: 'space-between' } }, "Observers: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, activeQuery.getObserversCount())), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between' } }, "Last Updated:", ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Code, null, new Date(activeQuery.state.dataUpdatedAt).toLocaleTimeString()))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt, padding: '.5em', position: 'sticky', top: 0, zIndex: 1 } }, "Actions"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '0.5em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, { type: "button", onClick: handleRefetch, disabled: activeQuery.state.isFetching, style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.active } }, "Refetch"), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, { type: "button", onClick: function onClick() { return queryClient.invalidateQueries(activeQuery); }, style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.warning, color: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.inputTextColor } }, "Invalidate"), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, { type: "button", onClick: function onClick() { return queryClient.resetQueries(activeQuery); }, style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.gray } }, "Reset"), ' ', /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_styledComponents__WEBPACK_IMPORTED_MODULE_7__.Button, { type: "button", onClick: function onClick() { return queryClient.removeQueries(activeQuery); }, style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.danger } }, "Remove")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt, padding: '.5em', position: 'sticky', top: 0, zIndex: 1 } }, "Data Explorer"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '.5em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Explorer__WEBPACK_IMPORTED_MODULE_9__["default"], { label: "Data", value: activeQuery == null ? void 0 : (_activeQuery$state = activeQuery.state) == null ? void 0 : _activeQuery$state.data, defaultExpanded: {} })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { background: _theme__WEBPACK_IMPORTED_MODULE_8__.defaultTheme.backgroundAlt, padding: '.5em', position: 'sticky', top: 0, zIndex: 1 } }, "Query Explorer"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement("div", { style: { padding: '.5em' } }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_Explorer__WEBPACK_IMPORTED_MODULE_9__["default"], { label: "Query", value: activeQuery, defaultExpanded: { queryKey: true } }))) : null)); }); /***/ }), /***/ "../node_modules/react-query/es/devtools/index.js": /*!********************************************************!*\ !*** ../node_modules/react-query/es/devtools/index.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ReactQueryDevtools: () => (/* reexport safe */ _devtools__WEBPACK_IMPORTED_MODULE_0__.ReactQueryDevtools), /* harmony export */ ReactQueryDevtoolsPanel: () => (/* reexport safe */ _devtools__WEBPACK_IMPORTED_MODULE_0__.ReactQueryDevtoolsPanel) /* harmony export */ }); /* harmony import */ var _devtools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./devtools */ "../node_modules/react-query/es/devtools/devtools.js"); /***/ }), /***/ "../node_modules/react-query/es/devtools/styledComponents.js": /*!*******************************************************************!*\ !*** ../node_modules/react-query/es/devtools/styledComponents.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ActiveQueryPanel: () => (/* binding */ ActiveQueryPanel), /* harmony export */ Button: () => (/* binding */ Button), /* harmony export */ Code: () => (/* binding */ Code), /* harmony export */ Input: () => (/* binding */ Input), /* harmony export */ Panel: () => (/* binding */ Panel), /* harmony export */ QueryKey: () => (/* binding */ QueryKey), /* harmony export */ QueryKeys: () => (/* binding */ QueryKeys), /* harmony export */ Select: () => (/* binding */ Select) /* harmony export */ }); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "../node_modules/react-query/es/devtools/utils.js"); var Panel = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('div', function (_props, theme) { return { fontSize: 'clamp(12px, 1.5vw, 14px)', fontFamily: "sans-serif", display: 'flex', backgroundColor: theme.background, color: theme.foreground }; }, { '(max-width: 700px)': { flexDirection: 'column' }, '(max-width: 600px)': { fontSize: '.9em' // flexDirection: 'column', } }); var ActiveQueryPanel = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('div', function () { return { flex: '1 1 500px', display: 'flex', flexDirection: 'column', overflow: 'auto', height: '100%' }; }, { '(max-width: 700px)': function maxWidth700px(_props, theme) { return { borderTop: "2px solid " + theme.gray }; } }); var Button = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('button', function (props, theme) { return { appearance: 'none', fontSize: '.9em', fontWeight: 'bold', background: theme.gray, border: '0', borderRadius: '.3em', color: 'white', padding: '.5em', opacity: props.disabled ? '.5' : undefined, cursor: 'pointer' }; }); var QueryKeys = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('span', { display: 'inline-block', fontSize: '0.9em' }); var QueryKey = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('span', { display: 'inline-flex', alignItems: 'center', padding: '.2em .4em', fontWeight: 'bold', textShadow: '0 0 10px black', borderRadius: '.2em' }); var Code = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('code', { fontSize: '.9em', color: 'inherit', background: 'inherit' }); var Input = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('input', function (_props, theme) { return { backgroundColor: theme.inputBackgroundColor, border: 0, borderRadius: '.2em', color: theme.inputTextColor, fontSize: '.9em', lineHeight: "1.3", padding: '.3em .4em' }; }); var Select = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.styled)('select', function (_props, theme) { return { display: "inline-block", fontSize: ".9em", fontFamily: "sans-serif", fontWeight: 'normal', lineHeight: "1.3", padding: ".3em 1.5em .3em .5em", height: 'auto', border: 0, borderRadius: ".2em", appearance: "none", WebkitAppearance: 'none', backgroundColor: theme.inputBackgroundColor, backgroundImage: "url(\"data:image/svg+xml;utf8,\")", backgroundRepeat: "no-repeat", backgroundPosition: "right .55em center", backgroundSize: ".65em auto, 100%", color: theme.inputTextColor }; }, { '(max-width: 500px)': { display: 'none' } }); /***/ }), /***/ "../node_modules/react-query/es/devtools/theme.js": /*!********************************************************!*\ !*** ../node_modules/react-query/es/devtools/theme.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ThemeProvider: () => (/* binding */ ThemeProvider), /* harmony export */ defaultTheme: () => (/* binding */ defaultTheme), /* harmony export */ useTheme: () => (/* binding */ useTheme) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "../node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); var defaultTheme = { background: '#0b1521', backgroundAlt: '#132337', foreground: 'white', gray: '#3f4e60', grayAlt: '#222e3e', inputBackgroundColor: '#fff', inputTextColor: '#000', success: '#00ab52', danger: '#ff0085', active: '#006bff', warning: '#ffb200' }; var ThemeContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createContext(defaultTheme); function ThemeProvider(_ref) { var theme = _ref.theme, rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(_ref, ["theme"]); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ThemeContext.Provider, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ value: theme }, rest)); } function useTheme() { return react__WEBPACK_IMPORTED_MODULE_2___default().useContext(ThemeContext); } /***/ }), /***/ "../node_modules/react-query/es/devtools/useLocalStorage.js": /*!******************************************************************!*\ !*** ../node_modules/react-query/es/devtools/useLocalStorage.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ useLocalStorage) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); var getItem = function getItem(key) { try { var itemValue = localStorage.getItem(key); if (typeof itemValue === 'string') { return JSON.parse(itemValue); } return undefined; } catch (_unused) { return undefined; } }; function useLocalStorage(key, defaultValue) { var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default().useState(), value = _React$useState[0], setValue = _React$useState[1]; react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () { var initialValue = getItem(key); if (typeof initialValue === 'undefined' || initialValue === null) { setValue(typeof defaultValue === 'function' ? defaultValue() : defaultValue); } else { setValue(initialValue); } }, [defaultValue, key]); var setter = react__WEBPACK_IMPORTED_MODULE_0___default().useCallback(function (updater) { setValue(function (old) { var newVal = updater; if (typeof updater == 'function') { newVal = updater(old); } try { localStorage.setItem(key, JSON.stringify(newVal)); } catch (_unused2) {} return newVal; }); }, [key]); return [value, setter]; } /***/ }), /***/ "../node_modules/react-query/es/devtools/useMediaQuery.js": /*!****************************************************************!*\ !*** ../node_modules/react-query/es/devtools/useMediaQuery.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ useMediaQuery) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); function useMediaQuery(query) { // Keep track of the preference in state, start with the current match var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default().useState(function () { if (typeof window !== 'undefined') { return window.matchMedia && window.matchMedia(query).matches; } }), isMatch = _React$useState[0], setIsMatch = _React$useState[1]; // Watch for changes react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(function () { if (typeof window !== 'undefined') { if (!window.matchMedia) { return; } // Create a matcher var matcher = window.matchMedia(query); // Create our handler var onChange = function onChange(_ref) { var matches = _ref.matches; return setIsMatch(matches); }; // Listen for changes matcher.addListener(onChange); return function () { // Stop listening for changes matcher.removeListener(onChange); }; } }, [isMatch, query, setIsMatch]); return isMatch; } /***/ }), /***/ "../node_modules/react-query/es/devtools/utils.js": /*!********************************************************!*\ !*** ../node_modules/react-query/es/devtools/utils.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ displayValue: () => (/* binding */ displayValue), /* harmony export */ getQueryStatusColor: () => (/* binding */ getQueryStatusColor), /* harmony export */ getQueryStatusLabel: () => (/* binding */ getQueryStatusLabel), /* harmony export */ isServer: () => (/* binding */ isServer), /* harmony export */ styled: () => (/* binding */ styled), /* harmony export */ useIsMounted: () => (/* binding */ useIsMounted), /* harmony export */ useSafeState: () => (/* binding */ useSafeState) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "../node_modules/@babel/runtime/helpers/esm/extends.js"); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./theme */ "../node_modules/react-query/es/devtools/theme.js"); /* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useMediaQuery */ "../node_modules/react-query/es/devtools/useMediaQuery.js"); var isServer = typeof window === 'undefined'; function getQueryStatusColor(query, theme) { return query.state.isFetching ? theme.active : !query.getObserversCount() ? theme.gray : query.isStale() ? theme.warning : theme.success; } function getQueryStatusLabel(query) { return query.state.isFetching ? 'fetching' : !query.getObserversCount() ? 'inactive' : query.isStale() ? 'stale' : 'fresh'; } function styled(type, newStyles, queries) { if (queries === void 0) { queries = {}; } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef(function (_ref, ref) { var style = _ref.style, rest = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(_ref, ["style"]); var theme = (0,_theme__WEBPACK_IMPORTED_MODULE_3__.useTheme)(); var mediaStyles = Object.entries(queries).reduce(function (current, _ref2) { var key = _ref2[0], value = _ref2[1]; // eslint-disable-next-line react-hooks/rules-of-hooks return (0,_useMediaQuery__WEBPACK_IMPORTED_MODULE_4__["default"])(key) ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, current, typeof value === 'function' ? value(rest, theme) : value) : current; }, {}); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().createElement(type, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, rest, { style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, typeof newStyles === 'function' ? newStyles(rest, theme) : newStyles, style, mediaStyles), ref: ref })); }); } function useIsMounted() { var mountedRef = react__WEBPACK_IMPORTED_MODULE_2___default().useRef(false); var isMounted = react__WEBPACK_IMPORTED_MODULE_2___default().useCallback(function () { return mountedRef.current; }, []); (react__WEBPACK_IMPORTED_MODULE_2___default())[isServer ? 'useEffect' : 'useLayoutEffect'](function () { mountedRef.current = true; return function () { mountedRef.current = false; }; }, []); return isMounted; } /** * This hook is a safe useState version which schedules state updates in microtasks * to prevent updating a component state while React is rendering different components * or when the component is not mounted anymore. */ function useSafeState(initialState) { var isMounted = useIsMounted(); var _React$useState = react__WEBPACK_IMPORTED_MODULE_2___default().useState(initialState), state = _React$useState[0], setState = _React$useState[1]; var safeSetState = react__WEBPACK_IMPORTED_MODULE_2___default().useCallback(function (value) { scheduleMicrotask(function () { if (isMounted()) { setState(value); } }); }, [isMounted]); return [state, safeSetState]; } /** * Displays a string regardless the type of the data * @param {unknown} value Value to be stringified */ var displayValue = function displayValue(value) { var name = Object.getOwnPropertyNames(Object(value)); var newValue = typeof value === 'bigint' ? value.toString() + "n" : value; return JSON.stringify(newValue, name); }; /** * Schedules a microtask. * This can be useful to schedule state updates after rendering. */ function scheduleMicrotask(callback) { Promise.resolve().then(callback).catch(function (error) { return setTimeout(function () { throw error; }); }); } /***/ }) }]); //# sourceMappingURL=e459c6c89c0c0899c850.bundle.js.map Makanan Mie Gacoan Semarang, Rasa Bintang 5 Harga Merakyat === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block. === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block. === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block. === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block. === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block. === console.log('header!'); // Easy to add and display post grid on your website with or without categoryies filter. Also work with Gutenberg shortcode block.

Mie Gacoan: Menikmati Liburan Seru Bersama Keluarga

Mie Gacoan: Menikmati Liburan Seru Bersama Keluarga

Apa itu mie gacoan?

Mie Gacoan Adalah Salah Satu Restoran Yang Terkenal Di Indonesia, Khususnya Di Kalangan Pecinta Kuliner Mie. Dengan Konsep Dengan Menyajikan Mie Pecas Yang Menggugah Selera, Mie Gacoan Menjadi Destinasi Kuliner Yang Menarik Bagi Keluarga Yang Ingin Menikmati Hidangan Bersama. Restoran ini menyajikan berbagai macam mie level variasi level kepedasan, mulai Dari yang ridak untuk anak-anak-anak hingga yang ekstrem bagi para penggemar pedas sejati.

Alasan Memilih Mie Gacoan Bersama Keluarga

  1. Variatif menu

    Menu Mie Gacoan Menawarkan Pilihan Yang Sangan Beragam. Selain Mie, Anda Jaga Dapat Menemukan Hidangan Lainnya Seperti Ayam Goreng, Pangsit, Dan Makanan Penutup. Ini anggota kesempatan bagi setiap anggota keluarga untuk menemukan sesuatu yang sesuai gangan selera masing-masing.

  2. Pedas tingkat ragam

    Salah Satu Daya Tarik Utama Mie Gacoan Adalah Tingkat Kepedasan Yang Dapat Dapatika. Mereka Menawarkan Beberapa Level Kebpedasan, Mulai Dari Level 1 Hingga Level 10. INI SANGAT COCOK UNTUK KELUARGAGAN ANAK-ANAK YANG MUMKKIN TIDAK TERBIASA PEDAGAN DANGAN PEDASA. Anda Bisa Memesan Berbagai Tingkat Kepedasan Dan Semua Anggota Keluarga Bisa Terlibat Dalam Pengalaman Makan Yang Menyenangkan.

  3. SUASANA KELUARGA YANG NYAMAN

    Mie Gacoan Didesain Gangan Suasana Yang Ramah Keluarga. Dekorasi Yang Unik, Pencahayaan Yang Lembut, Area Serta Duduk Yang Luas membuate restoran ini menjadi tempat yang ideal unkumpul. Anda Bisa Menikmati Makanan SAMBIL BERBINCANG dan TERTAWA BERSAMA ANGGOTA KELUARGA.

  4. Harganya Terjangkau

    Salah Satu Kelebihan Mie Gacoan Adalah Harak Yang Terjangkau. Anggaran Delan Yang Relatif Kecil, Anda Bisa Menikmati Makanan Lezat Tanpa Menguras Kantong. Ini tentunya menjadi daya tarik bagi keluarga yang ingin Mengajak semua anggota menikmati hidangan Bersama.

Menu Unggulan Di Mie Gacoan

  1. Mie Gacoan Pedas

    Mie Gacoan Terkenal Delang Mie Parate Mereka Yang Khas. Hidangan Ini Hadir Gelan Berbagai Topping, Seperti Daging Ayam, Bakso, Dan Sayuran. Anda Bisa memilih level pedas sesuai gargan selera, sehingga setiap suapan bisa menalaman Yangi Berkesan.

  2. Ayam Goreng Gacoan

    Selain Mie, Mie Gacoan Rona Menawarkan Ayam Goreng Yang Renya. Ayam Goreng Ini Diolah Delangan Bumbu Yang Khas Dan Memiliki Citarasa Yang Menggugah Selera. Cocok Dihidangkan Sebagai Lauk Pendamping Mie.

  3. PangSit Goreng

    Pangsit Goreng di Mie Gacoan Merupakan Camilan Sempurna untuk Menemani Hidangan Utama. DENGAN KULIT YANG RENYAH DAN ISIAN YANG KAYA RASA, INI ADALAH PILihan Ideal untuk dibagikan Bersama Keluarga.

  4. Es teh manis

    Tagus menyeimbangkangkan rasa pedas, dan jagA bisa mencoba es teh manis yang segar. Minuman ini sangat cocok unkulegarkan tenggorokan Pasca menikmati Sajian Mie Yang Peda.

TIPS UNTUK MEMPERSembahkan Pengalaman Makan Yang Tak Terlupakan

  • Pesan Beberapa Varian

    Saran Terbaik Adalah Memesan Beberapa Varian Menu UNTUK MENCIPTAK PENGALAMAN BERBAGI. DENGAN Memesan Beberapa Jenis Mie Dan Lauk, Seluruh Keluarga Dapat Mesicicipi Berbagai Rasa Yang Ditawarkan.

  • Ajak Anak Memilih

    Biarkan anak-anak memilih tingkat pedas mereka sendiri. Ini Akankan Membuat Mereka Merasa Terlibat Dalam Pengalaman Makan Dan Dapat Menghargai Makanan Yang Mereka Pesan.

  • Jangan Lupakan Camilan

    Setiap kali anda Mengunjungi mie gacoan, jangan lupa unka memesan camilan seperti pangsit atuu kerupuk. Ini Akankan Menjadi Pelengkap Yang Menyenangkan Selama Waktu Makan.

  • SIMPAN RUANG UNTUK DESSERT

    MIE GACOAN RUGA MENAWIKAN PILIHAN DESSERT YANG LEZAT. Setelah Menikmati Hidangan Utama, Jangan Lupa Untuce Mencoba Makanan penutup ini Sebagai Penutup Yang Manis.

Aktivitas seru selama berkunjung

Mengunjungi Mie Gacoan Bukan Hanya Soal Makan; Anda JuGA BISA MENGABISKAN Waktu Berkualitas Anggan Keluarga. Beberapa Aktivitas Seru Yang Bisa Dilakukan Sebelum Atau Setelah Makan Antara Lain:

  1. Berfoto Keluarga

    Setiap sudut Dari restoran ini dirancang gargan oktod menjadi latar Belakang yang sempurna unkin berfoto bersama keluarga. Abadikan Momen Bahagia Ini Dan Jadikan Kenangan Yang Tak Terlupakan.

  2. Bermain Permaita Keluarga

    Siapkan Beberapa Permaita Sederhana Yang Bisa dan Mainkan Mainkan SAMBIL MERUNGGU PESANAN DATANG. Ini bisa parahadi ajang interaksi seru antara anggota keluarga, menhidupkan suasana di meja Makan.

  3. Coba Mie di level Berbeda

    Tantang keluarga dan unkoba mencoba mie dalam berbagai tingkat kepedasan. Buatlah tantangan, Seperti Siapa Yang Bisa Bertahan Hingga Level Tertinggi Atau Siapa Yang Bisa Menikmati Mie Paling Pedas. Ini Akan Menambah Keseruan Saatt Makan Bersama.

  4. Menyusun Rencana Liburan

    Selama Menikmati Moranan, Anda Bisa Merencanakan Liburan Keluarga BerIKUTNYA. Diskusikan tempat-tempat yang ingin dikunjungi dan aktivitas yang Akan dilakukan selama liburan.

Lokasi Dan Jam Operasional

Mie Gacoan Memilisi Beberapa Cabang Yang Tersebar di Berbagai Kota Di Indonesia. Pastikan unkaKsa lokasi terekat Dari tempat tinggal anda.

Mie Gacoan Biasanya Buka Dari Sore Hingga Malam Hari. Namun, Jam Buka Dapat Bervariasi Tergantung Pada Lokasi, Jadi Penting Untuca Informasi Terkini Sebelum Pergi.

Kesimpulan

Mie Gacoan Adalah Pilihan Yang Ideal untuk Keluarga Yang Ingin Menikmati Liburan Yang Menyenangkan Sarik Menikmati Hidangan Yang Bergugah Selera. Menu Variasi Daman Yang Beragam, Suasana Ramah Keluarga, Dan Harga Yang Terjangkau, Tidak Ada Alasan Untuc Tidak Mencoba Mie Gacoan Saik Merencanakan Keluar Keluarga. Ajak Seluruh Anggota Keluarga dan tuukur Menikmati Pengalaman Kuliner Yang Penuh Kecerian Dan Kelezatan!

Mie Gacoan: Nikmati Sensasi Pedas Akhir Pekan Ini

Mie Gacoan: Sensasi Pedas Yang Menggugah Selera

Mie Gacoan telah menjadi shalat satu tempat kuliner Yang Banyak dibicarakan di Indonesia, terutama bagi para pentencta Makans Pedas. Terkenal Gelankat Kepedasan Yang Bervariasi, Mie Ini Menawarkan Pengalaman Yang Tidak Hanya Lezat Tetapi Rugna Menggugah Adrenalin Bagi Para Pencobanya. BAGI Kalian Yang Berencana Menghabikans Akhir Pekan Gangan Santapan Yang Menyenangkan, Mie Gacoan Bisa Menjadi Pilihan Yang Tepat.

Menu Mie Gacoan Yang Beragam

Di Mie Gacoan, Kalian Akan Menemukan Berbagai Menu Pilihan Mie Yang Bisa Disesuaika Dangan Selera Masing-Masing. Menariknya, Mie di Sini Dialah Delangan Resep Unik Yang Memadukan Bumbu-Bumbu Khas Indonesia. Menu BerIKUT ADALAH BEBERAPA Favorit Yang Patut Dicoba:

  1. Mie Gacoan Pedas: Menu Andalan Yang Menjadi Favorit Banyak Orang. Diolak Delangu Bumbu Rahasia Yang Anggota Rasa Pedas Yang Mantap, Cocok Untuc Kalian Yang Berani Mencoba Tantangan Peda.

  2. Mie Kuah: BAGI YANG TIDAK TERLALU MENYUKAI MIE KERING, MIE KUAH DI MIE GACOAN MENAWIKAN SENSASI HANGAT DENGAN KALDU YANG GURIH. Kombinasikan Gangan Berbagai Topping Seperti Ayam, Bakso, Atau Tahu.

  3. Mie Campur: Menu ini merupakan kombinasi Dari mie kering dan kuah, anggota pengalaman anggota lebih anggota lebih. Kalian Bisa Menambahkan Sayuran Segar untuk Menambah Kesegaran.

  4. Bakso Dan Tahu: Selain MI, Mie Gacoan Rona Menyediakan Bakso Dan Tahu Yangok Cocok Dipadukan Gelan Mie. Rasanya Yang Lezat Dan Kenyal Membuat Sajian ini Sempurna.

Sensasi Pedas Yang Tak Terlupakan

Salah Satu Daya Tarik Utama Mie Gacoan Adalah Tingkat Keppedasanya Yang Bervariasi. DENGAN RENI DARI LEVEL 1 HINGGA LEVEL 10, Para Pelangankannya Bisa Memilih Sesuai Delangan Selera Dan Keberanian Mereka. UNTUK PEMULA, DISANANANANS UNTUK MULAI DARI LEVEL 1 ATAU 2, LALU SECARA BERTAHAP MENINGKATKAN LEVEL KEDASAN. Mie gacoan bara anggota rekomendasi kepada pelangan yang ingin mesiCicipi sensasi ekstrem dergan level 10 – hanya unktas Yang Berani!

Kepedasan Tidak Hanya Dataang Dari Cabai, Tetapi Rona Dari Campuran Rempah-Rempah Yang Membuat Setiap Suapan Menjadi Eksplorasi Rasa Yang Mengesankan. Jika Kalian menari Tantangan Kuliner, Mie Gacoan Akan Anggota Pengalaman Tak Terlupakan.

Atmosfer Yang Nyaman

SUASANA DI MIE GACOAN MUGA SANGAT MENDUKUNG UNTUK MENIKMATI Waktu BERSANTAP Yang Menyenangkan. DENGAN DESAIN INTERIOR YANG MODERN DAN BERSIH, TEMPAT INI MANDICAN KENYAMANAN BAGI PARA PENGUJUNG. Banyak Cabang Di Berbagai Lokasi Menjadikan Mie Gacoan Muda Diakses Bagi Semua Kalangan.

Selain Itu, Mie Gacoan Sering Kali Menjadi Tempat Berkumpulnya Para Pemuda, Sewingga Menciptakan Suasana Yang Ramai Dan Hangat. Tempat ini bagi ideal bagi keluarga yang ingin menikmati coran Malam sAMBIL BERCENGKERAMA.

Tip Menikmati Mie Gacoan

UNTUK PENTUMAN MAKSIMAL SAAT BERKUNJUNG KE MIE GACOAN, SIMAK BEBERAPA TIPS BERIKUT:

  • DATANG LEBIH AWAL: Mie Gacoan Sering Kali Dipenuhi Pengunjung Terutama Di Akhir Pekan. Jika Ingin Menikmati Waktu Tanpa Antrean Panjang, Datanglah Lebih Awal, Apalagi Saat Jam Makan Siang Atau Malam.

  • Cobalah berbagai level pedas: Jika Kalian Penggemar Pedas, Jangan Ragu Unkoba Berbagai Level Dari Menu Mie. Siapa Tahu, Kalian Bisa Menemukan Level Yang Paling Cocok FUlTU Selera Kalian.

  • Pesan Berbagai Topping: TUKUTIMATI MIE LEBIH BERVARIASI, PESANNAA BISA DITAMBAHKAN DENGAN BERBAGAI Topping Seperti Sayuran, Bakso, Atau Tahu UNTUK Menambah Cita Rasa.

  • Sediakan Air Putih: Meskipun Ini Adalah Hidangan Pedas, Jangan Lupa Taktum Menyediakan Air Putih Sebagai Peyeimbang. Ini sangat memping khususnya jika kalian memilih tingkat kepedasan yang tinggi.

Mie gacoan di media sosial

Berkenalan Gelan Mie Gacoan Tidak Lengkap Tanpa Mencermati Kehadiranya di media sosial. Berbagai Foto Dan Ulasan Positif Bertebaran Di Platform Seperti Instagram Dan Tiktok. Pelanggan Seringkali Membagikan Momen Saat Menikmati Mie Delangan Tampilan Yang Memeukau, Menggugah Selera Banyak Orang Lainnya Twtak Ikut Serta.

Bergabung di Komunitas Online, Kalian Bisa Menemukan Tips Dan Rekomendasi Dari Para Penggemar Lainnya, Sekaligus Berbagi Pengalaman Pribadi. Ini menjadi cara seru untker Merayakan Kecintaan Terhadap Makanan Pedas.

Komitmen Terhadaap Kualitas

Mie Gacoan Sangan Memperhatikan Kualitas Bahan Baku Yang Digunakan. DENGAN MEMILIH BAHAN-BAHAN SEGAN DAN BERKUALITAS, MEREKA BERTUJUAN UNTUK ANGGOLAN Pengalaman Kuliner Yang Terbaik Bagi Pelangangan. Kerbersihan Dan Keamanan Makanan Diutamakan, Sehingga Kalian Tidak Perlu Khawatir Akan Kesehatan Saattap Hidangan Di Sini.

Perhatian Terhadap Detail Dalam Penyajian Jagi Sangan Diperhatikan. Setiap Piring Disajikan Dengan Estetika Yang Apik, Sehingga Memanjakan Mata Sebelum Menikmati Rasananya.

Kesimpulan

Akhir Pekan Ini, Jika Kalian Ingin Mencari Sensasi Baru Dalam Menikmati Moranan, Mie Gacoan Layak Menjadi Pilihan Utama. Menu Nikmati Berbagai Yang Siap Menggoyang Lidah Kalian Delangan Sensasi Pedas Yang Ditawarkan. Rasakan Kehangatan Dan Kenikmatan Di Setiap Suapan, SAMBIL BERBAGI CERITA DAN TAWA BERSAMA SAHABAT ATAU KELUARRA. Selamat Menikmati!

MIE GACOAN: Kegembiraan kuliner untuk perayaan Hari Raya

MIE GACOAN: Kegembiraan kuliner untuk perayaan Hari Raya

Sejarah dan Asal mula Mie Gacoan

Mie Gacoan melacak akarnya kembali ke budaya makanan jalanan Indonesia yang semarak, khususnya muncul dari jalan -jalan Jawa yang ramai. Hidangan tercinta ini telah berubah menjadi bahan pokok khas di pertemuan meriah, terutama selama Hari Raya, sebuah perayaan signifikan yang menandai akhir Ramadhan. Gacoan sendiri mencerminkan perpaduan tradisi kuliner dari Indonesia, menekankan rasa yang kaya dan beragam tekstur, yang beresonansi secara mendalam dengan semangat meriah.

Fitur unik Mie Gacoan

Mie Gacoan membedakan dirinya dengan perpaduan unik dari bahan dan rasa, menjadikannya hidangan yang dicari selama Hari Raya.

  1. Variasi mie: Basis Mie Gacoan adalah mie segar dan kenyal. Mie ini biasanya dibuat dari tepung gandum, menghasilkan tekstur yang memuaskan yang menyerap rasa dengan baik. Hidangan ini sering menampilkan kombinasi mie kuning dan mie telur, menambah kontras yang menyenangkan.

  2. Kaldu yang lezat: Kaldu adalah komponen yang menonjol, sering terbuat dari tulang atau ayam yang direbus, diresapi dengan rempah -rempah seperti bawang putih, jahe, dan bawang merah. Kaldu aromatik ini kaya dan sangat memuaskan, memberikan latar belakang yang sempurna untuk mie.

  3. Topping berlimpah: Apa yang membuat Mie Gacoan sangat menarik adalah serangkaian topping yang dapat disesuaikan sesuai dengan preferensi pribadi. Topping umum termasuk potongan ayam yang lembut, tahu goreng, telur rebus, dan bermacam -macam sayuran seperti bok choy dan tauge. Warna dan tekstur yang semarak membuatnya menarik secara visual.

  4. Saus pedas: Saus pedas khas, terbuat dari cabai, bawang putih, dan rempah -rempah lainnya, menambahkan tendangan yang terbakar ke piring. Saus ini sering disajikan di samping, memungkinkan pengunjung untuk menyesuaikan panas sesuai keinginan mereka.

Signifikansi Budaya Selama Hari Raya

Hari Raya adalah waktu perayaan, rasa terima kasih, dan berbagi di antara orang -orang yang dicintai. Hidangan yang disajikan selama waktu perayaan ini memiliki makna budaya yang mendalam, melambangkan persatuan dan kelimpahan. Mie Gacoan bukan hanya makanan; Ini adalah cara bagi keluarga untuk berkumpul dan merayakan akhir Ramadhan. Tindakan mempersiapkan dan berbagi hidangan seperti Mie Gacoan menumbuhkan ikatan komunal dan membangkitkan perasaan nostalgia, ketika keluarga berkumpul untuk menghormati tradisi yang diturunkan dari generasi ke generasi.

Mempersiapkan Mie Gacoan untuk Hari Raya

Bahan-bahan:

  1. Mie:

    • Mie kuning 400g
    • Mie telur 200g
  2. Kaldu:

    • Stok ayam 1 liter
    • 400g paha ayam, potong berkeping -keping
    • 4 cengkeh bawang putih, cincang
    • 2 bawang merah, diiris
    • Jahe 1 inci, diiris
    • Garam dan merica secukupnya
  3. Topping:

    • 200g tahu goreng, dadu
    • 4 telur rebus, dibagi dua
    • Kecambah kacang 100g
    • 2 cangkir bok choy, pucat
  4. Saus pedas:

    • 5 cabai merah
    • 5 cengkeh bawang putih
    • 1 sdt gula
    • 2 sdm cuka
    • Garam secukupnya

Instruksi memasak

  1. Siapkan kaldu: Dalam panci besar, panaskan minyak di atas api sedang. Tambahkan bawang putih, bawang merah, dan jahe, tumis sampai harum. Tambahkan potongan ayam dan masak sampai kecoklatan ringan. Tuangkan kaldu ayam, bumbui dengan garam dan merica, dan biarkan mendidih selama sekitar 30 menit sampai ayam empuk.

  2. Masak mie: Saat kaldu mendidih, didihkan panci air. Masak mie kuning dan telur secara terpisah sesuai dengan instruksi paket. Kuras dan sisihkan.

  3. Siapkan topping: Blanch bok choy dan tauge dalam air panas selama beberapa menit. Goreng kubus tahu sampai berwarna cokelat keemasan. Rebus telur, kupas, dan potong menjadi dua.

  4. Membuat saus pedas: Campurkan cabai merah, bawang putih, gula, cuka, dan garam bersama sampai halus. Sesuaikan bumbu secukupnya.

  5. Rakit piring: Dalam porsi mangkuk, tempatkan sebagian mie, sendokkan di kaldu panas dengan ayam, dan atur topping di atasnya. Peras beberapa jus jeruk nipis di atas mie untuk zing ekstra, dan sajikan saus pedas di sampingnya.

Saran Melayani

Mie Gacoan bersinar saat disajikan segar dengan hiasan yang semarak. Bagi mereka yang merayakan Hari Raya, pertimbangkan untuk memasangkan hidangan yang menyenangkan ini dengan camilan tradisional Indonesia seperti Kue Lebaran atau kue -kue gurih. Kombinasi ini akan menciptakan prasmanan meriah yang merayakan esensi liburan.

Variasi Mie Gacoan

  1. Versi vegetarian: Ganti ayam dengan jamur atau tempe untuk pilihan ramah vegetarian. Gunakan stok sayuran untuk mempertahankan rasa yang kaya.

  2. Variasi makanan laut: Menggabungkan udang atau bola ikan, menambahkan profil protein yang berbeda yang melengkapi hidangan dengan indah.

  3. Sambal: Bagi mereka yang mencari lapisan rasa ekstra, pertimbangkan untuk menambahkan Sambal, pasta cabai tradisional Indonesia, yang dapat melengkapi saus pedas.

Aspek Nutrisi

Mie Gacoan bisa menjadi makanan yang seimbang, menyediakan karbohidrat dari mie, protein dari ayam atau tahu, dan vitamin dari sayuran. Saat disiapkan dengan pendekatan yang penuh perhatian untuk topping, itu bisa menjadi hidangan bergizi yang cocok untuk pertemuan keluarga.

Kesimpulan: Perayaan di atas piring

Mie Gacoan melambangkan kegembiraan dan kehangatan Hari Raya melalui citarasa dan varietasnya yang kaya. Setiap mangkuk menyatukan tradisi dan modernitas, memberikan pengalaman kuliner yang tak terlupakan yang memperkuat ikatan komunal dan menghidupkan kembali kenangan yang berharga. Apakah dinikmati di pasar yang ramai atau di pertemuan keluarga, Mie Gacoan tetap menjadi favorit yang mengangkat semangat meriah, menjadikannya hidangan penting untuk perayaan tersebut.

Mie Gacoan: Menu Spesial untuk Bucka Puasa

Mie Gacoan: Menu Spesial untuk Bucka Puasa

Mengenal Mie Gacoan

Mie Gacoan Menjadi Salah Satu Destinasi Kuliner Favorit di Indonesia, Terutama Saat Bulan Ramadhan. Dengan Varian Dengan Mie Yang Beragam Dan Cita Rasa Yang Menggugah Selera, Mie Gacoan Menawarkan Menu Spesial Yang Sangat Cocok Untak Berbuka Puasa. Apabila dan tempat menik tempat menikmati hidangan lezat setelah Seharian Berpuasa, Mie Gacoan Adalah Pilihan Yang Tepat.

Menu Pilihan Spesial untuk Buca Puasa

Mie Gacoan Memiliki Banyak Pilihan Menu Yang Menarik. Mari Kita Telusuri Beberapa Menu Spesial Mereka Yangin Minjkin Akan Favorit Anda Anda Sabat Berbuka Puasa:

1. Mie Gacoan Asli

Menu Yang Satu ini menjadi tanda tangan Diri restoran. Mie Gacoan Disajikan Dengan Bumbu Rahasia Yang Yang Membuatinya Sangan Lezat. Tekstur Mi Yang Kenyal Berpadu Delangan Rasa Pecas Yang Dilengkapi Gelanan Irisan Sayuran Segar, Hidangan Ini Tidak Hanya Menggugah Selera Tetapi Juta Kaya Gizi.

2. Mie Ayam Pancet

Mie Ayam Pancet Menawarkan Kombinasi Sempurna Antara Mie Dan Daging Ayam Yang Dimasak Daman Bumbu Khas. Daging Ayam Yang Lembut Disajikan Delangan Mie Yang Empuk, Ditambah Daman Kecap Manis Dan Bawang Goreng Anggota Rasa Yang Mendalam. Menu ini sangat populer di Kalangan Pengunjung, Terutama Mereka Yangi MenyUKAI Citarasa Manis Dan Gurih.

3. Mie Peda

BAGI PENGEMAR MAKANAN PEDAS, MIE PUDAS MIE GACOAN ADALAH PILihan Terbaik. Tingkat gangan keredasan yang dapat disesuaikan, dari bisa menantang diri untkat merasakan pedasnya sarik menari tantangan. Mie Ini Disajikan Delangu Bumbu Rawit Segar, Bawang Putih, Dan Tambahan Susunan Sayuran, Menciptakan Cita Rasa Yang Bercampur Lezat.

4. Spesial Mie Gacoan

Mie Gacoan Spesial Menggabungkan Semua Elemen Favorit Ke Dalam Satu Piring Besar. Delanan Tambahan Telur Puyuh, Bakso, Dan Sayuran, Menu Ini Menjadi Pelengkap Ideal Setelah Seharian Berpuasa. Keberagaman Topping Memperaya Suapan Menjadi Pendalaman Baru Yang MeBperkaya Rasa.

Menu Pendamping Yang Menggoda

Tak Hanya Mie, Mie Gacoan Rona Menyajikan Berbagai Menu Pendamping Yang Dapat Melengkapi Hidangan Utama Anda.

1. Tahu Tempe Crispy

Sebagai Pelengkap, Tahu Tempe Crispy Sangan Cocok Untukur Dinikmati. Garing di Luar Dan Lembut di Dalam, Tahu Dan Tempe Ini Dibumbui Dengan Rempah Alami, Protein Tambahan, Protein Bagi Santapan Anda. Makanan ini Akan Menambah Kelezatan Serta Tekstur Yang Berbeda Saat Saat Berbuka.

2. Kerupuk Pedas

Kerupuk pedas Dari mie gacoan merupakan camilan Yang pas tutka menemani mie. Delana Rasa Pedas Yang Seimbang, Kerupuk ini Menambah Keseruan Sabat Menikmati menu utama. Kombinasi Antara Kerupuk Renya Dan Mie Yang Kenyal Anggota Perpaduan Rasa Yang Menyenangkan.

3. Es Teh Manis

Minuman Yang Satu Ini Menjadi Pilihan Klasik Untkul Berbuka Puasa. Es teh manis di mie gacoan memilisi rasa yang segar Dan manis, sangat cocok uNTUK menetalkan Rasa pedas Dari Hidangan Mie. Jika anda ingin variasi, cobalah es teh serut gelan tambahan lemon unk Sensasi Yang lebih Menyegarkan.

Menyusun Paket Buka Puasa

Mie Gacoan Menawarkan Pilihan Paket Berbuka Puasa Yang Bermanfaat Bagi dan Yang Dataang Bersama Keluarga Atau Teman. Paket ini biasanya terdiri Dari Pilihan Mie, Pendamping, Dan Minuman, Sewingga dan Tidak Perlu Repot Memilih Satu per Satu.

SUASANA DAN PELYANAN

Mie Gacoan Terkenal Dargan Suasana Yang Hangat Dan Ramah. Tempat Ini Selalu Penuh Pengunjung, Terutama Saik Berbuka Puasa. Pelayanan Yang Cepat Dan Efisien Membuat dan Tidak Perlu Menunggu Lama untuk Menikmati Hidangan. Selain Itu, Desain Interior Yang Modern Dan Nyaman Menciptakan Lingkungan Yang Ideal untuk Bersantai Sarik Menikmati Hidangan.

Makanan Sehat Dan Bergizi

SAAT MENJALANANKAN PUASA, PENTING MENJAJA MERJAGA ASUPAN GIZI. Mie Gacoan Berkomitmen untuk Menyajikan Bahan-Bahan Segar Dan Berkualitas. Mie Yang Mereka Gunakan Tidak Hanya Enak Tetapi JUGA KAYA AKAN Karbohidrat Yang Dibutuhkan Setelah Seharian Berpuasa. Delanginasi Sayuran, Daging, Dan Bumbu Alami, Makanan Ini Tidak Hanya Lezat Tetapi Juta Menyehatkan.

Kesimpulan Rasa Yang Tak Terlupakan

Mie Gacoan Menawarkan Berbagai Menu Pilihan Yang Sempurna UNTUK BERBUKA PUASA. DGANGAN RAGAM Cita Rasa Dan Pilihan Yang Beragam, Menu Setiap Di Sana Dirancang Unkulan Pengalaman Kuliner Yang Menyenangkan. Apakah Anda Penyuka Mie, Pedas, Atau Yang Manis, Mie Gacoan Memilisi Sesuatu untuk semua Orang. Komitmen Daman Pada Kualitas Dan Pelayanan Yang Baik, Mie Gacoan Pantas Paraadi Lokasi Pilihan Saat Saat Berbuka Puasa. Nasib Perut Anda Akan Berterima Kasih Ketika Anda Merasakan Hidangan Spesial Mereka.

Mie Gacoan: Kenikmatan Tak Terlupakan Saat Lebaran

Mie Gacoan: Kenikmatan Tak Terlupakan Saat Lebaran

Sejarah Dan Asal Usul Mie Gacoan

Mie Gacoan Adalah Salah Satu Kuliner Populer Di Indonesia, Khususnya Di Kalangan Kaum Muda. Mie ini pertama kali dipkenalkanon di surabaya, Yang Denkenal Sebagai Pusat Kuliner Yang Kaya. Mie Gacoan Menawarkan Cita Rasa Yang Berbeda Gangan Paduan Rempah Tradisional Dan Bahan Berkualitas. Dalam Setiap Suapan, Penggemar Kuliner Dapat Merasakan Kelezatan Mie Yang Kenyal Dan Bumbu Yang Kaya, Menjadikananya Favorit Dalam Berbagai Kesempatan, Termasuk Saat Lebaran.

Varian Mie Gacoan

Mie Gacoan Hadir Delangan Berbagai Varian Yang Menarik, Membuat Setiap Orang Dapat Menemukan Favorit Mereka. Beberapa Varian Yang Paling Populer Adalah:

  1. Mie Gacoan Asli: Mie Yang Disajikan Demat Bumbu Khas Yang Membuat Rasananya Otentik Dan Menggugah Selera.
  2. Mie Gacoan Pedas: BAGI PENGEMAR MAKANAN PEDA, VARIAN INI ADALAH PILihan Yang Tepat. Disajikan gangal sambal pedas yang membuate pembalaman Makan Semakin Berkesan.
  3. Mie Gacoan Seafood: Menggunakan Bahan Segar Seperti Udang Dan Cumi, Varian Ini Cocok Bagi Mereka Yang MenyUKAI MAKANAN LAUT.
  4. Mie Gacoan Ayam: DiKenakan Gelan Potongan Ayam Empuk, varian ini menjadi favorit BAGI KELUARGA YANG MENCARI MAKANAN SEHAT DAN LEZAT.

Selingan lezat: topping menarik

Tidak Lengkap Rasananya Menikmati Mie Gacoan Tanpa Tambahan Topping Yang Mengenakan Hidangan Ini. Beberapa topping menarik yang sering dipilih antara lain:

  • Bakso: Kenyal Dan Gurih, Bakso Menambahkan Tekstur Dan Cita Rasa Yang Berbeda Pada Mie.
  • TAHU TEMPE: Pilihan Yang Baik Baik Vegetarian. Tahu Dan Tempe Protein Menambah Dan Serat Pada Hidangan.
  • Sayuran Segar: Paduan Sayuran Seperti sawi Hijau atuu Kol Anggota Kesegaran Serta Melengkapi Rasa Mie.

Pengalaman Menikmati Mie Gacoan Di Momen Lebaran

Selama Perayaan Lebaran, Mie Gacoan Menjadi Salah Satu Pilihan Hidangan Yang Menggugah Selera. HANGATA SUASANA DAN KERBERSAMAAN KELUARGA, MENIKMATI MIE INI MENJADI PENGALAMAN TAK TERLUPAKAN. Mie Gacoan Bisa Disajikan Sebagai Menu Utama Atau Sebagai Makanan Pendamping Saat Berkumpul Bersama Teman Dan Sanak Keluarga.

Tempat Terbaik untuk Menikmati Mie Gacoan

Di Indonesia, Terutama Di Kota-Kota Besar, Terdapat Berbagai Cabang Mie Gacoan Yang Mudah Ditemukan. Beberapa Tempat Yang Populer Di Kalangan Pengunjung Meliputi:

  • Mie Gacoan Surabaya: Merupakan Cabang Pertama Dan Menjadi Ikon Kuliner Surabaya.
  • Mie Gacoan Jakarta: Lokasi ini menawarkan SUASANA YANG MODERN DAN NYAMAN UNTUK BERANTAP.
  • Mie Gacoan Bandung: Mie Gacoan di Bandung Dengan Dengan Variasi Menu Yang Lebih Beragam Dan Pelayanan Yang Ramah.

Proses Penyajian Mie Gacoan

Salah Satu Faktor Yang Membuat Mie Gacoan Begitu ISTimewa Adalah Cara Penyajiannya Yang Cepat Dan Efisien. Begitu Pelanggan Memesan, Setiap Porsi Mie Disiapkan Dengan Hati-Hati. Mie Direbus Hingga al Dente Dan Dicampur Delangan Bumbu-Bumbu Segar, Menghasilkan Aroma Yang Menggoda. Pelanggan Bisa Melihat Langsung Proses Ini, Menambah Daya Tarik Pengalaman Bersantap.

Momen spesial gelan mie gacoan

SAAT LEBARAN, MIE GACOAN SERING KALI MENJADI PILIHAN UTAMA SAAT MENGADAKAN OPEN HOUSE ATAU KUMPUL KELUARGA. Menu Keberagaman Serta Cita Rasa Yang Pas di Lidah Menjadikananya Sebagai Magnet BABI BANYAK PENGUJUNG. Berbagi Semangkuk Mie Gacoan SAMBIL BERCERITA DAN TERTAWA DI LINGKUNGAN KELUARGA, MENCIPTAK MEMORI INDAH YANG SULIT UNTUK DILUPAKAN.

Tip Menikmati Mie Gacoan

Agar Pengalaman Makan Mie Gacoan Semakin Maksimal, BerIKUT ADALAH BEBERAPA Tips Yang Bisa DiIKuti:

  • Pilih Varian Favorit: Sebelum Datang, Kenali Varian apa Yangkin Disuka Keluarga. Cobalah Satu Atau Dua Jenis Agar Bisa Berbagi Rasa.
  • Jangan Lupa Topping: Eksplorasi topping Yang Berbeda untuk meningkatkan Cita rasa mie.
  • BERKUMPUL UNTUK BOKAN BERSAMA: Nikmati Mie Gacoan Delangan Keluarga Atau Teman-Teman Agar Suasana Semakinin Meriah.
  • Jadikan ini sebagai tradisi: Buat mie gacoan Sebagai Bagian Dari Perayaan Lebaran Setiap Tahunnya.

Ulasan Pengunjung

Banyak Pengunjung Yang Anggota Ulasan Positif Tentang Mie Gacoan. Kebanyakan Menggambitan Rasa Yang Lezat Dan Nikmat, Serta Pelayanan Yang Baik. “Mie Gacoan Adalah Pilihan Tepat untuk Acara Keluarga. Rasa Yang Luar Biasa Dan Pelayanananya Ramah,” Kata Salah Satu Pengunjung Setia.

Mie Gacoan Dan Tren Kuliner

Di Tengah Perkembangan Dunia Kuliner, Mie Gacoan Tetap Bertahan Dan Bahkan Semakin Populer. Kombinasi Antara Rasa Autentik Dan Inovasi Yang Terus Menerus Membuatinya Menarik di Mata Pelangan. Dalam momen spesial seperti lebaran, kuliner ini semugnin menuatkan ikatan antara oran-orang yang Berkumpul.

Mie gacoan dalam media sosial

Saat ini, Mie Gacoan Rona Banyak Dibicarakan di media sosial. Foto-foto Menarik Dari Pelanggan Yang Menikmati Mie Ini Menghiasi Berbagai Platform, Mulai Dari Instagram Hingga Tiktok. Momen Berbagi Pengalaman Kuliner Secara Visual Sangat Menguatkan Posisi Mie Gacoan Sebagai Salah Satu Pilihan Kuliner Teratas Saat Perayaan Lebaran.

Promo Program Dan Diskon Khusus

Mie Gacoan Sering Mengadakan Promo Dan Diskon Spesial Saatal Lebaran. Pelanggan Bisa Mendapatkan Potongan Haran BuTUK Pembelian Besar ATAU Program Bundling. Hal ini semakin menarik banyak orang unkmati sebungkus mie gacoan.

Kesimpulan: Mie Gacoan Sebagai Pilihan Cita Rasa Lebaran

Mie Gacoan Bukan Hanya Sekedar Hidangan, Tetapi Jaga Pengalaman Yang Layak Tutk Dirayakan Di Setiap Momen Spesial, Terutama Saat Lebaran. Daman Rasa Yang Lezat, Menu Variasi Yang Menggoda, Dan Atmosfer Yang Hangat, Mie Gacoan Menjadikan Setiapan Suapan Tak Terlupakan. Pilihan ini Jadi Semakin Ideal Di Tengah Pembersama, Yang Menjadi Esensi Dari Perayaan Lebaran Itu Sendiri.

Mie Gacoan: Menggugah Selera Di Tahun Baru

Mie Gacoan: Menggugah Selera Di Tahun Baru

Mie Gacoan Adalah Salah Satu Destinasi Kuliner Yangin Populer Di Indonesia. Ketika Memasuki Tahun Baru, Banyak Orang Mensari Pengalaman Kuliner Yang Tidak Hanya Memuaska Perut, Tetapi JagA Menggugah Selera. Mie Gacoan Hadir Delangan Berbagai Pilihan Menu Yang Menggoda Dan Menarik Perhatian Gelan Ganikan Serta Cita Rasananya.

Asal Usul Mie Gacoan

Mie Gacoan Berasal Dari Yogyakarta, Di Mana Mie Ini Diperkenalkany Oleh Para Penggemar Kuliner Yang Ingin Memkera Citarasa Otentik Dan Inovatif Ke Meja Makan. Delangan Resep Khas Yang Menggabungkan Bumbu-Bumbu Lokal Dan Metode Memasak Yang Benar-Benar Mempertahankan Keaslian, Mie Gacoan Berhasil Menenciptakan Pengalama Kuliner Yang Unik Dan Berkembang Pesat Di Berbawai Koties Besaraes Diaraes Diaraes Diaraes Diaraes.

Keunikan Rasa Mie Gacoan

Salah Satu Hal Yang Membuat Mie Gacoan Begitu ISTimewa Adalah Variasi Rasa Yang Ditawarkan. Pengunjung Dapat memilih Dari Berbagai Jenis Mie, Mulai Dari Mie Rebus, Mie Goreng, Hingga Mie Kering Spesial Bumbu Bumbu. Setiap Sajian Dijamin Memilisi Rasa Yang Kaya Dan Menggugah Selera.

Mie Gacoan Terkenal Paduan Paduan Bumbu Rahasianya Yang Membuatinya Berbeda. Mie Lainnya. Misalnya, Mereka Menggunakan Sambal Khas Yang Memiliki Tingkat Kepedasan Bervariasi, Dari Yang Runda Hingga Yang Menyengat Bagi Penggemar Pedas. Menu dalam ini, Anda bisa menemukan Sambal Bawang, Sambal Terasi, Atau Sambal Kecap Yang Siap Menguji Ketahanan Lidah.

Menu Pilihan Yang Beragam

Varian Menu Yang Disediakan Di Mie Gacoan Sangan Beragam. Menu Salah Satu Andalannya Adalah “Mie Setan”, Yang Menonjolkan Rasa Pedas Yang Membuat Siappaun Tergoda Untkobanya. Selain Itu, Terdapat Pula “Mie Ceker”, Yang Menggunakan Ceker Ayam Sebagai Pelengkap, Sensasi Anggota Tersendiri Bagi Pecinta Kuliner.

Yang Tak Kalah Menarik Adalah “Mie Garing” Yang Disajikan Delangan Perpaduan Sayuran Segar Dan Potongan Meniru Sapi Yang Empuk. Menu ini menjadi favorit Banyak pelangangan karena anggota sensasi krispi saat digigit.

Taktus Mereka Yang Lebih Memilih Pilihan Yang Lebih Rinan, Mie Gacoan Juta Menyediakan Menu Vegetarian Atau Sehat. Ini menjadi pilihan alternati bagi yang ingin menikmati Makanan lezat tanpa khawatir Akan Kalori Yang Berlebihan.

Pengalaman Makan Yang Menarik

Salah Satu Daya Tarik Mie Gacoan Adalah Pengalaman Makan Yang Unik Dan Menyenangkan. Interior tempat ini dirancang gargan suasana Yang Modern Dan Nyaman, Membuat Pengunjung Betah Berlama-Lama. DENGAN DESAIN YANG SEDERHANA NAMUN MERARIK, MIE GACOAN MENJADI TEMPAT YANG Ideal untuk menikmati Morana Bersama Teman Dan Keluarga.

Lay out Yang Terbuka Anggota Kesempatan Bagi Pengunjung untuk Mentiaksikan Langsung Proses Memasak Mie, Sewingga Menambah Ketertarisika Dan Keingintahuan. DITAMBAH SENGAN PELAYANAN Cepat Dan Ramah, Pengalaman Makan di Mie Gacoan Akan Menjadikan Waktu Bersantap Lebih Berkesan.

Momen spesial di tahun baru

Merayakan Tahun Baru Seringkali Diisi Delangan Berkumpul Bersama Keluarga Dan Orang Terkasih. Mie Gacoan Menjadi Pilihan Tepat untuk Acara Kumpul-Kumpul Seperti Ini. DENGAN SUASANA YANG HANGAT DAN PENUH KECERIAAN, TEMPAT INI MAMPU MOMEN MOMEN BOBERAMANAN YANG TAK TERLUPAKAN.

Banyak Pengunjung Yang MEMILIH MIE GACOAN SEBAGAI TEMPAT UNTUK MERAYKAN TAHUN BARU, PAKET PAKET PAKET PAKET YANG BIASANYA DITAWIKAN SELAMA ACARA PERAYAAN. Paket ini sering Kali Berisi Berbagai Pilihan Menu Lengkap, Mulai Dari Mie Hinga Moranan Sampingan Seperti Kerupuk Dan Es Tea Manis Yang Menyegarkan, Memmitkan Hidangan Yang Ideal Momen Merayakan Momen Spesial.

Inovasi menu setiap tahun

Inovasi Mengedepan, Setiap Tahun Mie Gacoan Selalu Menghadirkan menu Baru Yang Menarik. Tim Kuliner Mereka Tidak Pernah Berpuas Diri Dalam Menciptakan Rasa Baru Dan Penyajian Yang Lebih Kreatif. Pelanggan Dapat Menemukan Menu Spesial Yang Selalu Di-update Di Setiap Pergantian Tahun, Membuat Mereka Terus Kembali Untuc Mencoba Hal-Hal Baru.

Sebagai Contoh, Pada Tahun Terbaru, Mie Gacoan Meluncurkan “Mie Gacoan Special”, Yangakan Kombinasi Dari Semua Rasa Favorit Pelangan Dalam Satu Hidangan. Hal ini adalah cara efektif tula menarik minat pengunjung agar terus pencoba dan mengeksplorasi berbagai rasa Yang Ditawarkan.

Testimoni Pelanggan

Kepuasan Pelanggan Menjadi Salah Satu Indikasi Kebohasilan Sebuah Restoran. Mie Gacoan Mendapatkan Banyak Testimoni Positif Dari Pelanggannya Mengenai Rasa Yang Lezat, Porsi Yang Memadai, Serta Pengalaman Makan Yang Memuaska. Banyak Yang Menyatakan Bahwa Mie Gacoan Menjadi Makanan Favorit Mereka Dan Mereka Tidak Sabar Untuc Kembali Lagi.

Pengunjung Sering Membagikan Pengalaman Mereka di Media Sosial, Yang Menunjukkan Betapa Populernya Mie Gacoan Di Kalangan Anak Muda Hingga Keluarga. UNGGAHAN FOTO-FOTO Menu Yang Menggoda Selera Membawa Dampak Positif Bagi Reputasi Mie Gacoan, Menarik Lebih Banyak Pengunjung Baru.

Pemasaran Digital Yang Efektif

Mie Gacoan Memanfaatkan Pemasaran Digital Gangan Sangan Baik Unkuk Menjangkau Pelanggan. Melalui Akun Media Sosial Yang Aktif, Meneka Memperkenalkan Menu Baru, Promo Menarik, Dan Berbagai Konten Menarik Lainnya Yang Membantu Dalam Anggota Informasi Kepada Pelangan.

Promosi Melalui Instagram Dan Tiktok, Misalnya, Dapat Menarik Perhatian Generasi Muda Yang Selalu Mencari Rekomendasi Tempat Makan Yang “Instagramable”. MELLALUI PENGGUNAAAN STRATEGI PEMASARAN YANG TEPAT, MIE GACOAN BERHasil Hasili Salah Satu Pelopor Kuliner Di Indonesia.

Komitmen Kuualitas

Mie Gacoan Tidak Hanya Fokus Pada Rasa, Tetapi BagA Wada Kualitas Bahan Yang Digunakan. Mereka Berkomitmen untuk Majunakan Bahan-Bahan Segar Dan Berkualitas Tinggi Dalam Setiapan Hidangan. Hal ini membedakan mereka manketitor dan menjadi ciri khas Yang menjadikan mie gacoan piliihan utama bagi banya orak.

DGANGA PENJAGA KUALITAS DAN MIJAGA KERSIHAN, Pelanggan Merasa Lebih Tenang Dan Nyaman Saat Menikmati Sajian Yang Dihidangkan. Penggunaan Bahan Lokal Diperhatikan untuk Mendukung Petani Dan Produsen Makanan Lokal, Yang Jagi Yang Nilai Tambah Bagi Pengunjung Yang Peduli Akan Keberlanjutan.

Menjadi Bagian Dari Tradisi Baru

Mie Gacoan Bukan Hanya Sekedar Tempat Makan, Tetapi Telah Menjadi Bagian Dari Budaya Kuliner Yang Berkembang Di Indonesia. Merayakan Tahun Baru Delangan Sajian Lezat Dari Mie Gacoan Adalah Cara Baru Menghayati Momen-Momen Berharga Bersama Orang-Orang Terkasih. Selama Berlahun-Tahun, restoran ini telah menempati hati banya lany, Dan terus berkembang dalam anggota pengalaman kuliner yang tak lupakan.

Mie Gacoan Terbuka Setiap Hari Dan Siap Menerima Kunjungan Anda Di Tahun Baru Ini. Menu Daman Menyajikan Yang Menggugah Selera Dan Pengalaman Makan Yang Menakjubkan, Mie Gacoan Layak Menjadi Destinasi Kuliner Pilihan Anda. Mari Rasakan Sendiri Sensasi Kuliner Tak Terlupakan Di Mie Gacoan Dan Sambut Tahun Baru Daman Penuh Cita Rasa!

Mie Gacoan: Pilihan Sempurna untuk Bukber di Bulan Ramadhan

Mie Gacoan: Pilihan Sempurna untuk Bukber di Bulan Ramadhan

Mengenal Mie Gacoan

Mie Gacoan Merupakan Salah Satu Restoran Yang Kini Menjadi Sorotan Bagi Para Pecinta Kuliner, Terutama Saat Bulan Ramadhan. Menu Daman Andalan Yang Berupa Mie Khas Jawa, Mie Gacoan Bukan Hanya Menawarkan Cita Rasa Yang Unik, Tetapi Rona Suasana Yang Nyaman Untak Berbuka Puasa. Sebagai Pilihan SEMPURNA UNTUK BUKBER (BERBUKA BERSAMA), restoran ini Hadir Gelan Sajian Yang Menggugah Selera Dan Cenderung Dapat Memuaskan Berbagai Macam Selera.

Menu Andalan Yang Menggugah Selera

Salah Satu Daya Tarik Utama Mie Gacoan Adalah Pilihan Menunya Yang Bervariasi. Dari Mie Goreng Spesial Yang Kaya Rasa Hingga Mie Kuah Delangan Kaldu Yang Gurih, Setiapan Hidangan Disiapkan Gelangan Bahan-Bahan Berkualitas. Restoran ini menawarkan beberapa level pepedasan Yang dapat disesuaika gangan selera, mulai Dari yang biasa saja hingga yang ekstrem bagi pensinta cabai.

Mie Goreng Gacoan

Mie Goreng Gacoan Menjadi Favorit Bagi Banyak Pengunjung. Delanan Perpaduan Bumbu Yang Pas Dan Tekstur Mie Yang Kenyal, Hidangan Ini Disajikan Gangan Irisan Sayuran Segar Serta Potongan Daging Ayam Yang Juicy. Sensasi Tambahan Dari Sambal Yang Tersedia Membuat Hidangan Ini Semakinin Menggugah Selera, Menjadikananya Pilihan Yang Tepat Tepat Mengisi Perut Setelah Seharian Berpuasa.

Mie Kuah Gacoan

BAGI YANG LEBIH SUKA HIDIGAN BERKUAH, MIE KUAH GACOAN ADALAH SOLUSI IDEAL. Kuahnya yang kaya rempah dan penuh cita rasa menjadikananya sebagai alternatif Menyegarkan. Pilihan topping Seperti Bakso, Telur, Dan Sayuran Mengadikan Hidangan Ini Lebih Lengkap Dan Bergizi. Mie kuah gacoan sangat cocok dinikmati gelan teh manis hangat saat berbuka puasa.

Menu Pilihan Lain Yang Menarik

Selain Mie, Mie Gacoan Rona Menyediakan Beberapa Menu Pelengkap Yang Tidak Kalah Lezat. Salah Satunya Adalah Tahu Crispy, Yang Memilisi Tekstur Renya di Luar Dan Lembut di Dalam. Tahu ini disajikan gangal sambal khas Yang mampu menambah Kenikmatan saat Berbuka.

Piring samping Dan Minuman

Restoran ini buta menawarkan Berbagai sampingan seperti kerupuk, lumpia, Dan sate yang menambah variasi menu Saat Bukber. Selain Itu, Pilihan Minuman Seperti es Kelapa Muda, Teh Manis, Dan Jus Segar Sangat Cocok Untuce Menghilangkan Dahaga Setelah Puasa Seharian. Es Kelapa Muda, Misalnya, Tidak Hanya Menyegarkan, Tetapi BUGA MENYEHATKAN KARENA MENGANDUNG ELRRROLIT YANG MEMBANU HIDRASI.

SUASANA YANG NYAMAN DAN RAMAH

Salah Satu faktor kunci dalam memilih tempat unkul berbuka puasa adalah suasana restoran. Mie Gacoan Menghadirkan Suasana Yang Ramah Dan Nyaman. Desain Interior Yang Modern Dipaduan Dagan Pencahayaan Hangat Menciptakan Nuansa Yang Bersahabat Untuca Berbuka Bersama Keluarga Atau Teman. Tidak Jarang, restoran ini Dipenuhi Gelan Tawa Dan Kecerian Pengunjung Yangan Merayakan Momen Special Bersama.

Pelayana Yang Memuaskan

Mie Gacoan Dengan Pelayanan Yang Cepat Dan Ramah. Dalam Suasana Bulan Ramadhan Yang Sering Mendatangkan Banyak Pengunjung Untkul Berbuka, Staf Restoran Berupaya Bekerja Efisien untuk Kualiitas Pesana Pesana Pesana Tanpa Tanpa Mengorbankan. Hal ini membalaman berbuuka terasa lebih menyenangkan. Selain Itu, Pembersihan Restora Ragu Terjaga Gelan Baik, Anggota Rasa Aman Bagi Pengunjung Selama Menikmati Hidangan.

Strategi Pemesan Yang Efektif

DENGAN MENINGKATYA JUMLAH PENGUJUNG SAAT Bulan Ramadhan, Disarankan untuk Melakukan Pemesanan Terlebih Dahulu, Terutama untuk Rombongan Besar. Mie Gacoan Menyediakan Layanan Pemesanan Online Yang Memudahkan Pengunjung untuk memesan tanpa haru antre. Platform Daman Menggunakan Tersebut, Anda Bisa Memilih Menu Dan Menikmati Hidangan Delangan Waktu Menuncgu Yang Lebih Singkat.

Keselamatan Dan Kesehatan Makanan

Selama Bulan PUASA, mem -PENTING UNTUK BAHWA MAKANAN YANG DIKONSUMSI AMAN DAN SEHAT. Mie Gacoan Berkomitmen untuk Mengtkunakan Bahan-Bahan Segar Dan Berkualitas. Setiap Tahap Dalam Proses Penyajian Moranan Diperhatikan Gangan Ketat untuk Menjaga Pembebaga Dan Kualitas Hidangan. Ini menjadikan mie gacoan sebagai pilihan Yang tidak hanya lezat, tetapi buta aman unkonsumsi, terutama sapi keluarga yang ingin berbuka bersama.

Testimoni Dari Pengunjung

Testimoni positif Dari Pengunjung Yang Telah Berkunjung Ke Mie Gacoan Menjadi Bukti Kuat Akan Kualitas Hidangan Dan Pelayanan. Banyak Dari Mereka Memuji Kelezatan Mie Goreng Yang Khas, Serta Kecepatan Layanan Yang Memuaskan. Ini menjadi daya tarik terendiri, terutama pada Bulan Ramadhan Yang Kerap Kali Dikaitkan Delangan Berbuka Puasa Yang Penuh Kenangan.

Rekomendasi untuk Rombongan Keluarga

Mie gacoan sangat cocok unkak dijadikan tempat berkumpul bersama keluarga. Menu Daman Yang Bervariasi, Setiap Anggota Keluarga Dapat Memilih Hidangan Favoritnya. Rombongan Besar Tulise Perlu Khawatir, Karena restoran ini memilisi Kapasitas Yang Cukup untuk menampung banyak org sekaligus.

Mie gacoan di media sosial

MIE GACOAN RUGA AKTIF DI BERBAGAI MEDIA SOSIAL SOSIAL, SHINGGA PENGUJUNG DAPAT DENGAN MUDAH MENGITI BERITA Terbaru, Promosi, Dan Penawaran Selama Bulan Ramadhan. Memanfaatkan media sosial, restoran ini seringkali berbagi resep, tips kuliner, dan aktivitas menarik lainnya yang Berkaitan Delana Dunia Morana.

Letak strategis dan akses makh

DENGAN BEBERAPA CABANG Yang Tersebar di Berbagai Lokasi, Mie Gacoan Mudah Diakses Oleh Siapa Saja. Letaknya yang strategi menjadikananya Pilihan Aman unktukan Tempat Tempat Berbuka PUASA SETELAH KEGIatan Sehari-Hari. Aksses Transportasi Umum Yang Baik Baga Menjadi Nilai Tambah Bagi Para Pengunjung.

BERBUKA DENGAN KELUARGA DAN TAHAN

Momen Berbuka PUASA ADALAH SAH-SAAT Yang DITUNGGU-TUNGGU UNTUK BERCENGKERAMA DENGAN KELUARGA DAN TEMAN. Mie Gacoan Menyediakan Suasana Yang Mendukung untuk menikmat momen spesial ini. Menu Daman Yang Menggugah Selera Dan Pelayanan Yang Optimal, Setiap Orang Akan Pulu Delangawa Pengalaman Menyenangkan Setelah Berbuka.

Mie Gacoan Malam Hari: Keseruan Menyantap Gangan Suasana Malam

Mie Gacoan Malam Hari: Keseruan Menyantap Gangan Suasana Malam

Mie Gacoan, Sebuah Restoran Mi Yang Viral Di Kalangan Pecinta Kuliner, Menawarkan Pengalaman Makan Malam Yang Unik Dan Menggugah Selera. TERLETAK DI BERBAGAI LOKASI STRATEGIS, MEMBUAT INI TAK HERYA SEKadar MI MI, TETAPI BUGA MENCIPTAK PENGALAMAN BERANTAP YANG PENUH Keseruan di Malam Hari. Mari Kita Mengupas Lebih Dalam Tentang Apa Yang Membuat Mie Gacoan Malam Hari Paracadi Pilihan Tepat Tepat Menikmati Hidangan Lezat.

SUASANA YANG MEMGODA

Begitu dana Menginjakan Kaki Di Mie Gacoan Malam Hari, Suasana Yang Santai Dan Hangat Langsung Menyambut. Pencahayaan Yang Lembut, Ditambah Dekorasi Yang Modern, Menciptakan Pondok Yang Nyaman Untuc Bersantai. Musik Latar Yang Dipilih Dengan Cermat Membuat Pengalaman Bersantap Jadi Semakin Menyenangkan. Baik Anda Datang Bersama Teman, Pasangan, Atau Keluarga, Mie Gacoan Malam Hari Selalu Menawarkan Nuansa Yang Cocok Untak Berbagai Momen.

Menu Mi Yang Diversifikasi

Yang Menjadi Daya Tarik Utama Dari Mie Gacoan Adalah Beragam Pilihan Menu Mi Yang Menggugah Selera. Restoran ini terkenal gangan berbagai jenis mi, Dari mie gacoan hingga mie goreng. Salah Satu Yang Menjadi Favorit Adalah Mie Gacoan Kuah Delangan Bumbu Yang Kaya Rasa, Anggota Kepuasan Tersendiri Bagi Pecinta Kuah.

Dalam Suasana Malam, Para Pengunjung Bisa Mencoba Mie Gacoan Delanan Topping Beragam, Mulai Dari Ayam, Seafood, Hingga Sayuran Segar. Pilihan topping ini tak hanya anggota variasi rasa, tetapi buta keayaan gizi. Tentu Saja, setiap Hidangan Dipersiapkan Gelangan Bahan-Bahan Berkualitas Dan Proses Yang Higienis, Sewingga Pengunjung Tak Perlu Khawatir Akan Kesesehatan.

Nikmati Hidangan Tambahan

Menu selain mie, mie gacoan buta menawarkan Berbagai makanan pendamping yang pas untuk menemani hidangan utama. Misalnya, dimsum dan tumpeng mini menjadi pilihan Yang Sangat Diminati. Dimsum Yang Hangat Dan Lezat Menjadi Teman Yang Sempurna Untuk Menikmati Waktu Bersama Teman-Teman.

Tak Ketinggalan, Beberapa Jenis Minuman Segar Raga Tersedia untuk Melengkapi Pengalaman Malam Anda. Terutama di Malam Hari, Minuman Dingin Menjadi Penyegar Yang Bagus Setelah Menikmati Morana Panas. Pengunjung Jaga Bisa Mencoba Berbagai Varian Teh Atau Kopi Yang Menyegarkan.

Kualitas Pelayanan Dalam Malam

Salah Satu Aspek Yang Membuat Mie Gacoan Malam Hari Semakin Menarik Adalah Pelyanan Yang Ramah Dan Cepat. Para pelayan di restoran ini terlatih gargan okt perkulekan pengalaman bersantap yang memuaska. Meneka SIAP Menu Berbagai Meneka, Anggota Rekomendasi, Dan Memastikan Bahwa Semua Kebutuhan Pengunjung Terpenuhi. Layanan Yang Baik Baik Ini Menciptakan SUASANA NYAMAN YANG MEMBUAT PENGUJUNG INGIN KEMBALI LAGI.

Pengalaman Bersantap Yang Interaktif

Mie Gacoan RuGA Terkenal Delangan SUASANA YANG INTERAKTIF. Di Saats Malam, Anda Akan Merasakan Energi Yang Lebih Hidup Dibandingkan Saat Siang Hari. Tempat ini Kerap Diisi Oleh Pengunjung Yang Berbagi Cerita, Tertawa, Dan Menikmati Waktu Bersama. Beberapa Cabang Bahkan Mengadakan Acara ATAU Kegiatan Menarik Yang Melibatkan Pengunjung, Seperti Kuis Malam Atau Acara Khusus.

Interaksi Sosial ini Bukan Hanya Menambah Keasyikan Dalam Bersantap, Tetapi BUGA MEMPERKUAT RASA KERBERSAMAN ANTAR PENGUJUNG. Anda Bisa Menemukan Teman Baru Atau Hanya Sekadar Berbagi Pengalaman Kuliner Yang Menyenangkan.

Strategi memikate Dari mie gacoan

Mie Gacoan Malam Hari Jagi Melakukan Strategi Pemasaran Yang Cerdas untuk Menarik Lebih Banyak Pengunjung. Mereka Sering Memanfaatkan Media Sosial, Delangikan Membagikan Foto Makanan Yang Menggoda Selera Dan Kesaksian Dari Pengunjung. Konten Yang Visual Dan Menarik Ini Menarik Perhatian Dan Membuat Orang-Orang Penasaran UNTUK MENCOBA Sendiri Pengalaman Malam di Mie Gacoan.

Promo Daman Yang Menarik Seperti Diskon untuk Grup Besar ATAU Paket Keluarga, restoran ini ini Berhasil Menciptakan loyalitas loyjung. Sehingga, Mie Gacoan Tidak Hanya Menjadi Tempat Makan, Tetapi BUGA PUSAT KOMUNITAS DI MANA ORANG-INROR BISA BERKUMPUL dan BERBAGI KEBAHAGIAAN.

Kenyamanan Dan Pembersihan

Aspek Penting Lainnya Saat Bersantap Di Mie Gacoan Adalah Prioras Mereka Terhadap Kenyamanan Dan Pembersihan. Kebersihan restoran ini terjaga gargaga Baik, Baik Dari Segi Tempat Duduk Hingga Area Dapur. Sanitasi Yang Baik Memberikan Kepercayaan lebih BAGI PENGUJUNG, APALAGI SAAT MALAM DI LUAR RUMAH ADALAH PILihan BAGI BANYAK ORANG.

Pengelolaan Keramaan Yang Baik Baga Menjadi Salah Satu Upaya Mie Gacoan Untkan Pengalaman Terbaik Kepada Pengunjung. DENGAN PENATAAN TEMPAT DUDUK YANG BAIK, Pengunjung bisa Menikmati Makanan Mereka Tanpa Merasa Sesak.

Berbagi Cerita Di Mie Gacoan

Menghabikans Malam di Mie Gacoan Bukan Hanya Sekedar Makan; Ini Adalah Tentang Berbagi Momen Dan Cerita. Banyak Pengunjung Yang Dataang Delangan Tjuuan untuk merayakan sesuatu, Mulai Dari Ulang Tahun, PerteMuan Keluarga, Hingga Reuni Sahabat. Momen-momen ini menjadikan mie gacoan Sebagai tempat yang Berkesan dalam setiap sosial.

Vible Daman Yang Positif Dan Ramah, Mie Gacoan Menjadi Penyedia Kenangan Indah Bagu Banyak Orang. Anda Akan Menemukan Bahwa Banyak Pengunjung Yang Kembali Ke Restoran Ini Hanya untuk merasakan Kembali suasana malam yang telah mereka nikmati sebelumnya.

Rekomendasi tag pengunjung pertama kali

BAGI MANA YANG BARU PERAMA KALI MENGUPUPI MIE GACOAN MALAM Hari, ADA BEBERAPA REKOMENDASI Menu Yang Tidak Boleh Dilewatkan. Cobalah Mie Spesial Gangan Paduan Bumbu Rahasia, Yang Memberikan Pengalaman Rasa Yang Mendalam. Jangan lupa unkici imberapa hidangan pendamping seperti siomay atuu pangsit Yang Terkenal lezat.

Jika Anda Suka Tantangan, Anda Bisa Mencoba Mie Gelangat Tingkat Kepedasan Yang Lebih Tinggi. Ini bisa paraonal pendalaman seru Yang Menguji Ketahanan dana Akan Rasa Peda. Tag menutup sesi Makan Anda, nikmati es krim atuu minuman segar untuk menyegarkan kembali lidah.

Pengalaman Malam Di Mie Gacoan Memang Menjanjikan Banyak Kesenangan Dan Petualangan Rasa. Nikmati Setiap Saat, Berbagi Tawa, Dan Pastikan untuk Kembali Lagi Unkoba Lebih Banyak Hidangan Yang Menggoda Selera. Mie Gacoan Memang Tempat Yang Tepat Unkumpul Sarik Menikmati Hidangan Mi Yang Menggile.

Mie Gacoan Buka Weekend: Nikmati Sensasi Rasa Yang Tak Terlupakan

MIE GACOAN BUKA Akhir Pekan: Nikmati Sensasi Rasa Yang Tak Terlupakan Mie Gacoan Adalah Salah Satu Jajanan Kuliner Legendaris Yang Digandrungi Masyarakat Indonesia, Terutama Di Kalangan Para Pecinta Mie. Menawarkan Berbagai Jenis Mie Delangan Rasa Yang Bervariasi, Mie Gacoan Secara Konsisten Mesenciptakan Pengalaman Gastronomi Yang MEMUKAU. Salah Satu Waktu Terbaik untuk menikmati olahan mie ini adalah ketika mereka membeka gerai pada akhir pakan, di mana pengunjung dapat merasakan sensasi rasa yang mengambil terlupakan. ### Menu Variasi Yang Menggoda Mie Gacoan Dengan Dengan Variasi Mie Yang Sangat Menggoda. Menu Andalan Mereka Seperti Mie Ayam, Mie Goreng, Dan Mie Kuah Masing-Masing Memiliki Cita Rasa Yang Unik. Mie Ayam, Contohnya, Terbuat Dari Mie Telur Yang Kenyal, Dipadu Gelan Ayam Suwir Yang Lezat, Dan Diberi Bumbu Rahasia Yang Membuatinya Semakin Nikmat. Sementara Mie Goreng, Disajikan Daman Sayuran Segar, Anggota Rasa Manis Dan Gurih Yang Sempurna. BAGI PERGGEMAR Makana Peda, Mie Gacoan Juta Memiliki Opsi Mie Parat Yang Siap Membakar Lidah. Delankat Kepedasan Yang Bervariasi, Pelanggan Dapat Memilih Sesuai Gangan Selera Masing-Masing. Keberanian mereka dalam Menciptakan tingkat kepedasan yang ekstrem telah menjadikan mie gacoan sebagai tujuan wajib bagi para penggemar kuliner pedas. ### SUASANA AKHIR PEKAN YANG CERIA DIMA AKHIR PEKAN TIBA, SUASANA DI MIE GACOAN MENJADI LEBIH HIDUP. Pengunjung Dari Berbagai Kalangan, Dari Keluarga Hingaza Anak Muda, Berkumpul untuk Menikmati Hidangan Nikmat ini. Interior Restoran Yang Comzy Dan Dekorasi Yang Menarik Menambah Kenyamanan Saat Bersantap. Selain Itu, Pelyanan Yang Cepat Dan Ramah Dari Staf Memkuat Setiap Kunjungan Mengadi Pengalaman Yang Menyenankan. Mie Gacoan Tidak Hanya Sekadar Tempat untuk Menikmati Mie; Mereka Jaga Sering Mengadakan Acara Hiburan Seperti Musik Langsung Dan Promosi Menarik Yang Membuat Suasana Semakin Meriah. Kuis Mengadakan Delan Dan Games Kecil, Pengunjung Bisa Mendapatkan Hadiah Menarik, Yang Tentunya Membuat Kunjungan Mereka Lebih Berkesan. ### piring pilihan Yang Yang Menggugah Selera Tidak Lengkap Rasananya Jika Hanya Menikmati Mie Tanpa Menambahkan Side Dish Yang Tak Kalah Menggugah Selera. Mie Gacoan Menawarkan Berbagai Side Dish Seperti Tahu Crispy, Sate Ayam, Dan Ceker Peda. TAHU CRISPY, DANGAN LAPISAN LUAR YANG RENYAH DAN ISIAN YANG LEMBUT, MENJADI FAVORIT BANYAK PENGUJUNG. Sementara Itu, Sate Ayam Yang Disajikan Delangu Bumbu Kacang Yang Khas Menambah Kelezatan Saat Dihidangan Bersama Gangan Mie. Ceker Peda Yang Dimasak Delangan Bumbu Rempah Menjadi Pilihan Tepat Bagi Mereka Yang MenyUKai Kelezatan Daging Ayam. Dimakan Sebagai Pelengkap, lauk samping ini mampu anggota Harmoni Rasa Saat Dinikmati Bersama Gelangan Mie Pilihan Anda. ### MINUMAN SEGAN TUKU PENYEMPURNAN PENGALAMAN SETELAH MENIKMATI HIDI: UTAMA, JANGAN LEWATKAN UNTUK MENCOBA RAGAM MINUMAN SEGAR YANG DITAWIKAN OLEH MIE GACOAN. Serangkaian Minuman Seperti es teh manis, es jeruk, hingga cendol dapat anggota kesegaran tersendiri. Perpaduan Antara Panasnya Bumbu Mie Dan Minuman Dingin Yang Menyegarkan Memalaman Bersantap Semakin Lengkap. Khasiat Dari Minuman, Seperti, Cendol Jaga Menjadi Daya Tarik Tersendiri. Terbuat Dari Bahan Alami, Cendol Tidak Hanya Berfungsi Sebagai Pencuci Mulut Yang Menyenangkan Tetapi Jeda Menyegarkan Setelah Menikmati Hidangan Yang Pedas. ### HARGA TERJANGKAU DENGAN KUALITAS PREMIUM SATU HAL YANG MEMBUAT MIE GACOAN MENJADI FAVORIT ADALAH HARGA YANG TERJANGKAU. DENGAN KISARAN HARGA YANG BERSAHABAT DI KANTONG, MANA SUDAH BISA MENIKMATI HIDIPAN MIE BERKUALITAS TINGGI. Hal ini tentunya menjadi daya tarik tersendiri bagi para Mahasiswa maupun keluarga yang ingin berhemat tanpa perorbankan rasa. Mie Gacoan Berkomitmen untuk Anggota Kualitas Terbaik Dalam Setiap Mangkuk Mie Yang Disajikan. DENGAN MERGUNAKAN BAHAN-BAHAN SEGAR DAN BERKUALITAS, Pelanggan Dapat Yakin Bahwa Setiapan Hidangan Memiliki Citarasa Yang Otentik Dan Menggugah Selera. ### Testimoni Pelanggan Yang Memuaska Banyak Pelanggan Yang Telah Mengunjungi Mie Gacoan Anggota Testimoni Positif Mengenai Pengalaman Mereka. Banyak Yang Menyebutkan Bahwa Kelezatan Mie Dan Pelayanan Yang Ramah Menjadi Alasan Mereka UNTUK KEMBALI. “Setiap Kali Saya Datase Ke Sini, Rasanya Selalu Luar Biasa. Mienya Enak, Dan Suasananya Sangan COZY Yang BEGUAT SAYA BETAH BERLAMA-LAMA,” Kata Salah Satu Pelanggan Setia. Belum Lagi, Berbagai Testimoni Di Media Sosial Semakin Memperuat Reputasi Mie Gacoan Sebagai Tempat Kuliner Yang WajiBib Dicoba. Gambar-Gambar Hidangan Yang Menggoda Dan Pengalaman Positif Dibagikan Oleh Pelanggan Membuat Lebih Banyak Orang Tertarik Untukur Datang Dan Mencicipi. ### Lokasi Strategis Dan Muda Diakses Mie Gacoan Memilisi Beberapa Cabang Yang Tersebar Di Berbagai Lokasi Strategis, Tingingga Memudahkan Pengunjung Tempat menemukan Tempat ini. Transportasi Aksses Daman Yang Baik, Baik Mengunakan Kendaraan Pribadi Maupun Angkutan Umum, Restoran ini Dapat Dijangkau Dangan Mudah. Setiap Cabang Menjamin Pelayanan Yang Konsisten Dan Kualitas Makanan Yang Ini adalah shALU SATU alasan Mengapa Mie Gacoan terus menjadi Pilihan utama BABI BANYAK ORANG yang ingin menikmati mie lezat di akhir pekan. ### Momen Spesial Yang Tak Terlupakan Mengunjungi Mie Gacoan Menjadi Salah Satu Cara Unkiptipakan Momen Spesial Gangan Orang Terkasih. Dari Merayakan Hari Jadi, Ulang Tahun, Hingga Sekadar Berkumpul Dgangan Teman-Teman, Suasana Yang Ceria Di Mie Gacoan Membuat Momen Momen Terasa Berharga. Penyajian Makanan Yang Menarik Dan Layanan Yang Cepat Menambah Kesan Positif Pada Setiap Acara Spesial Yang dan Rayakan. ### Menu Inovasi Yang Terus Berkembang Mie Gacoan Selalu Berinovasi Delan Menambahkan Menu Baru Yang Segar Dan Unik. Para chef Berpengalaman terus Bereksperimen RESEP DANGAN DAN BAHAN BAKU UNTUK MENGADIRKAN Pengalaman Kuliner Yang Beragam Dan Tidak Monoton. Menu Delangan Adanya Dan Musiman Edisi Terbatas, Pengunjung Akan Merasa Penasaran untuk Kembali Dan Presoba Setiap Kali Mereka Membuka Gerai Baru. DENGAN BERBAGAI Keunikan Dan Kelebihan Tersebut, Mie Gacoan Buka Akhir Pekan Menjadi Pilihan Sempurna untuk Menikmati Sensasi Rasa Yang Tak Terlupakan. Jangan Sampai Ketinggalan untuk Merasakan Kelezatan Mie Yang Sudah Menjadi Ikonik ini; Ajak Keluarga Dan Teman-Teman dan UNTUK MENTUMI KENIKMATAN KULINER YANG PASTINYA AKAN MERINGUNGAN KESAN MENDALAM.

Mie Gacoan Malam Minggu: Sensasi Kuliner Malam

Mie Gacoan Malam Minggu: Sensasi Kuliner Malam

Apa itu mie gacoan?

Mie Gacoan Adalah Merek Mie Yang Mulai Populer Di Indonesia, Terutama Di Kalangan Anak Muda. Terkenal Cita Rasa Pedasnya, Mie Gacoan Menyediakan Berbagai Varian Mie Yang Bisa Disesuaikan Delan Selera Pelanggan. Mie ini biasananya disajikan dalam suasana Yang Sangan Menggugah Selera. DENGAN BERBAGAI PILIHAN Topping Dan Tingkat Kepedasan, Konsumen Dapat Memilih Sesuai Dengan Preferensi Masing-Masing.

Pengalaman Kuliner Di Malam Minggu

Malam MingGu Selalu Menjadi Waktu Yang Ditunggu-tunggu Oleh Banyak Orang. Banyak Orang Memilih Tentang Menghabikans Malam Minggu Gelan Bersosialisi Bersama Teman Atau Keluarga. Mie Gacoan Menjadi Salah Satu Destinasi Kuliner Favorit di Malam Minggu. Kesibukan Dan Suasana Hangat Di Mie Gacoan Membuatnya Menjadi Tempat Ideal untuk Berkumpul SAMBIL MENIKMATI HIDIangan Khas Mie Yang Lezat.

Varian rasa dan menu unggulan

Mie Gacoan Menawarkan Berbagai Varian Rasa Yang Siap Memanjakan Lidah Pengunjung. Menu Beberapa Unggulan Yang Dapat Ditemukan Di Sini Antara Lain:

  1. Mie Gacoan Pedas: Menggoda Para Penggemar Masakan Pesar, Sajian ini terdiri Dari Mie Putih Delan Kuah Pecas Yang Kaya Bumbu. TINGKAT KEPEDASAN BISA DISESUIANA, MULAI DARI Level 1 Sampai 5, MEMUGKINKAN SETIAP ORANG UNTUK MERIKMATI SESUAI DAYA DAYA TAHAN MEREKA THADAP PUDAS.

  2. Mie Gacoan Asli: Bagi Pengunjung Yang Tidak Terlalu MenyUKai Peda, Varian asli Menawarkan Rasa Yang Lebih Seimbang Dan Kaya Tanpa Ketajaman Bumbu Pedas. Ini merupakan pilihan telepat unkin ingin menikmati kelezatan mie tanpa rasa terbakar di mulut.

  3. Mie Gacoan Seafood: Khusus Bagi Pecinta Makanan Laut, Menu Ini Ditambah Potongan Udang Dan Cumi Yang Anggota Aroma Khas Laut. Kombinasi Mie Delangan Seafood Memalaman Makan Semakin Nikmat Dan Bermanfaat Secara Nutrisi.

  4. Vegetarian Mie Gacoan: Menyediakan Opsi Yang Lebih Sehat, Varian Ini Menggunakan Sayuran Segar Sebagai Pelengkap, Membuatnye Menjadi Pilihan Menarik Bagi Mereka Yang Sedang Paramali Pola Moran Shat Atau Bervetarian.

Harga terjangkau futtut semua kalangan

SATU HAL Yang MIE MIE GACOAN SANGAT MENARIK ADALAH HARGA YANG TERJANGKAU. DENGAN KOCEK YANG TIDAK TERLALU DALAM, Pengunjung Dapat Menikmati Seporsi Mie Delangan Cita Rasa Istimewa. HARGA BERKISAR IDR 20.000 HINGGA IDR 40.000 per menu, Membuatinya Sangan Ekonomis Bagi Pelajar Hingan Profesional Muda.

SUASANA YANG MEMGUGAH SELERA

Mie Gacoan Memilisi Desain Interior Yang Modern Dan Instagramable. Nuansa Ramai Dan Hidup Memunjung Merasa Terlibat Dalam Suasana Kuliner Khas Malam Minggu. Pencahayaan Yang Baik Akan Mempercantik Setiap Momen Yang Diabadikan Di Media Sosial. Tak Jarang Pelanggan Momen Momen Mereka Saat Menikmati Hidangan Di Mie Gacoan Melalui Platform Seperti Instagram Dan Tiktok.

Layanan Cepat Dan Ramah

Pelayanan Di Mie Gacoan Selalu Mendapatkan Pujian Dari Konsumen. Para Pelayan Yang Sigap Dan Ramah Siap Membantu Setiap Pengunjung UNTUK Mendapatkan Pengalaman Yang Menyenangkan. Proses Pemesananan Biasanya Berlangsung Cepat, Sehingga Tidak Membuat Konsumen Menunggu Lama, Terutama Pada Malam Minggu Yang Biasianya Ramai.

Acara Khusus Malam Minggu

Acara Mie Gacoan Sering Kali Mengadakan Dan Promo Khusus Pada Malam Minggu. Misalnya, Diskon Beberapa Jenis Menu Atau Program ‘Beli satu dapatkan satu’ Yang Menarik. Konsumen unkinformasikan, Mereka biasananya memanfaatkan media sosial dan papan pengumuman yang ada di lokasi. ACARA INI SANGAT POPULER DAN SELALU MINAT MINAT BANYAK ORANG.

Kepuasan pelanggan sebagai prioritas

Mie Gacoan Sangan MeMPioritaska Kepuasan Pelanggan. Umpan Balik SetIap Dan Ulasan Dari Konsumen DIANGGAP PENTING UNTUK MENINGKATKAN KUALITAS HIDIGAN DAN LOYANAN. Maka Tidak Jarang, Mereka Melakukan Survei Kecil Untuc MengetahUi Preferensi dan Saran Dari Pelanggan.

Tempat Ideal untuk Bersosialisi

Tidak Hanya Sebagai Tempat Makan, Mie Gacoan Jaga Menjadi Lokasi Yang Ideal untuk Bersosialisasi. Banyak Kelompok Muda Yang Datang UNTUK MOMEN MOMEN SPESIAL, SEPERTI ULANG TAHUN ATAU HANYA SEKEDAR Hangout. DENGAN SUASANA YANG MENDUKUNG PERKAKEPAN, Pengunjung Dapat Menikmati Waktu Berharga Mereka Bersama Teman-Teman.

Ketersediaan Dan Lokasi Strategis

Mie Gacoan Memilisi Beberapa Cabang Yang Tersebar di Berbagai Kota Besar Di Indonesia. Lokasi Strategion ini memudahkan masyarakat untuk Mengakses Makanan Lezat ini. Setiap Cabang biasanya terletak di dekat pusat keramaian atuu tempat hiburan, memudahkan pengunjung unkum mampir.

Instagram Makanan Mie Gacoan Dalam Budaya

Di Era Digital Sekarang , Mie Gacoan Telah Meraih Ketenaran Media Platform Media Sosial, Terutama Instagram. Banyak Food Blogger Dan Influencer Yang Merekomendasikan Mie Gacoan Sebagai Salah Satu Kuliner Wajib Coba. DENGAN PENATAAN Makanan Yang Menarik Dan Rasa Yang Unik, Mie Gacoan Semakin Mendapatkan Tempat Di Hati Para Pencinta Kuliner.

Diet Kesesuaian Gangan Berbagai

Menu Yang Ditawarkan Oleh Mie Gacoan, Baik Parat Atau Tidak, Mencakup Variasi Yang Dapat Disesuaika Gangan Berbagai Jenis Diet. Hal ini membuat mie gacoan Tetap menjadi Pilihan Yang Baik Unkut Orang Yang Mengontrol Asumat Kalori Atau Memilih Pola Makan Tertentu.

Resep Rahasia Bumbu Yang Lezat

Bumbu Yang Dalaman Dalam Mie Gacoan Adalah Kombinasi Dari Rempah-Rempah Pilihan Yang Telah Diracik Delana Sempurna. Keberanian tukeksperimen gangan rasa menjadikan setiapan suapan terasa unik. Inilah yang membuat pelanggan selalu kembali dan mesencici varian Baru Yang Diperkenalkankan.

Komitmen Terhadap Kualitas Bahan

Bahank-Bahan Yang Dalaman Dalam Setiapan Hidangan Mie Gacoan Diarik Dari Pemasok Terpercaya. Keberlanjutan Dan Keamanan Makanan Adalah Prioritas. Hal ini buta sejalan gelang visi mie gacoan unkuledyediakan kuliner Berkualitas tinggi Yang Aman Bagi Konsumen.

Keberagaman topping Yang Menarik

Mie Gacoan Tidak Hanya Memilisi Variasi Rasa, Tetapi Jaga Topping Yang Beragam. Dari Ayam Suwir Hingga Telur Cod, Banyak Pilihan Yang Bisa Dipilih untuk Melengkapi Pengalaman Makan. Memakanyaa Gelan Tambahan Kerupuk Dan Sambal Membuat Setiap Hidangan Terasa Istimewa.

Selalu Menyajikan Yang Terbaik

DENGAN FOKUS PAYA INOVASI DAN Pelanggan, Mie Gacoan Terus Berusia untuk Menu Memperkenalkan Baru Yang Menarik. Hal ini menjadi daya tarik terendiri, di mana Konsumen selalu penasaran unkicipi yang baru.

Dukungan Terhadap Komunitas Lokal

Mie Gacoan RuGA Aktif Mendukung Komunitas Lokal. Dari Penyediaan Bahan Makanan Hingga Kolaborasi Gelangan Kecil, Mie Gacoan Anggota Kontribusi Yang Nyata UNTUK PERTUMAN EKONOMI LOKAL. Ini menjadi nilai lebih yang disukai konsumen, yang semakinin merasa dekat gangan merek ini.

Kemudahan Dalam Pesan Online

DENGAN PERKEMBIGIAN TEKNOLOGI, MIE GACOAN MANDIKAN Kemudahan Akses Kepada Pelangangan. Kini, Kita Dapat Memesan Secara Online Melalui Berbagai Platform. SISTEM PEMESANAN YANG MUDAH DAN Cepat MEMBUAT PENGALAMAN MEMANJAKAN Diri Kita Delangan Hidangan Lezat Semakin Praktis.

Responsif Terhadap Tren Kuliner

Mie Gacoan Selalu MengIKuti Tren Kuliner Saat Ini. Baik Itu Melalui Penggunaan Bahan Organik Atau Pemilihan Menu Minimalis, Konsumen Merasakan Bahwa Mie Gacoan Selalu Adaptif Terhadap Perubahan Selera Pasar.

Kesimpulan: Kenikmatan Berkesan Di Malam Minggu

PENGALAN PENGALAMAN KULINER YANG TIDAK HIYA MEManjakan LIDAH TAPI JUGA MANDIKAN SUASANA YANG ASYIK, MIE GACOAN MIJADI PILihan Yang Tepat Unkhabekan Malam Minggu. Variasi Rasa, Suasana, Dan Pelayanan Yang Ramah Semakin Memalaman Makankan Yang Tak Terlupakan. Pengunjung Dijamin Akan Merasa Kenyang Sekaligus PUAS DENGAN PILihan Yang Ada. Mie Gacoan Bukan Hanya Sekadar Makan Malam; Ini Adalah Sensasi Kuliner Yang Terus Denang.