(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: Kuliner Favorit di Daerah Ramai

Mie Gacoan: Kuliner Favorit di Daerah Ramai

Mie Gacoan telah menjadi shalat Satu ikon kuliner Yang Sangan Populer di Indonesia, Khususnya Di Daerah-Daerah Yang Ramai Dikunjungi Oheh Wisatawan Dan Masyarakat Lokal. Daman Kombinasi Rasa Yang Menggugah Selera, Harga Yang Terjangkau, Dan Suasana Makan Yang Nyaman, Mie Gacoan Menjadi Pilihan Utama Bagi Banya Orang. Dalam Artikel ini, Kita Akan Mengupas Tuntas Tentang Mie Gacoan, Menu Dari Yang Ditawarkan, Lokasi Strategis, Hingga Pengalaman Bersantap Yang Unik.

Menu Variasi Yang Menggoda

Salah Satu Daya Tarik Utama Mie Gacoan Adalah Variasi Menu Yang Ditawarkan. Pengunjung Dapat Menemukan Berbagai Macam Jenis Mie, Mulai Dari Mie Kuning Huncga Mie Telur Yang Disajikan Denggan Ragam Topping. Menu favorit seperti mie gacoan (hidangan tanda tangan), Mie Ayam, Dan Mie Kwetiau Menjadi Primadona Di Kalangan Pengunjung.

Mie Gacoan Yang Khas Terbuat Dari Bahan-Bahan Berkualitas Tinggi, Gangan Bumbu Yang Diracik Secara Khusus Unkule Cita Rasa Yang Unik. Topping Yang Ditawarkan Pun Bervariasi, Dari Ayam Suwir, Bakso, Hingga Sayuran Segar, Memastikan Setiapan Suapan Menjadi Pendalaman Yang Memuaskan.

Pengunjung RuGA Dapat Memilih Level Kepedasan Sesuai Selera, Dari Yang Rendah Hingga Yang Sangan Peda. Ini menjadi nilai tambah bagi penggemar Makanan pedas yang ingin menantang diri mereka sensasi sensasi rasa lebih intens.

SUASANA YANG NYAMAN DAN RAMAH

Mie Gacoan Tak Hanya Menawarkan Makanan Berkualitas, Tetapi Jaga Suasana Makan Yang Nyaman Dan Ramah. Desain Interior Yang Modern Dan Bersih Menawarkan Pengunjung Tempat Yang Ideal Untuc Bersantai Bersama Keluarga Atau Teman. Pencahayaan Yang Lembut Dan Dekorasi Sederhana Menciptakan Atmosfer Yang Menyenangkan, Memunjung Betah Berlama-Lama.

Tempat Duduk Yang Luas Dan Penataan Kursi Yang Rapi Anggota Kenyamanan Ekstra. Mie Gacoan Biasanya Cukup Sibuk, Terutama Di Akhir Pekan, Namun Manajemen Restoran Terampil Dalam Majaga Antrian Dan Pelayanan Agar Tetap Efisien. Pengunjung Dapat Menikmati Makanan Mereka Tanpa Haruus Menunggu Dalam Waktu Yang Lama.

Lokasi Strategi di Berbagai Daerah

Salah Satu KeUNGGULAN MIE GACOAN ADALAH LOKASINYA KAHANG STRATEGIS. Mie Gacoan Memilisi Beberapa Cabang Di Kota-Kota Besar Indonesia, Termasuk Jakarta, Bandung, Dan Yogyakarta. Lokasi-Lokasi ini Biasianya Berada di Area Yang Ramai, Dekat Delan Pusat Perbelanjaan, Kampus, Dan Pusat Hiburan.

Hal ini membuat mie gacoan menjadi pilihan ideal para pelancong yang ingin menikmati makanan lezat tanpa haru menari jauh. Cabang Yang Terletak Di Jalan Utami Atau Pusat Keramaian Sering Kali Dipadati Pengunjung, Menunjukkan Bahwa Mie Gacoan Memang Merupakan Destinasi Kuliner Yang Diminati Masyarakat.

Layanan Pelanggan Yang Baik

Mie Gacoan Terkenal Tidak Hanya Karena Makanan Enak Yang Ditawarkan Tetapi Bua Berkat Layanan Pelanggan Yang Baik. Para staf di mie gacoan dilatih unkikan Pengalaman pelangan yang terbaik, memastikan bahwa setiap pengunjung merasa dihargai. Dari Sambutan Hangat Saat Memasuki Restoran Hingga Pelayanan Yang Cepat Dan Ramah, Semua Elemen Ini Sangan Diperhatikan.

Layanan Pelanggan Di Mie Gacoan Mampu Menangani Pesanan Gangan Efisien, Bahkan Pada Saat Saat Puncak. Meneka SIAP Anggota Rekomendasi Menu Dan Menjagab Peranya Seputar Makanan Dan Caraga. Hal ini mesenciptakan Pengalaman Bersantap Yang Lebih Menyenangkan Bagi Pelanggan.

Ketersediaan layanan pesan antar

Popularitas Popularitas Mie Gacoan, Manajemen restoran MANAJEMEN BUGA MENYEDIAKAN PESAN PESAN ANTAR. INI MANDI KEMUDAHAN BAGI KONSUMEN YANG INGIN MENIKMATI HIDIGAN MIE GACOAN DI RUMAH ATAU DI KANTOR TANPA HARUS PERGI KE LOKASI. Melalui Aplikasi Layanan Pengiriman, Pengunjung Bisa Dengan Murat Memesan Makanan Favorit Mereka Hanya Gelanger Beberapa Sentuhan Jari.

Menu Yang Ditawarkan Tetap Sama, Dan Kualitas Mie Yang Diterima Tetap Terjaga. Ini tentunya menjadi pilihan menarik di tengah sesibukan masyarakat yang tidak selalu memilisi waktu untuc coran di tempat.

Komitmen Terhadap Kualitas Dan Pembersihan

Mie Gacoan Sangan Memperhatikan Kualitas Bahan Yang Dalaman Dalam Setiapan Hidangan. Restoran ini beruaha unkunakan Bahan-Bahan Segar Dan Alami, Tanpa Adanya Bahan Pengawet. Komitmen Terhadap Pembersihan Dan Kualitas Terlihat Jelas Mulai Dari Penyimpanan Bahan Baku Hingga Penyajian Makanan.

Proses Memasak Yang Higienis Jaga Menjadi Salah Satu Prioritas Mie Gacoan. Semua Staf MengIKuti Protokol BPERBERIHAN KETAT UNTUK BAHWA SETIAP HIDIGAN YANG DISAJikan AMAN DAN LAYAK KONSUMSI. Ini Anggota Ketanangan Pikiran Bagi Pelanggan Yang Peduli Terhadap Kesehatan Dan Pembersihan Makanan Yang Mereka Nikmati.

Pengalaman Bersantap Yang Unik

Salah Satu Faktor Pengikat Kuat Di Mie Gacoan Adalah Pengalaman Bersantap Yang Unik. Restorasi ini sering kali menyelenggarakan berbagai acara unka tukarik pelanggan, seperti diskon spesial saat acara tertentu atuu sistem loyalitas bagi pengunjung yang sering Kembali.

SUASANA SOSIAL YANG DINAMIS TERCIPTA DI SETIAP CABANG, DI MANA Pengunjung Dapat BERTUKAR CERITA DAN MEREKOMENDASIKAN MENU FORMIT MEREKA SATU SAMA LAIN. Ini menjadikan mie gacoan tidak hanya sekadar tempat makanan, tetapi buta tempat berkumpul Dan bersosialisasi.

Testimoni Pelanggan

Lebih memahami daya tarik mie gacoan, kita bisa melihat testimoni Dari pelanggan yang telah berkunjung. Banyak Yang Menyebutkan Bahwa Mie Gacoan Adalah Tempat Yang Tepat Tepat Bersantap Bersama Keluarga Dan Sahabat. Rasa Mie Yang Autentik Dan Variasi Menu Yang Banyak Menjadi Sorotan Utama. Banyak Yang Bahkan Merekomendasikan Tempat Ini Kepada Orang Lain Melalui Sosial Media.

Kepuasan Pelangangan Yang Tinggi Menunjukkan Bahwa Mie Gacoan Mampu Memenuhi Ekspektasi. Hal ini juga menjadi indikator Bahwa restoran ini siap untuk selalu berinovasi dan memperbaiki layanan agart tetap menjadi yang terdepan di industri kuliner.

Kesimpulan

Mie Gacoan Bukan Hanya Sekadar Tempat Makan, Melainkan Jaga Simbol Dari Pengalaman Kuliner Yang Memuaskan. Dari Rasa Yang Menggugah Selera, Suasana Yang Nyaman, Hingga Layanan Yang Baik, Mie Gacoan Terus Menarik Minat Banyak Orang. Dengan Lokasi-Lokasi Strategis Dan Menu Yang Terus Dius, Mie Gacoan Siap untuk Tetap Menjadi Salah Satu Kuliner Favorit Di Daerah Ramai, Datang yang Datang Kenangan Manis Manis Bagi Pengunjung Yang.

Mie Gacoan: Keunikan Kuliner Pinggir Jalan di Indonesia

Mie Gacoan: Keunikan Kuliner Pinggir Jalan di Indonesia

Apa itu mie gacoan?

Mie Gacoan Adalah Salah Satu Kedai Mie Yang Populer Di Indonesia Dan Denkenal Luas Di Kalangan Pecinta Kuliner Pinggir Jalan. Konsep ini Tetapi memukau sederhana: Menyediakan mie gelangan cita rasa yang mergugah selera, SAMBIL TETAP MEMPERTAHANANANANANANANGAN YANG LERJANGKAU UNTUK SEMUA KALIGAN. Berasal Dari Kota Malang, Mie Gacoan Kini Telah Berkembang Menjadi Berbagai Cabang Di Seluruh Indonesia, Membawa Aroma Dan Rasa Khas Kota Tersebut Ke Berbagai Daerah.

Cita Rasa Unik Mie Gacoan

Mie Gacoan Terkenal Kombinasi Rasa Yang Unik Dan Bumbu Yang Khas. Mie Yang Digunakan Adalah Mie Kuning Yang Kenyal, Disajikan Gelan Berbagai Mengatasi Menarik Seperti Ayam, Telur, Tahu, Dan Sayuran Segar. Namun, Yang Membuat Mie Gacoan Benar-Benar Unik Adalah Sambal Yang Disajikan Bersamanya. Ada Berbagai Pilihan Sambal Mulai Dari Sambal Bawang, Sambal Ijo, Hingga Sambal Terasi, Masing-Masing Menawarkan Sensasi Pedas Yang Berbeda. Oleh Karena Itu, Mie Gacoan Tidak Hanya Sekadar Hidangan Mie, Tetapi BUGA MIJADI PENGALAMAN KULINER YANG MENGASYIKKAN.

Menu variasi di mie gacoan

Salah Satu Daya Tarik Mie Gacoan Adalah Variasi Menu Yang Ditawarkan. Pelanggan Bisa Memilih Dari Berbagai Jenis Mie Dan Topping Sesuai Selera Mereka. Menu Yang Populer Meliputi:

  1. Mie Ayam Gacoan: Mie Yang Disajikan Potongan Ayam Yang Juicy, Dipadu Delanran Sayuran Segar Dan Kuah Beraroma.

  2. Mie Goreng: Tagus Mereka Yang MenyUKai Hidangan Lebih Kering, Mie Goreng Menjadi Pilihan Utama. Dibumbui Delang Ciri Khas Yang Kuat, Hidangan Ini Memikat Hati Banyak Orang.

  3. Mie Cuanki: Mie Ini Dilengkapi Delangan Bakso Ikan Dan Sayur-Sayuran, Anggota Sensasi Makanan Favorit Saat Hujan.

  4. Mie Seafood: Tengemar Makanan Laut, Mie Gacoan Juta Menawarkan Pilihan Mie Gelangan Tambahan Udang Atau Cumi-Cumi Yang Segar.

HARGA Terjangkau

Salah Satu Faktor Penentu Kesukesan Mie Gacoan Adalah Harganya Yang Terjangkau. DENGAN HARGA MULAI DARI RP 15.000,- HINGGA RP 30.000,- per Porsi, Mie Gacoan Berhasil Menyasar Kalangan Mahasiswa, Pekerja Kantoran, Dan Keluarga. KUALITAS YANG DIPEROH SEBANDING DENGAN HARGA, MENJADIKANYA PILihan Yang Ekonomis Tanpa Mengurangi Cita Rasa.

SUASANA DAN PELYANAN

Mie Gacoan Menawarkan Suasana Yang Sederhana Namun Nyaman. Kedai Delan DESAIN Minimalis Dan Lapang ini Seringkali Dipenuhi Oheh Pelangan Yang Menikmati Hidanganya. Layanan Yang Ramah Dan Cepat Menambah Daya Tarik Bagi Pengunjung, Mencalaman Mencalaman Yang Meran Yang Menyenangkan.

Strategi Pemasaran Yang Efektif

Mie Gacoan RuGA Menggunakan Strategi Pemasaran Yang Efektif Delangan Memanfaatkan Media Sosial. DENGAN KEHADIRAN YANG KUAT DI Platform Seperti Instagram Dan Tiktok, Mereka Berhasil Menarik Perhatian Anak Muda Dan Foodies UNTUK BERBAGI PENGALAMAN KULINER MEREKA. Foto-foto Menarik Dari Menu Yang Disajikan Serta Tantangan Kuliner Membuat Mie Gacoan Semakin Viral Di Kalangan Netizen.

KUALITAS BAHAN BAKU

KUALITAS BAHAN BAKU ADALAH SALAH SATU PILIL UTAMA MIE GACOAN. Mereka Hanya Menggunakan Bahan-Bahan Segar Dan Berkualitas Tinggi. Mie Yang Digunakan Dibuat SECARA LOKAL DENGAN Resep Turun-Temurang, Memastikan Keaslian Rasa. Sayur-Sayuran Yang Digunakan Rada Dipilih Dari Petani Lokal, Mendukung Perekonomian Sekitar Dan Memastikan Rasa Yang Segar.

Mie Gacoan Dalam Budaya Kuliner Indonesia

Mie Gacoan Tidak Hanya Sekadar Makanan, Tetapi BUGA HERENCERMINGAN BUDAYA KULINER INDONESIA. Masyarakat Indonesia memilisi Kecintaan Terhadap Makanan Pedas, Dan Mie Gacoan Delangan Sambalnya Anggota Tempat Yang Sempurna UNTUK MEREKA. Selain Itu, Keberadanya di Pinggir Jalan Menambah Unsur Keakraban Dan Keterjangkauan, Menjadikananya Salah Satu Makanan Favorit di Kalangan Masyarakat.

Menu promo spesial dan menarik

Mie Gacoan Sering Kali Menawarkan Menu Spesial Dan Promo Menarik Yang Mengundang Semakin Banyak Pelanggan. MISALYA, MEREKA MEMILIKI Promo “Mie Gacoan Day” Di Mana Pelanggan Dapat Menikmati Potongan Haran Atau Bonus Menu Tertentu Pada Hari Tertentu. Hal ini Berhasil Meningkatkan Daya Tarik Dan Prenciptakan KesetianaN Pelanggan.

Peningkatan Kualitas Dan Pengalaman Pelanggan

Mie Gacoan Terus Berinovasi untuk Meningkatkan Kualitas Dan Pengalaman Pelanggan. Umpan Balik Dari Pelanggan Diperhatikan Daman Seksama, Dan Berbagai Saran Diperkenalkan Ke Dalam Menu. Mereka Juta Melakukan Pelatihan Berkala Bagi Karya Untukan Bahwa Layanan Pelangan Selalu Dalam Standar Yang Tinggi.

Popularitas Mie Gacoan Di Kalangan Generasi Muda

Kehadiran Mie Gacoan Sangat Populer Di Kalangan Generasi Muda Di Indonesia. Mereka Menganggapnya Sebagai Pilihan Ideal untuk Bersosialisi Delangan Teman Setelah Kuliah Atau Kerja. Rasananya Yang Enak Dan Suasana Yang Nyaman Menjadikananya Tempat Yang Tepat Tepat Bercengkerama, Berbagi Cerita, Sekaligus Menikmati Hidangan Lezat.

KONTRIBUSI UNTUK EKONOMI LOKAL

DENGAN BANYAKYA CABANG yang Dibuka Di Berbagai Kota, Mie Gacoan Juta Berkontribusi Dalam Perekonomian Lokal. Menyerap Tenaga Kerja Dan Anggota Daya Masa Magiakat Sekitar Adalah Langkah Yang DiAMBIL OLEH MIE GACOAN DALAM BERKEMBANGANYA. Langkah ini Tidak Hanya Menjadikan Mie Gacoan Sebagai Tempat Kuliner Yang Baik, Tetapi Juta Sebagai Agen Perubahan Di Dalam Masyarakat.

Kesimpulan Mie Gacoan Dalam Duni Kuliner

Mie Gacoan Merupakan Contoh Sempurna Dari Kombinasi Yang Harmonis Antara Cita Rasa, Harga, Dan Suasana. DENGAN KERHASILANNAA DALAM MEMASOKAN DAN MENGHADIRKAN Pengalaman Kuliner Yang Unik, Mie Gacoan Tak Hanya Mencuri Perhatian Di Indonesia, Tetapi Juta Mely Inspirasi Bagi Banyak Pelaku Usaha Kuliner Lainnya. Mie Gacoan Akan Terus Menjadi Salah Satu Ikon Kuliner Pinggir Jalan Yang Banya Dicari Dan Disuka, Tanpa Kehilangan Ciri Khasnya.

Mie Gacoan: Menikmati Sensasi Rasa Di Dekat Alun-Alun

Mie Gacoan: Menikmati Sensasi Rasa Di Dekat Alun-Alun

Mie Gacoan Bukan Hanya Sekadar Tempat Makan, Tetapi JUGA DESTINASI KULINER YANG MENAWIKAN PENGALAMAN BERANTAP YANG UNIK. Terletak Di Dekat Alun-Alun, restoran ini Sangan Murat Diakses Oleh Pecinta Mie Dari Berbagai Kalangan. Mie gacoan telah menjelma menjadi shalat satu ikon kuliner Yang tidak boheh dilewatkan saat berkunjung ke daerah ini. Cita Rasa Yang Menggugah Selera Dan Suasana Nyaman Menjadikananya Pilihan Tepat Untkumpul Berkumpul Bersama Keluarga Atau Teman.

Menu Variatif Yang Menggoda Selera

Di Mie Gacoan, Pengunjung Disuguhi Berbagai Pilihan Menu Yang Berfokus Pada Mie. Mie Adalah Makanan Utama Di Sini, Delanak Banyak Varian Yang Bisa Dinikmati. Beberapa Jenis Mie Yang Ditawarkan Mencakup Mie Ayam, Mie Goreng, Serta Mie Kuah Yang Kaya Akan Rasa. Mie Mie Gacoan Rona Terkenal Karena Tekstur Mie Yang Kenyal Dan Segar, Yang Menjadi Ciri Khas Tempat ini.

Menu Andalan Mie Gacoan Adalah Mie Ayam Spesial, Yang Disajikan Potongan Ayam Yang Empuk, Sayuran Segar, Dan Bumbu Rahasia Yang Anggota Cita Rasa Khas. Selain Itu, Terdapat Rona Mie Dewa, Yang Meadukan Mie Delangan Seafood Segar, Sewingga Menciptakan Rasa Yang Unik Dan Menggugah Selera. BABI YANG PECINA PUDAS, MIE GACOAN MENYEDIGAN MIE PEDA YANG SIAP MEMICU ADRENALIN Level PEPEDASAN YANG BISA DIPILIH SESUAI SELERA.

SUASANA YANG NYAMAN DAN MENARIK

SUASANA DI MIE GACOAN SANGAT MENDUKUNG UNTUK BERSANAI DAN MENIKMATI MAKANAN. Interior Restoran Didesain Modern, Pencahayaan Yang Hangat Dan Pilihan Tema Yang Stylish. Nuansa Yang Nyaman Membuat Pengunjung Betah Berlama-Lama Di Sini, Baikstul Menikmati Masakan Sendiri Maupun Bersosialisi. Terdapat Area Area Luar Yang memunckikan Pengunjung untuk menikmati udara segar Saat Makan.

Pengunjung Dapat Melihat Langsung Proses Penyajian Makanan Melalui Dapur Terbuka, Menambah Daya Tarik Tersendiri. Hal ini anggota elemen transparansi, di mana tamu bisa menduaksikan Bagaimana semua hidangan Disiapkan dergan cita rasa tinggi dan bpergersihan yang terjaga.

Kualitas Bahan Baku Yang Terjamin

Kebohasilan Mie Gacoan Dalam Menu Menu Lezat Tidak Lepas Dari Penggunaan Bahan Baku Berkualitas. Semua Bahan Makanan Yang Digunakan Di Mie Gacoan Dipilih Secara Selektif UNTUK HAMIN KESEGARAN DAN RASA YANG MAKSIMAL. DAGING AYAM YANG DIGUNIGA DALAM HIDI: DAGING PILihan Segar, Dan Sayuran Tersedia Dalam Kondisi Terbaik. Ini menjadi shalat satu alasan Mengapa Banyak Pengunjung Merasa Pua Delangan Rasa Yang Ditawarkan.

Pelayana Ramah Dan Cepat

Mie Gacoan Jaga Denkenal Akan Pelayananya Yang Ramah Dan Cepat. Staf Yang Terlatih Selalu Siap Membantu Pengunjung UNTUK memilih menu dan anggota Rekomendasi Berdasarkansi prefanensi Mereka. Kecepatan Dalam Penyajian Makanan Jaga Menjadi Salah Satu Nilai Plus, Sehingga Pengunjung Tidak Perlu Menunggu Lama untuk Bisa Menikmat Hidangan. Hal ini juga merminkan komitmen mie gacoan dalam anggota pendalaman bersantap Yang Menyenangkan.

Fasilitas dan aksesibilitas

DENGAN LOKASI YANG STRATEGIS DI DEKAT ALUN-ALUN, MIE GACOAN SANGAT MUDAH DIJAKKAU BAIK DENGAN KENDARAAN PRIBADI MAUPUN Transportasi Umum. TERSEDIA PARKIR YANG CUKUP LUAS UNTUK MENTUKOMODASI Pengunjung Yang Membawa Mobil. Selain itu, restoran ini dilemkapi gelangan fasilitas wi-fi fratis Yang bisa dinikmati pengunjung, menanyaNanA Pilihan tepat tepat tuk bekerja sambil menikmati mie.

Harga terjangkau futtut semua kalangan

Salah Satu Daya Tarik Mie Gacoan Adalah Harga Yang Sangan Terjangkau. DENGAN KUALITAS MAKANAN YANG DITAWIRAN, Menu Harga Di Mie Gacoan Cukup Bersahabat untuk Kantong. Ini menjadi shalat satu alasan Mengapa mie gacoan banyak dikunjungi eheh Mahasiswa, pekerja, Dan keluarga. Mie Gacoan Mempersembahkan Berbagai Pilihan Paket Hemat Yang Memungkitans Pengunjung Menikmati Hidangan Lezat Tanpa Harus Merogoh Kocek Dalam-Dalam.

Pentingnya Ulasan Pengunjung

Ulasan Dari Para Pengunjung Sangan Sangan Pusing Bagi Mie Gacoan. Mereka Sering Kali Mengupdate Dan Merespon Umpan Balik Yang Diberikan, Baik Itu Kritik Maupun Saran. Hal ini menunjukkan bahwa mie gacoan serius dalam meningkatkan kualitas pelayanan dan menu. Banyak Pengunjung Yang Anggota Komentar Positif Mengenai Cita Rasa Yang Nikmat Dan Pelayanan Yang Cepat. Ini menambah kepercayaan setiap pelangangan baru yang ingin Mencoba sensasi goran di mie gacoan.

Bergabung Gelan Tren Kuliner Modern

Mie Gacoan RuGA MengIKuti Perkembangan Kuliner Modern Delangan Seringnya Melakukan Menu Inovasi. Mereka Tereka Memperkenalkan Hidangan Musiman Atau Edisi Terbatas Yang Selalu Menarik Perhatian. Hal ini tidak hanya membuat pelanggan lama tetap kembali, tetapi buta menarik minat pengunjung baru. Selain itu, mie gacoan aktif dalam promosi di media sosial, menjadikananya lebih dikenal di Kalangan generasi muda.

Favorit Destinasi Menjadi

DENGAN SEMUA KELEBIHAN YANG DITAWIRAN, TIDAK HERAN JIKA MIE GACOAN MENJADI SALU SATU DESTINASI KULINER FAVORIT DI DEKAT ALUN-ALUN. Setiap Kunjungan Menawarkan Pengalaman Baru Bagi Pengunjung. Dari Rasa Yang Mengesangan Hingga Pelayanan Yang Ramah, Mie Gacoan Terus Menjadi Pilihan Utama Bagi Para Pencinta Kuliner. Membalaman pembincian semakinin berkesan uctik setiap oran Yang Yang Mengunjungi Tempat ini.

Terminal Mie Gacoan Dekat: Surga Kuliner Di Setiap Mangkok

Terminal Mie Gacoan Dekat: Surga Kuliner Di Setiap Mangkok

1. Apa Itu Mie Gacoan?

Mie Gacoan Adalah Sebuah Restoran Yang Menjadi Primadona di Dunia Kuliner Indonesia, Terutama Di Kota-Kota Besar Seperti Yogyakarta Dan Surabaya. Menu Menawarkan Berbahan Dasar Mie, restoran ini Menghadirkan aneka ragam Hidangan Yang Terbuat Dari Mi Delan Cita Rasa Khas Yang Memanjakan Lidah. Selain Rasaya Yang Lezat, Mie Gacoan Rona Terkenal Karena Harganya Yang Terjangkau, Menjadikananya Pilihan Utama Bagi Berbagai Kalangan, Mulai Dari Pelajar Hingan Pekerja.

2. Terminal Lokasi Strategi Dekat

Salah Satu Cabang Yang Paling Terminal Adalah Mie Mie Gacoan Dekat. Terletak Di Lokasi Strategi di Dekat Terminal Bus, Tempat ini menjadi Pilihan Ideal Bagi para penumpang dan wara sekitar yang ingin menikmati Makan Siang Atau Malam. Akses Murat Dan Tempat Yang Nyaman Menjadikan Mie Gacoan Sebagai Lokasi Makan Yang Tepat, Terutama Sebelum Atau Setelah Perjalanan Jauh.

3. Menu Andalan Mie Gacoan

Mie Gacoan Memiliki Banyak Pilihan Menu Yang Menggugah Selera. Menu Beberapa Andalan Yang Wajib Dicoba Antara Lain:

  • Mie Ayam: Dengan Cita Rasa Gurih Dan Lezat, Mie Ayam Mie Gacoan Disajikan Potongan Daging Ayam Yang Empuk, Bakso, Dan Sayuran Segar. Kuahnya yang Kaya Rasa Anggota Sensasi Hangat Di Setiap Suapan.

  • Mie Peda: BABI PECINA PEDA, MIE PUDAS MIE GACOAN ADALAH PILihan SEMPURNA. Dihidangkan Delan Bungus Cabai Yang Menggugah Selera, Menu Ini Menjadi Tantangan Bagi Yang Berani Mencobanya. Level Kepedasan Yang Bervariasi MemuTiap Pengunjung Dapat Menyesuaika Sesuai Selera.

  • Mie Goreng: Mie Goreng Mie Gacoan Menawarkan Kombinasi Rasa Bumbu Yang Harmonis. Delangahan Sayuran Dan Protein Seperti Ayam Atau Cumi, Menu Ini Menjadi Pilihan Yang Memuaska.

  • Mie Kuah Spesial: Semangkuk mie kuah spesial ini merupakan Perpaduan Sempurna Antara Mie, Kaldu Yang Kaya Rasa, Dan Berbagai Toping Khas Yang Membuat Cita Rasananya Semakin Bervariasi.

4. SUASANA NYAMAN DAN RAMAH

Mie Gacoan Dekat Terminal Tidak Hanya Menawarkan Morana Lezat, Tetapi JUGA SUASANA YANG NYAMAN DAN RAMAH. DESAIN INTERIORNYA YANG MODERN DENGAN SENTUHAN BUDAYA LOKAL MENJADIKANNAA TEMPAT YANG PAS UNTUK BERKUMPUL BERSAMA TEMAN ATAU KELUARGA. DENGAN VARIASI MEJA DAN KURSI, Pelanggan Dapat Memilih Tempat Yang Sesiai Gangan Prefanensi Mereka, Baik Itu Untukur Cepat Atau Bersantai Dalam Waktu Lama.

5. Layanan Pelanggan Yang Memuaska

Pelayanan Di Mie Gacoan Jaga Menjadi Salah Satu Nilai Tambah Restoran ini. Staf Yang Ramah Dan Sigap Membuat Pengalaman Moran Menjadi Lebih Menyenangkan. Pengunjung Tidak Perlu Menunggu Lama untuk menerima Pesanan Mereka, Berkat Sistem Pelayanan Yang Efisien. Jika Anda Memiliki Peranya Tentang Menu AtaU Preferensi Diet, Staf SIAP Memberikan Rekomendasi Yang Terbaik.

6. Harga Terjangkau

SATU LAGI YANG BEMUAT MIE GACOAN BEGITA POPULER ADALAH HARGA Menu Yang Sangan Bersahabat. DENGAN HARGA MULAI DARI RP 20.000,- HINGGA RP 50.000,-, Mie Gacoan Menawarkan Pilihan Yang Terjangkau untuk semua Kalangan. Ideal BABI PELAJAR BAGIJAR INGIN INI MENIKMATI MAKANAN BERKUALITAS TANPA MENGERAS DOMPET.

7. Pilihan Minuman Pendamping

Setiapan hidangan mie gacoan semakinin lengkap gelanan pilihan minuman yang mendarkankan. Menu Minuman Di Sini Bervariasi, Mulai Dari Es Teh Manis, Es Jeruk, Hingga Minuman Segar Lainnya Yang Dapat Melengkapi Santapan Anda.

  • Es teh manis: Minuman Klasik Yang Menjadi Teman Setia Saat Menikmati Mie. Manis Dan Segar, es teh ini sangat cocok Melengkapi hidangan pedas.

  • Es jeruk: Untkul Yang Menginginkan Rasa Segar Buah, es Jeruk Gelan Bau Segar Dan Rasanya Yang Asam-Manis Adalah Pilihan Tepat Tepat Menetorgan Rasa Pedas Di Mulut.

8. Kesempatan unkul berbagi

Mie Gacoan Rona Menawarkan Pilihan Menu Memesan Dalam Porsi Besar Yangok Cocok untuk Acara Berkumpul. Paket Paket Keluarga, Anda Dapat Menikmati Hidangan Dalam Ukuran Yang Lebih Besar Dan Berbagi Delangan Orang-Orang Terkasih. Ini Menambah Keasyikan Saat Berkumpul Bersama Teman Atau Keluarga.

9. BOBIANHAN DAN KUALITAS MAKANAN

KEBERIHAN ADALAH PRICORAS DI MIE GACOAN. Dari Proses Memasak Hingga Penyajian, Kualitas Bahan Makanan Selalu Dijaga. Pengunjung Tidak Perlu Khawatir Mengenai Keamanan Dan Pembersihan Makanan, Karena Mie Gacoan Mengedepan Standar Higienis Yang Tinggi.

10. Pengalaman Makan Yang Unik

BAGI BANYAK ORANG, Makan Bukan Hanya Sekedar Memenuhi Kebutuhan. Mie Gacoan Mengerti Hal ini Dan Menenciptakan Pengalaman Makan Yang Mendalam. Setiap suapan membawa anda dalam imbalanan rasa Yang

11. Testimoni Pelanggan

Banyak Pelanggan Yang Anggota Ulasan Positif Tentang Pengalaman Mereka Di Mie Gacoan. Mereka Tidak Hanya PUAS DENGAN Cita Rasa Moranan, Tetapi Jaga Terkesan Gangan Atmosfernya Yang Menyenangkan Dan Pelayanan Yang Ramah. Ulasan Positif ini terus Mengalir, menjadikan mie gacoan tempat yang patut dicoba bagi pecinta kuliner.

12. Strategi Pemasaran Yang Efektif

MIE GACOAN RUGA MEMANFAATKAN SOSIAL SEBAGAI ALAT PEMASARAN. DENGAN FOTO-FOTO MEMGUGAH SELERA DAN TESTIMONI Dari Pelanggan di Instagram Dan Facebook, Restoran ini Berhasil menarik Perhatian Banyak Orang. Penggunaan tagar Yang Tepat Dan Promosi Menarik Menjadikan Mereka Tetap Relevan Di Tengah Persaingan Kuliner.

13. Komitmen Terhadaap Inovasi

Mie Gacoan Tidak Hanya Berpuas Menu Delangan Yang Ada. Mereka Terus Berinovasi Menu Menawarkan Menu Musiman Atau Spesial Bulan Tertentu, Sewingga Pelanggan Selalu Memiliki Alasan UNTUK KEMBALI. Ini membuat mie gacoan tidak hanya sekedar restoran, tetapi buta tempat eksplorasi rasa yang seru.

14. LINGKUNGAN YANG RAMAH LINGKUNGAN

Mie Gacoan Raga Berkomitmen untuk Mengurangi Penggunaan Plastik Sekali Pakai. Penggelan Menyasar Pada Praktik Ramah Lingungan, Mereka Menawarkan Pilihan Kemasan Yang Dapat Dapat Kembali. Ini Merupakan Langkah Positif Yang Menunjukkan Kepedulian Terhadap Lingungan Dan Bisa Menjadi Contoh Bagi Pesaing Lainnya.

15. Aksesibilitas Transportasi

Dari Sisi Transportasi, Mie Gacoan Dekat Terminal Menawarkan Aksesibilitas Yang Cukup Baik. Bus Terminal Dekat Delan, restoran ini SANGAT Murat Dijangkau Oleh Pengunjung Yang Menggunakan Transportasi Umum. Selain Itu, Area Parkir Yang Luas Juta Memudahkan Bagi Mereka Yang Menggunakan Kendaraan Pribadi.

16. Acara Khusus Dan Promosi

Mie Gacoan Sering Mengadakan Acara Khusus Dan Promosi Menarik. Promo Seperti Diskon di Hari-Hari Tertentu Atau Hadiah Bagi Pelanggan Yang Berulang Kali Datasial Menang Daya Tarik Tersendiri. Acara live Music atuu Demo memasak jago sering kali diadakan utuk menarik lebih banyak pelangan.

17. Penutupan

Delangan Segudang Keunggulan Yang Dimilisi, Mie Gacoan Dekat Terminal T itu, Surga Kuliner Yang Tidak Boleh Dilewatkan. Menu Yang Bervariasi, Harga Yang Terjangkau, Dan Pelyanan Yang Ramah Menjadikan Setiap Kunjungan Ke Sini Adalah Pengalaman Menyenangkan Yang Akan Selalu Diingat. Pastikan unkuljungi mie gacoan dan merasakan sendiri kelezatan Yang ada di dalam setiap mangkoknya.

MIE GACOAN DEKAT STASIUN: Kuliner Favorit Pengunjung

Mie Gacoan Dekat Stasiun: Kuliner Favorit Pengunjung ### Keunikan Mie Gacoan Mie Gacoan Bukan Sekadar Tempat Makan Biasa; Ia Menjadi Salah Satu Kuliner Favorit Yang Banyak Diburu Pengunjung, Terutama Yang Melalui Stasiun. Tersebar di Beberapa Lokasi Strategis, Termasuk Dekat Stasiun-Stasiun Kereta, Makanan Ini Menawarkan Pengalaman Kuliner Yang Unik Delangan Cita Rasa Yang Menggoda. Berasal Dari Inspirasi Masakan Asia, Mie Gacoan Dengan Mie Yang Kenyal Dan Bumbu Yang Kaya Rasa, Menciptakan Sensasi Yang Memuaska Bagi Setiap Pelanggannya. ### Menu Andalan Di Mie Gacoan Ada Berbagai Macam Menu Yang Bisa Ditemukan Di Mie Gacoan. Salah Satu Yang Paling Populer Adalah Mie Gacoan Spesial, Yang Terbuat Dari Mie Telur Delangan Saos Peda Yang Kental. Saos Ini Adalah Kombinasi Dari Cabai, Bawang, Dan Bumbu-Bumbu Rahasia Yang Membuat Rasa Mie Menjadi Lebih Nikmat. Selain Itu, Terdapat JUGA VARIASI Topping Seperti Ayam, Bakso, Dan Sayuran Segar Yang Menambah Rasa Dan Tekstur. Menu Lain Yang Patut Dicoba Adalah Mie Gacoan Bawang. Mie ini dialah gangan bumbu bawang putih yang anggota aroma dan rasa yang khas. BAGI PARA PERGGEMAR KULINER PEDAS, MIE GACOAN RUGA MENAWIKAN PILihan MIE PEDAGAN TINGAN TINGAT KEPEDASAN YANG BISA DIATUR SESUAI SELERA. Ini menjadi daya tarik terendiri bagi Mereka Yang Ingin Menguji Ketahanan Lidah Mereka Terhadap Rasa Pedas. ### SUASANA DAN KONSEP MIE GACOAN HADIR GANGAN SUASANA Yang NYAMAN Dan RAMAH. Desain Interior Yang Sederhana Namun Menarik menarik Tempat ini nyaman unkustai SAMBIL MENIKMATI MAKANAN. Setiap Cabang mie gacoan menampilkan suasana Yang lisan Pencahayaan Yang Baik, Tempat Menyediakan Yang Sempurna Bagi Keluarga Maupun Teman-Teman Untak Berkumpul. Konsep Terbuka Dapur Raga Menambah Nilai Tambah, Pengunjung Melihat Melihat Langsung Bagaimana Disiapkan. ### Pelayanan Yang Memuaska Salah Satu Hal Yang Sering Mendapatkan Pujian Dari Pengunjung Adalah Pelayanan Di Mie Gacoan. Staf Yang Ramah Dan Cepat Anggota Pengalaman Makan Yang Menyenangkan. SEKALI DUDUK, Pengunjung Bisa Menikmati Hidangan Mereka Dalam Waktu Yang Relatif Singkat, Sewingga Sangat Cocok UnkUk orang-orang Yang Memilisi Mobilitas Tinggi, Seperti Kenang. ### Menggugah Selera Daman Pelengkap Mie Gacoan Juta Menawarkan Beberapa Pelengkap Yang Menggu Selera. Dari Kerupuk Udang Yang Renyah Hingga Acar Segar Yang Asam Manis, Setiap Pelengkap Dihadirkan Delangan Tujuan Mengimbangi Rasa Pedas Dari Mie. Minuman Yang Ditawarkan Pun Sangat Beragam, Mulai Dari Es Teh Manis, Mineral Udara, Hingga Minuman Khas Daerah Yang Bisa Menyegarkan Tenggorokan Setelah Menikmati Mie Pedas. ### BAHAN BERKUALITAS KEBEHASIILAN MIE GACOAN JUGA TIDAK LEPAS DARI PERI PERI BAHAN BAKU BERKUALITAS. Setiap mie dibuat Dari bahan pilihan Yang Segar, Sementara Sayur-Sayuran Yang Digunakan Dipilih Daman Sempurna. Ini memunckinan pengunjung menikmati hidangan yang tidak hanya enak tetapi buta sehat. Para Koki Terlatih BUGA BERKOMITMEN TUKUKA PERJAGA BBEBERANHAN DAN KUALITAS DI SETIAP TAHAP COSES MEMASAK. ### Popularitas di Kalangan Pengunjung Kepopulanan Mie Gacoan Tidak Datang Begitu Saja. Selain Rasa Yang Lezat, Lokasi Strategis Dekat Stasiun Menjadikananya Pilihan Ideal Bagi Para Pelancong. Banyak Dari Mereka Yang Menjadikan Mie Gacoan Sebagai Destinasi Kuliner Pertama Setelah Turun Dari Kereta. Testimoni Positif Dari Berbagai Platform Media Sosial Jaga Berperan Dalam Menarik Perhatian Lebih Banyak Pengunjung. ### Promo Dan Diskon Terlepas Dari Rasananya Yang Menggugah Selera, Mie Gacoan Sering Kali Menawarkan Promo Menarik Dan Diskon Khusus. Hal ini semigna memikate para pengunjung, terutama bagi mahasiswa dan pekerja yang ingin menu menu lezat tanpa haru merogoh kocek dalam-dalam. DENGAN HARGA YANG TERJANGKAU, SETIAP PENGUJUNG BISA MENEMUMAN SESUATU YANG SESUAI DENGAN SELERA DAN ANGGARAN MEREKA. ### rekomendasi unking pengunjung bagi pengunjung yang baru pertama kali datang, sangat disorankan unkoba mie mie gacoan menu sebagai spesial utama. Jangan Lupa JUGA UNTUK MENCOBA MIE GACOAN PEDAS JIKA MANA PENCINTA MASAKAN PEDA. UNTUK Pelengkap, kerupuk udang bisa mena menjadi pilihihan yang pas. Sementara tag Minuman, es teh manis sudah menjadi favorit banyak oran yang singgah di Sini. ### Ulasan Dari Pengunjung Banyak Pengunjung Anggota Ulasan Positif Tentang Pengalaman Mereka Di Mie Gacoan. Mereka Sering Kali Menyebutkan Bahwa Selain Rasa Makanan Yang Lezat, Suasana Tempat Yang Ramah Sangan Mendukung Pengalaman Bersantap. Beberapa Pelanggan Rugne Mengapresiasi Cepatnya Layanan Dan Pembersihan Tempat. ### Lokasi Dan Aksesibilitas Mie Gacoan Memilisi Beberapa Cabang Yang Tersebar di Berbagai Lokasi Strategis. Cabang TerdeK Gangan Stasiun Biasanya Muda Diakses Delangan Hanya Berjalan Kaki Dari Pintu Keluar Stasiun. Ini Tentu Menguntinjkan Bagi Para Pelancong Yang Tidak Ingin Jauh-Jauh Dari Transportasi Publik. ### Mie Gacoan di Era Digital Di Tengah Kemjuan Teknologi Dan Era Digital, Mie Gacoan Juta Tidak Ketinggalan. Mereka Meneka Layanan Pesan Antar Yang memunckinan Pengunjung Menikmati menu Mereka Dari Kenyamanan RUr. Melalui Aplikasi Pemesanan Makanan, para Penggemar Mie Gacoan Dapat Dapat Mudah Melakukan Pemesanan Tanpa Harus Antri Di Lokasi. Delangai Berbagai Kelebihan Menu Seperti Yang Bervariasi, Suasana Yang Nyaman, Pelayanan Yang Cepat, Dan Lokasi Strategis, Tidak Heran Jika Mie Gacoan Pria Kuliner Berbagai Kalangan, Terutama Bagi Para Para Para Pengunin.

Mie Gacoan Jalan Besar: Perjalanan Kuliner Melalui Rasa

Mie Gacoan Jalan Besar: Perjalanan Kuliner Melalui Rasa

Inti dari Mie Gacoan

Mie Gacoan, yang terletak di Jalan Besar, adalah tujuan terkenal untuk penggemar ramen dan pengunjung kasual. Dikenal karena citarasa yang kaya dan atmosfer eklektik, Mie Gacoan telah menjadi bahan pokok lanskap kuliner di wilayah tersebut. Restoran ini menggabungkan resep tradisional dengan teknik kuliner modern untuk menciptakan pengalaman bersantap yang tak terlupakan.

Menu: Simfoni rasa

Menu Mie Gacoan adalah pilihan yang dikuratori dengan hati -hati yang melayani berbagai selera. Hidangan yang paling menarik perhatian adalah hidangan mie khas mereka – saya Gacoan. Hidangan ini menyeimbangkan rasa gurih, pedas, dan manis, menawarkan sentuhan Indonesia yang unik pada ramen tradisional.

Hidangan khas

  1. Mie Gacoan Special: Hidangan senama restoran ini menampilkan mie yang dimasak sempurna dilemparkan ke dalam kaldu yang kaya dan pedas dan atasnya dengan irisan daging babi yang diasinkan, sayuran segar, dan taburan bawang merah goreng untuk crunch ekstra itu.

  2. Mie Ayam: Hidangan mie ayam yang menghibur, Mie Ayam disajikan dengan saus ringan yang ditingkatkan dengan potongan ayam tumis, dilengkapi dengan jamur gurih dan sayuran ringan.

  3. Mie Peda: Bagi para pecinta rempah-rempah, Mie Pedas adalah pilihan yang memicu adrenalin. Ditingkatkan dengan saus cabai khusus, hidangan ini menantang pengunjung untuk menikmati panasnya sambil menikmati kedalaman rasa.

  4. Opsi Vegan: Mengenali kebutuhan makanan konsumen modern, Mie Gacoan menawarkan versi vegan dari mie mereka yang terkenal. Memanfaatkan bahan nabati dan sayuran musiman, hidangan ini menjamin kepuasan tanpa kompromi pada rasa.

  5. Lauk pauk: Selain persembahan mie mereka, Mie Gacoan memiliki berbagai sisi seperti kulit tahu, gyoza, dan tempe goreng. Komplemen ini meningkatkan pengalaman keseluruhan dan memberikan variasi yang menarik untuk makanan Anda.

Bahan segar dan teknik kuliner

Apa yang membedakan Mie Gacoan adalah komitmennya terhadap bahan -bahan segar dan pertanian lokal. Restoran ini berkolaborasi dengan petani lokal untuk mencari sayuran organik dan protein yang ditingkatkan secara etis. Pendekatan pertanian-ke-meja ini tidak hanya mendukung ekonomi lokal tetapi juga memastikan bahwa setiap hidangan penuh dengan rasa.

Tim kuliner di Mie Gacoan menggunakan teknik tradisional yang dikombinasikan dengan metode modern untuk membuat kaldu yang kaya dan mie yang dimasak dengan sempurna. Mie buatan mereka dibuat setiap hari, memungkinkan pengunjung untuk menikmati tekstur kenyal yang menyenangkan yang membedakan Mie Gacoan dari pilihan ramen makanan cepat saji.

Suasana: Rasa Indonesia

Suasana di Mie Gacoan dirancang dengan penuh pertimbangan untuk menawarkan pengalaman yang menggugah bagi para tamu. Dekorasi ini menampilkan perpaduan estetika kontemporer dengan elemen -elemen tradisional Indonesia, menciptakan suasana yang hangat dan mengundang. Perlengkapan cahaya halus dan karya seni yang menggambarkan budaya Indonesia berkontribusi pada lingkungan makan yang unik yang memikat pengunjung.

Pilihan tempat duduk bervariasi dari meja intim untuk pasangan ke meja komunal yang lebih besar yang mendorong persahabatan di antara pengunjung. Anggota staf yang ramah dan berpengetahuan selalu tersedia untuk meningkatkan pengalaman Anda, membimbing Anda melalui opsi menu dan merekomendasikan minuman untuk melengkapi makanan Anda.

Minuman: melengkapi makanan

Untuk menemani citarasa yang kaya dari hidangan Mie Gacoan, tersedia menu minuman yang dikuratori dengan cermat. Minuman tradisional Indonesia, seperti Es Teh Manis dan Es Jeruk, menawarkan keseimbangan sempurna antara manis dan penyegaran. Bagi mereka yang mencari sesuatu yang lebih besar, sejumlah bir lokal dan kopi khusus memadukan penawaran.

Pentingnya Komunitas

Mie Gacoan memberikan penekanan kuat pada keterlibatan masyarakat. Mereka sering menjadi tuan rumah acara yang menampilkan seniman dan musisi lokal, mengubah pengalaman bersantap menjadi perayaan budaya dan kreativitas. Acara yang digerakkan oleh masyarakat tidak hanya meningkatkan reputasi restoran tetapi juga mendorong pelanggan untuk kembali untuk makanan dan suasana yang semarak.

Keberlanjutan dan tanggung jawab

Mie Gacoan berkomitmen untuk praktik berkelanjutan. Mereka mengambil bagian dalam inisiatif lingkungan untuk mengurangi limbah, termasuk memanfaatkan wadah take-out yang dapat terbiodegradasi dan meminimalkan limbah plastik. Dedikasi untuk praktik yang bertanggung jawab ini beresonansi dengan pengunjung yang sadar lingkungan yang menghargai dukungan untuk upaya ramah lingkungan.

Pengalaman pelanggan

Ulasan dan kesaksian dari pelanggan yang puas menyoroti layanan Mie Gacoan yang mengesankan dan hidangan beraroma. Banyak pengunjung yang memuji tentang konsistensi dalam kualitas dan selera, mencatat bahwa setiap kunjungan terasa seperti acara khusus. Kombinasi makanan yang lezat, staf yang ramah, dan lingkungan yang mengundang menciptakan pengalaman bersantap yang mengesankan.

Mengunjungi Mie Gacoan

Mie Gacoan terletak di pusat jalan Besar, membuatnya mudah diakses untuk penduduk setempat dan wisatawan. Perusahaan ini menyambut para tamu sepanjang hari, menawarkan pilihan makan siang dan makan malam yang memenuhi berbagai jadwal. Pemesanan dapat dilakukan untuk pesta yang lebih besar untuk memastikan Anda memiliki meja selama jam sibuk, terutama pada akhir pekan ketika restoran cenderung terisi dengan cepat.

Kesimpulan

Singkatnya, Mie Gacoan di Jalan Besar lebih dari sekadar tujuan makan; Ini adalah perjalanan kuliner yang menawarkan rasa otentik, suasana yang semarak, dan keterlibatan masyarakat. Setiap hidangan adalah bukti warisan kuliner yang kaya dari Indonesia, dikombinasikan dengan bakat modern, memberikan pengalaman yang menyenangkan bagi semua orang yang berkunjung. Komitmen restoran terhadap bahan -bahan segar, keberlanjutan, dan layanan luar biasa memastikan bahwa Mie Gacoan akan tetap berada di garis depan adegan kuliner selama bertahun -tahun yang akan datang. Suasana yang menyambut dan menu lezat membuatnya berhenti penting bagi siapa pun yang menjelajahi masakan Indonesia di daerah tersebut.

Mie Gacoan Pusat Kota: Menyelami Rasa Otentik

Mie Gacoan Pusat Kota: Menyelami Rasa Otentik

Apa itu mie gacoan?

Mie Gacoan Adalah Salah Satu Restoran Mie Terkemuka Yang Berasal Dari Indonesia, Denkenal Luas Karena Sajian Mienya Yang Lezat Dan Cita Rasa Yang Otentik. Delangan Ekspansi Ke Berbagai Kota Besar, Termasuk Ibu Kota, Mie Gacoan Pusat Kota Menjadi Salah Satu Tjuuan Utama Bagi Penikmat Kuliner Yang Mencari Pengalaman Makan Yang Beriksankan. Konsep restoran ini mengabungkan elemen tradisional Dan modern, mesenciptakan suasana Yang Nyaman Dan Ramah.

Menu Andalan Mie Gacoan

Di Mie Gacoan Pusat Kota, Anda Akan Menemukan Beragam Pilihan Menu Yang Menggugah Selera. Menu Andalan Seperti Mie Ayam Gacoan Dan Mie Pedas Gacoan Selalu Berhasil Menarik Perhatian Pengunjung. Mie Ayam Gacoan Terkenal DGan Bumbu Yang Kaya Dan Paduan Daging Ayam Yang Empuk, Sementara Mie Pedas Gacoan Menawarkan Sensasi Pedas Yangin Menggoda.

Mie Ayam Gacoan

Sajian ini terbuat Dari mie segadukan Dipadukan Potongan Ayam Yang Telah Dimasak Dangan Bumbu Rahasia. Mie Ini Disajikan Delangan Kuah Kaldu Yang Gurih, Taburan Bawang Goreng, Dan Sayuran Segar, Anggota Pengalaman Rasa Yang Seimbang Dan Mendalam.

Mie Pedas Gacoan

BAGI PECINTA PEDA, MIE PUDAS GACOAN ADALAH PILihan Yang Tak Boleh Dilewatkan. Dengan Tingkat Kepedasan Yang Bervariasi, restoran ini level beberapa level keberapa kesedasan sesuai gargan selera pengunjung. Mie ini disajikan gangan saus sambal Yang Kental Dan Menggugah Selera, Serta Berbagai Topping Yang Menambah Kelezatan.

Bahan-Bahan Berkualitas

Kebohasilan Mie Gacoan Dalam Menciptakan Rasa Yang Otentik Tidak Terlepas Dari Penggunaan Bahan-Bahan Berkualitas Tinggi. Setiap porsi mie disajikan gelangan mie segar Yang dibuat setiap Hari, Menghindari Penggunaan Bahan Pengawet. Daging Ayam Dan Sayuran Yang Digunakan Adalah Produk Lokal Pilihan Yang Dipastikan Kesegaranyaa. Kombinasi Bahan-Bahan Bahan Ini Menghasilkan Tekstur Dan Rasa Yang Sempurna Dalam Setiapan Suapan.

SUASANA RESTORAN YANG NYAMAN

Mie Gacoan Pusat Kota Menghadirkan Atmosfer Yang Nyaman Dan Bersih. Desain Interior Yang Modern Delangan Sentuhan Nuansa Perampiptaan Tempat Tempat Yang Nyaman Untkus Bersantap, Baik Untuce Keluarga, Teman, Maupun Unkul Bersantai Setelah Seharian Beraktivitas. Pencahayaan Yang Lembut Dan Dekorasi Yang Menarik Bisa Memembuat Pengunjung Betah Berlama-Lama Di Sini.

Pelayanan Yang Ramah

Tim Pelayanan Di Mie Gacoan Pusat Kota Denkat Cepat Dan Ramah. DENGAN BERBAGAI PENGALAMAN DALAM INDUSTRI KULINER, Para staf Siap Memnantu Anggota Anggota Saran Menu Terbaik Yang Sesiai Delangan Selera Pengunjung. Kemampuan Komunikasi Dan Sikap Profesional Mereka Menambah Nilai Plus Pana Pengalaman Bersantap Di Tempat ini.

Pilihan Tambahan Dan Minuman

Selain Mie, Mie Gacoan Rona Menawarkan Menu Variasi Tambahan Seperti Tahu Goreng, Pangsit, Dan Berbagai Jenis Sayuran. PENDAMPING MAKANAN INI SANGAT COCOK UNTUK MELENGKAPI HIDI: UTAMA. Tagus Minuman, Anda Dapat Memilih Dari Berbagai Pilihan, Mulai Dari Es Teh Manis Yang Segar Hingga Minuman Khas Seperti Es Jeruk Nipis Yang Menyegarkan.

Kebersihan Dan Kesehatan

Dalam Menjalankan Operasionalinya, Mie Gacoan Pusat Kota Sangat Memperhatikan Aspek Pembersihan Dan Kesehatan. Semua Prosedur Penyajian Dan Penyimpanan Dilakukan Standar Angga Pembersihan Yang Ketat. Setiap staf dilatih untuk menjaga pembersihan daerah kerja dan memastikan Bahwa makanan Yang disajikan tidak hanya lezat tetapi buta aman unkonsumsi.

Lokasi Dan Aksesibilitas

Mie Gacoan Pusat Kota Berada Di Lokasi Strategi yang Muda Muda Dijangkau Oheh Pengunjung. Terletak Di Pusat Kota Yang Terkenal DGan Kepadatan Pengunjung Dan Keramaian, restoran ini Dapat Diakses Melalui Berbagai Moda Transportasi. Tersedia RUGA Lahan Parkir untuk Pengunjung Yang Membawa Kendaraan Pribadi, Sewingga dan Tidak Perlu Khawatir Sulit Menemukan Tempat UNTUK PARKIR.

Pengalaman Mengunjungi Mie Gacoan

BAGI MANA YANG INGIN MERASAKAN KEKAYAAN RASA OTENTIK INDONESIA, MIE GACOAN ADALAH PILihan Yang Tepat. Setiap Kunjungan anggota Kesempatan untuk Mengekeksplorasi Berbagai Rasa Yang Ditawarkan, Dan Menjadikan Setiap Pengalaman Bersantap Unik. Dari Suasana Yang Nyaman Hingga Pelayanan Yang Ramah, Mie Gacoan Pusat Kota Menjadi Tempat Yang Tidak Hanya Menyajikan Moranan, Tetapi TuGA Pengalaman Bersantap Yang Tak Terlupakan.

Keseluruhan Pengalaman Kuliner

Mie Gacoan Pusat Kota Bukan Hanya Sekadar Restoran, Tetapi JUGA Merupakan Tempat Berkumpul Bagi Para Pencinta Kuliner. DENGAN SUASANA YANG RAMAH DAN Menu Yang Menggoda, Mie Gacoan Menjadi Pilihan Ideal untuk Keluarga Maupun Pertemuan Delan Teman. Rasakan Keunikan Cita Rasa Dari Hidangan Yang Menyuguhkan Keaslian Masakan Indonesia Anggan Cara Yang Modern Dan Menarik.

Rekomendasi untuk Pengunjung

Jika Anda Berencana Unkunjung, Disarankan untuk Dataang Pada Jam-Jam-Jam Agar Non-Peak Bisa Menikmati Sajian Delan Lebih Tenang. Cobalah memesan memesan beberapa menu berbeda dan berbagi gabat temat atuu keluarga lewingga anda bisa segeksplorasi lebih banyak rasa. Jangan lupa unkal memanfaatkan promo-promo yang sering diadakan eheH restoran untuk menamaah pengalaman kuliner anda!

Kesimpulan Mie Gacoan Pusat Kota

Dalam Dunia Kuliner Yang Terus Berkembang, Mie Gacoan Pusat Kota Berhasil Mempertahankan Identitaasnya Sebagai Tempat Yang Menyajikan Rasa Otentik Delangan Sentuhan Modern. DENGAN DEDIKASI Terhadap Kualitas, Pelayanan, Dan Kebersihan, Mie Gacoan Terus Menjadi Favorit Di Hati Pengunjungnya. Menyelami Rasa Otentik di Mie Gacoan Adalah Pengalaman Yang Layak Tutkoba Bagi Siapa Saja Yang Mencintai Mie Dan Kuliner Indonesia.

Keunikan Mie Gacoan Di Ruko Yang Wajib Dicoba

Mie Gacoan: Keunikan Kuliner Yang Menggugah Selera

Apa itu mie gacoan?

Mie Gacoan Adalah Salah Satu Pilihan Kuliner Yang Sedang Naik Daun di Indonesia, Khususnya Di Kalangan Penggemar Mie. TERLETAK DI BERBAGAI RUKO STRATEGIS, RESTORAN INI MENWIKAN Menu Mie Delangan Cita Rasa Yang Khas Dan Berbeda Dari Yang Lain. Mie Gacoan Bukan Hanya Sekadar Penyajian Mie, Tetapi JUGA Pengalaman Kuliner Yang Mengundang Rasa Penasaran Dan Kepuasan.

Menu Unggulan Mie Gacoan

Salah Satu Daya Tarik Utama Mie Gacoan Adalah Variasi Menu Yang Ditawarkan. Di antara menu yang populer populer adalah mie goreng pedas, mie ayam, Dan mie kuah spesial. Setiap Jenis Mie disajikan Delangu Bumbu Yang Kaya Dan Bahan Berkualitas Tinggi. Mie Gacoan Rona memilisi level PEPEDASAN Yang BISA DISESUICAN DENGAN SELERA PELANGGAN, Mulai Dari Yang Tidak Parat Hingga Tingkat Ekstrim Bagi Penggemar Tantangan.

Mie Goreng Pedas

Mie Goreng Pedas Menjadi Salah Satu Menu Yang Paling Banyak Dipesan. Delanan Paduan Mie Yang Kenyal, Sayuran Segar, Dan Bumbu Yang Meresap, Hidangan INI Anggota Rasa Pedas Yang Menggugah Selera. Tidak hanya pedas, tetapi buta disertai aroma aroma wangi yang dihasilkan Dari rempah-rempah, membuat setiap suapan menang begitu nikmat.

Mie Ayam

Mie Ayam Di Mie Gacoan Tenjak Kalah Istimewa. Denkenal Karena Kuah Kaldu Ayam Yang Gurih Dan Mie Yang Lembut, Hidangan Ini Sering Dijadikan Pilihan Bagi Yang Lebih MenyUKai Cita Rasa Yang Lebih Ringger Namun Tetap Mengenyengkan. Ditambah Gelan Potongan Ayam Yang Empuk Dan Taburan Bawang Goreng, Mie Ayam Di Mie Gacoan Adalah Kombinasi Sempurna untuk Menikmati Waktu Santai.

Mie Kuah Spesial

Mie kuah spesial jagA menjadi favorit para pengunjung. Kuahnya Yang Kaya Rasa, Berpadu Delan Mie Yang Kenyal Dan Pelengkap Seperti Bakto, Tahu, Dan Sayuran Menadi Daya Tarik Tersendiri. Komposisi Bahan Yang Digunakan Sangat Memperhatikan Cita Rasa Dan Kesehatan, Menjadikanya Pilihan Yang Pas UNTUK Semua Kalangan.

Keunikan Dalam Penyajian

Penyajian di mie gacoan menjadi shalat satu aspek Yang tidak biheh Dilewatkan. Setiapan hidangan disajikan garganan Tampilan Yang Menarik, Menjadikan Setiap Pengalaman Makan Semakin Berkesan. Penggunaan Wadah Tradisional Dan Dalam Modern Penyajian Anggota Sentuhan Yang Unik, Disertai Delan Garnish Menaris Yang Mempercantik Tampilan Hidangan.

Lokasi Strategi di Ruko

Mie Gacoan Memilisi Lokasi Di Ruko Yang Strategis, Memudahkan Aksses Bagi Siapa Saapa Yang Ingin Menikmati Mie Istimewa Ini. DENGAN SUASANA YANG BERSIH DAN NYAMAN, MIE GACOAN ADALAH TEMPAT YANG TEPAT UNTUK BERKUMPUL DENGAN TEMAN ATAU KELUARGA. Ruko Yang Sering Digunakan Biasianya Memilisi Tempat Parkir Yang Memadai, Sewingga Pengunjung Tidak Perlu Khawatir Tentang Kesulitan Parkir.

SUASANA YANG COZY

Desain Interior Di Mie Gacoan Dirancang Agar Pengunjung Merasa Nyaman. Pencahayaan Yang Lembut Dan Dekorasi Yang Sederhana Namun Elegan, Atmosfer Yang DiCiptakan Membuat Siapa Pun Betah Berlama-Lama. DITAMBAH DENGAN LOYANAN Pelanggan Yang Ramah Dan Cepat, Pengalaman Makan dana di Sini Pasti Akan Menyenangkan.

Mie gacoan unkul berbagai kalangan

Mie Gacoan Mampu Menarik Perhatian Berbagai Kalangan. Dariajar Hingga Profesional, Semua Bisa Menemukan Sesuatu Yang Pas di Dalam Menu. Kita bisa melihat Banyak Pengunjung Dari Berbagai Usia Yang Datang Untuc Menikmati Kelezatan Menu Yang Ditawarkan. DENGAN HARGA YANG TERJANGKAU, MIE GACOAN JUGA MIJANGAKKAU Pelanggan Dari Berbagai Lapisan Masyarakat.

Kelebihan Mie Gacoan Dibandingkan Restoran Lain

Salah Satu Yang Membuat Mie Gacoan Menonjol Adalah Keunikan Rasa Dan Bumbu Yang Digunakan. Resep Yang Munckin Turun Temurang Itu Tidak Hanya Mempertahankankan Rasa Asli, Tetapi BUGA BERINOVASI GANGAN TEKNOLOGI KULINER MODERN, SINHINGGA MENCIPTAK PENGALAMAN BARU BAGI PECINTA MIE. Selain Itu, Mie Gacoan Rona Terkenal Dgersihan Dan Kualitas Bahan Baku Yang Digunakan, Setiapan Prajadikan Hidangan Aman Dan Sehat Untuc Dinikmati.

Testimoni Pelanggan

Banyak Pelanggan Yang Anggota Testimoni Positif Tentang Pengalaman Mereka Di Mie Gacoan. Beberapa Dari Mereka Memuji Rasa, Kenyamanan Tempat, Dan Kecepatan Layanan. PUJIAN INI MIJADI BUKTI BAHWA MIE GACOAN BERHasil MEMENUHI EKSPEKTASI Pelanggan.

Piliihan Minuman Yang Menyegarkan

Tak Hanya Mie, Mie Gacoan Rona Menyediakan Berbagai Pilihan Minuman Yang Segar. Mulai Dari Teh Manis, Es Jeruk, Hingga Minuman Khas Daerah Yang Dapat Menemani Hidangan Mie Anda. Pilihan Minuman Ini Menambah Kesenangan Saat Menikmati Makanan.

Promosi Dan Penawaran Spesial

Seringkali Mie Gacoan Mengadakan Promosi Dan Penawaran Spesial Untkularik Lebih Banyak Pengunjung, Seperti Potongan Haran UNTUK Pembelian Tertentu Atau Diskon Pada Hari Hari-Hari Tertentu. Penawaran ini menjadi shalat satu alasan banyak orang memilih mie gacoan sebagai tujuan kuliner.

Kegiatan Dan Event Khusus

Mie Gacoan JagA Mendukung Acara-Acara Khusus Seperti Perayaan Ulang Tahun, Pertemuan, ATau Gathering. DENGAN FASILITAS DAN TEMPAT yang CUKUP UNTUK KELOMPOK BESAR, MIE GACOAN DAPAT MENJADI PILihan SEMPURNA UNTUK MOMEN MOMEN PENTING BERSAMA ORANG-ORANG TERCINTA.

Sosial Media Dan Kehadiran Digital

Mie Gacoan Rugn Memiliki Kehadiran Yang Kuat Di Media Sosial. Platform-Platform Melalui INI, Mereka Sering Berbagi Foto-Foto Menggoda Dari Hidangan Yang Ditawarkan, Informasi Tentang Promosi, Dan Bara Berinteraksi Langsung Dgan Pelangan. Ini Adalah Strategi yang Efektif Dalam Membangun Komunitas Dan Meningkatkan Loyalitas Pelanggan.

Teknologi Dalam Pemesanan

DENGAN KEMJUAN TEKNOLOGI, MIE GACOAN MENYEDIPAN LAYANAN PEMESANAN ONLINE, Yang MEMUDAHKAN PELANGGAN UNTUK MENIKMATI HIDIMAN FAVORIT MEREKA DI RUMAH. SISTEM PEMESANAN yang ramah pengguna dan cepat menjadi nilai tambah bagi Mereka Yang Ingin Menghindari Antrean Panjang.

Rekomendasi tag pengunjung pertama kali

BAGI MEREKA YANG BARU PERAMA KALI MENGUJUPI MIE GACOAN, DISANANANANS UNTUK MENCOBA MIE GORENG PEDAS DAN MIE AYAM YANG SEDAH MESJADI IKON RESORAN INI. Jangan lupa tutka menanyakan rekomendasi staf staf Mengenai tingkat kerpedasan yang sesuai delan selera anda.

Kesimpulan

Mie Gacoan Benar-Benar Menghadirkan Keunikan Dalam Dunia Kuliner Mie Di Indonesia. Delangan Berbagai Pilihan Menu Yang Memanjakan Lidah, Suasana Yang Nyaman, Dan Lokasi Yang Strategis, Mie Gacoan Menjadi Destinasi Yang Wajib Dicoba Bagi Para Pecinta Kuliner. Pengalaman Makan Yang Ditawarkan Bukan Hanya Sekadar Mengisi Perut, Tetapi Bua.

Mie Gacoan: Kenikmatan Makinan Hangat Dekat Mall

Mie Gacoan: Kenikmatan Makinan Hangat Dekat Mall

Mie Gacoan telah menjadi shalat satu tempat favoritkan di Kalangan Pencinta Kuliner, Terutama Bagi Mereka Yang Prencari Hidangan Mie Yang Lezat Dan Nikmat. DENGAN BERBAGAI PILihan Rasa Dan SUASANA Yang Nyaman, Mie Gacoan Menawarkan Pengalaman Makan Yang Tidak Hanya Memuaskan Selera, Tetapi Ragi Ideal untuk mall berseatur berbelanja di mall. Lokasi Strategis Dari Tempat Ini Berada Dekat Pusat Perbelanjaan Membuatinya Semakin Ramai Dikunjungi.

Menu Dan Variasi Makanan

MIE GACOAN Terkenal menu-menu-menu ikoniknya yang Menggugah Selera. Disini, Pengunjung Dapat Menikmat Menu Andalan Seperti Mie Gacoan Pedas, Mie Kwetiau, Dan Berbagai Variasi Mie Lainnya. BAGI YANG MENYUKAI SENSASI PEDAS, MIE GACOAN PEDAS MENJADI PILIHAN UTAMA GANGAN TINGAT KEPEDASAN BAHANG BISA DISESUIAKAN. Kuliner ini Hadir Dalam Beberapa Level, Mulai Dari Yang Yang Mild Hingga Yang Super Pedas, Cocok Untken Anda Yang Berani Mencoba Tantangan Rasa.

Di Samping Itu, restoran ini buta menyediakan beragam topping yang membuat setiap hidangan lebih mergoda. Topping Seperti Bakso, Ayam Suwir, Dan Pangsit Rebus, Anggota Cita Rasa Komplementer Yang Sempurna Bagi Setiap Mangkuk Mie. Pengunjung Dapat Gelangan Mudah Menyesuaikan Pilihan menduduki Sesuai Gangan Selera Pribadi Mereka.

SUASANA DAN KENYAMANAN

SUASANA DI MIE GACOAN SANGAT RAMAH DAN NYAMAN, MENJADIKANYA SEBAGAI TEMPAT YANG PAS UNTUK BERKUMPUL BERSAMA TEMAN ATAU KELUARGA. DENGAN DESAIN INTERIOR YANG MODERN DAN BERSIH, restoran ini mesenciptakan atmosfer Santai Yang Membuat Pengunjung Merasa Betah. Penataan Tempat Duduk Yang Baik Baik MEMUGKINKAN PENGUJUNG UNTUK MENIKMATI MAKANAN MEREKA TANPA MERASA SESAK.

Mie Gacoan Memahami Pentingnya Pelayanan Yang Baik Baik Meningkatkan Pengalaman Makan. Staf Yang Ramah Dan Cepat Tanggap Membuat Proses Pemesanan Dan Penyajian Makanan Berlangsung Lancar. Atmosfer Kombinasi Yang Comzy Dan Pelayanan Yang Memuaska, Mie Gacoan Mengadi Destinasi Yang Ideal Bagi Setiap Pencinta Kuliner.

Lokasi Strategis Dan Aksesibilitas

Salah Satu Daya Tarik Utama Mie Gacoan Adalah Lokasinya Yang Strategi, Berada Dekat Dengan Beberapa Mall Besar. Hal ini memudahkan para pengunjung unkukan mie gacoan sebagai piliihan faan siang atuu malam setelah Berbelanja. AksiSibilitas ke restoran ini SANGAT MUDAH DENGAN BERBAGAI Moda Transportasi, Mulai Dari Kendaraan Pribadi Hingan Transportasi Umum.

BAGI PENGUJUNG YANG DATANG DARI LUAR KOTA ATAU Pengunjung Mall Yang Sedang Berbelanja, Lokasi Mie Gacoan Yang Dekat Pusat Pusat Perbelanjaan Memuatnya Menjadi Pilihan Yang Sempurna. Pengunjung dapat memilih tempat ini unkmati coranan hangat sebagai jeda sebelum melanjutkan aktivitas belanja mereka.

HARGA YANG Terjangkau

Mie Gacoan Tidak Hanya Menawarkan Cita Rasa Yang Luar Biasa, Tetapi Bua Haraga Yang Terjangkau. Menu Daman Yang Bervariasi, Para Pengunjung Dapat Menikmati Hidangan Lezat Tanpa Harus Merogoh Kocek Terlalu Dalam. Hal ini menjadikan mie gacoan sebagai destinasi makanan yang ideal bagi pelajar, pekerja, Dan Keluarga Yang Mencari Makanan Gangan Haranga Yang Bersahabat.

PEMILihan HARGA YANG RAMAH DI KANTONG TANPA MENGORBANAN KUALITAS BAHAN BAKU DAN Cita Rasa MEMBUAT RESORAN INI TETAP DIMINATI. Fasilitas Program Seperti Diskon AtaU Promo Raga Kerap Ditawarkan, Menambah Daya Tarik Bagi Pengunjung Untkal Kembali.

Pemasaran Dan Kehadiran di media sosial

Mie Gacoan Jaga telah memanfaatkan Media KEKUATAN Sosial untuk meningkatkan Kehadiranya di Pasar Kuliner. Platform-platform-platform seperti Instagram Dan Tiktok, restoran ini seringkali membagikan konten menarik berupa foto-foto manan yang mergugah selera dan video pendek Dari pembalaman makanan restoran. Strategi Pemasaran digital ini menjadikanyaa Semakin Populer Di Kalangan Generasi Muda Yang Gemar Berbagi Pengalaman Kuliner Mereka Secara Online.

Interaksi Yang Baik Delangan Pelanggan Melalui Media Sosial Tidak Hanya Meningkatkan Kesadaran Merek, Tetapi JUGA Mencrakan Komunitas Penggemar Yang Loyal. Pelanggan Sering Kali Berbagi Momen Menikmati Kuliner Mie Gacoan, Yang Secara Tidak Langsung Berfungsi Sebagai Promosi Efektif UNTUK Menarik Lebih Banyak Pengunjung.

Menu inovasi Dan Kesegaran Bahan

Salah Satu Hal Yang Membuat Mie Gacoan Tetap Relevan Di Dunia Kuliner Yang Kompetitif Adalah Inovasi Terus-Menerus Dalam Menu Yang Mereka Tawarkan. Restoran ini selalu beruisa untuk menhadirkan variasi baru dan menarik, lewingga pelangan tidak merasa bosan gelanan pilihan yang ada. MISALYA, MEREKA SERING MEMPERKENalkan Menu Musiman Yang Terinspirasi Dari Berbagai Masakan Tradisional Indonesia.

Kesegaran Bahan Baku BuGA Menjadi Prioritas Utama Mie Gacoan. Penggunaan Bahan Berkualitas Tinggi Tidak Hanya Berpengaruh Pada Rasa, Tetapi Jaga Wada Kesehatan Para Pelanggan. Setiapan Hidangan Disiapkan Delangan Penuh Perhatian Untuk Memastikan Bahwa Standar Pembersihan Dan Kualitas Terjaga Delan Baik.

KESAN Pelangan

Mengunjungi Mie Gacoan Menjadi Pengalaman Yang Menyenangkan Bagi Banyak Pelanggan. Ulasan Positif Mengenai Rasa, Kualitas Pelyanan, Dan Suasana Membuatinya Sering Dijadikan Rekomendasi Di Kalangan Teman Dan Keluarga. Pelanggan Sering Memuji Tingkat Kepedasan Yang Sesuai Dengan Prefension Mereka Serta Variasi Topping Yang Melimpah.

Kepuasan Pelanggan Dapat Dilihat Dari Banyaknya Pengunjung Yang Kembali, Bahkan Merekomendasikananya Kepada Teman-Teman Mereka. DGAN MENDENGIKAN MASUKAN DARI Pelanggan, Mie Gacoan Terus Berusia Meningkatkan Layanananya Dan Membuat Setiap Kunjungan Menjadi Berkesan.

Kesimpulan

Mie Gacoan Telah Berhasil Menciptakan Tempat Makan Yang Tidak Hanya Menawarkan Menu Yang Lezat Dan Bervariasi, Tetapi Jeda Pengalaman Berantap Yang Nyaman Dan Penuh Kenangan. DENGAN SEMUA FAKTOR INI, MIE GACOAN MENJADI Salah Satu Destinasi Kuliner Yang Terus Diminati, Terutama Bagi Mereka Yang Sedang Beraktivitas Di Sekitar Mall. Jika Anda Mencari Makanan Hangat Yang Nikmat, Mie Gacoan Adalah Pilihan Yang Tidak Boleh Dilewatkan.

Mie Gacoan: Kuliner Favorit Mahasiswa Dekat Kampus

Mie Gacoan: Kuliner Favorit Mahasiswa Dekat Kampus

Sejarah Dan Asal Usul Mie Gacoan

Mie Gacoan Pertama Kali Muncul di Indonesia Pada Tahun 2016 Dan Cepat Menjadi Terkenal Di Kalangan Mahasiswa, Terutama Di Daerah-Daerah Strategi Deku Kampus. Kesukesan ini Tidak Terlepas Dari Yang Yang Ditawarkan Serta Haraga Yang Terjangkau. Mie Gacoan Dengan Dengan Cita Rasanya Yang Kaya Dan Variasi Menu Yang Bervariasi, Mulai Dari Mie Ayam, Pangsit, Hingga Topping Yang Menggugah Selera. Konsep ini Berhasil Menarik Perhatian Pelajar Dan Mahasiswa Yang Mencari Makanan Cepat Saji Namun Tetap Berkualitas.

Menu Unggulan Dan Variasi

Mie Gacoan Menawarkan Berbagai Pilihan Yang Dapat Dapat Denisan Gangan Selera. Menu BerIKUT ADALAH BEBERAPA Favorit Yang Banya Dipesan Oleh Mahasiswa:

  • Mie Ayam Gacoan: Mie Yang Disajikan Delanan Ayam Suwir, Sayur, Dan Kuah Kaldu Yang Gurih. Topping Yang Melimpah Menjadikan Hidangan Ini Sangan Mengenyangkan.

  • Spesial Mie Goreng: Versi Goreng Dari Mie, Dicampur Delan Berbagai Sayuran Dan Pilihan Protein Seperti Ayam Atau Bakso. Rasa Pedasnya Yang Khas Sangat Disukai Oheh Penggemar Kuliner Pedas.

  • PangSit Goreng: Teman Makan Yang Sempurna, Pangsit Goreng Yang Renyah Ini Disajikan Gangan Sambal Khas Unkule Memberikan Rasa Yang Lebih Menggoda.

  • Variasi topping: Pelanggan Dapat Menambahkan Berbagai Topping Seperti Bakso, Tahu, Dan Telur Rebus Yang Membuat Hidangan Semakin Lezat.

Kenapa Mie Gacoan Menjadi Favorit Mahasiswa?

Adaapa Alasan Kuat Yang Membuat Mie Gacoan Menjadi Pilihan Utama Di Kalangan Mahasiswa:

  1. HARGA Terjangkau: DENGAN HARGA MULAI DARI RP 15.000 HINGGA RP 25.000, MIE GACOAN MANDIAN NILAI LEBIH UNTUK KUALITAS MAKANAN YANG DISAJikan. Ini Adalah Pilihan Sempurna untuk Mahasiswa Mahasiswa Pembatas Anggaran.

  2. Lokasi Strategis: Mie Gacoan Biasianya Terletak Dekat Kampus-Kampus Besar, Memudahkan Mahasiswa untuk Mengaksesnya. DENGAN SUASANA YANG NYAMAN DAN KASUAL, TEMPAT INI MENJADI IDEAL UNTUK BERKUMPUL DENGAN TEMAN-Teman.

  3. Layanan Cepat: Kecepatan Dalam Penyajian Adalah Salah Satu Poin Plus. Setelah Memesan, Biayaan Biasianya Siap Dalam Waktu Singkat, Menjadikananya Pilihan Sempurna untuk Moran Siang di Antara Jam Kuliah.

  4. Bervariasi Dan Fleksibel: Menu Keberagaman Yang Ditawarkan memunckinan Mahasiswa unkoba Mencoba Berbagai Kombinasi. Ini menjadi daya tarik terendiri, di mana mereka dapat memilih sesuai gangan keinginan dan selera.

  5. SUASANA RAMAH: Mie Gacoan Didesain Gangan Suasana Yang Ramah Dan Nyaman, Mendorong Pengunjung untuk Berlama-Lama Menikmati Makanan Dan Berbincang.

KUALITAS BAHAN BAKU

Mie Gacoan Sangan Memperhatikan Kualitas Bahan Baku. Semua Dijamin Segar Dan Berkualitas Tinggi. Mereka Menggunakan Mie Yang Diproduksi Sendiri, Menghasilkan Tekstur Yang Pas Dan Kenyal. Sayuran Yang Digunakan Rugn Diamin Dari Pasar Lokal Untuce Yang Kesegaran Dan Keangian. Selain Itu, Pengendolahan Yang Standar Higienis Membuat Setiap Hidangan Sehat Dan Aman Unkonsumsi.

Pengalaman Pelanggan

Mie Gacoan telah Mendapatkan Banyak Ulasan Positif Dari Pelanggannya. Banyak Mahasiswa Yang Menyatakan Kepuasan Tidak Hanya Dari Rasa, Tetapi Juga Dari Pengalaman Menyantap Makanan Di Tempat Tersebut. Interaksi Sangan Staf Yang Ramah Dan Pelayanan Yang Cepat Menambah Nilai Lebih Dari Restoran Ini. Media sosial rugnah penuh foto dan testimoni Dari pengunjung yang menikmati hidangan Mereka, menananya sebagai shalat satu topik perbincangan hangat di Kalangan mahasiswa.

Strategi Pemasaran Yang Efektif

MIE GACOAN MEMANFAATKAN Media Sosial Sebagai Bagian Dari Strategi Pemasaran Mereka. Mereka Sering Menguncgah Gambar-Gambar Menarik Dari Menu Yang Ditawarkan, Diskon Anggota Atau Promosi Tertentu Yang Menarik Perhatian Mahasiswa. KAMPANYE PEMASARAN YANG Dirancang Delangan Baikiik menjadikan Mie Gacoan Semakin Denkenal Di Kalangan Target Audiens Mereka.

Lokasi Cabang Mie Gacoan

DENGAN Semakin Banyaknya Cabang, Mie Gacoan Dapat Ditemukan Di Berbagai Kota Seperti Jakarta, Bandung, Dan Yogyakarta. Setiap Cabang Berusia TUKUKA KUALITAS YANG SAMA DALAM HAL RASA DAN PELAYANAN. Ketersediaan Cabang Yang Menjangkau Daerah Kampus Membuat Semakin Banyak Mahasiswa Yang Dapat Menikmati Hidangan Ini.

Pengiriman Versi Dan Pembayaran Digital

Mie Gacoan Memudahkan Pengunjung Daman Menawarkan Layanan Pengantaran Melalui Aplikasi Ojek Online. DENGAN INI, Mahasiswa bisa Menikmati Hidangan Tanpa Haruus Keluar Dari Kampus. Tidak Hanya Itu, Mereka Jaga Menerima Berbagai Metode Pembayaran, Termasuk Pembayaran Digital, Membuat Transaksi Menjadi Lebih Efisien Dan Cepat.

Menu Tren Dan Inovasi

Mie Gacoan Terus Berinovasi Menu Menambahkan Menu Musiman Dan Spesial Yangial Membuat Pelanggan Tidak Cepat Bosan. Misalnya, Mereka Menghadirkan Varian Mie Delangu Bumbu Khas Dari Daerah Tertentu, Menarik Minat Mereka Yang MenyUKai Kuliner Nusantara. Ini sebagai langkah unkhadirkan Bahan-Bahan Lokal Ke Dalam Makanan Mereka, Menjadikan Kuliner Yang Unik Dan Autentik.

Komunitas Mie Gacoan

Berkat Popularitasnya, Mie Gacoan Rona Berhasil Menciptakan Komunitas Di Antara Penggemar Makanan ini. Berbagai Kegiatan Seperti Lomba Makan Mie, Acara Promosi, Dan Kolaborasi Influencer Kuliner Sering Digelar Unkarik Lebih Banyak Pengunjung. Hal ini membuat mie gacoan tidak hanya sekadar tempat Makan, tetapi buta sebuah Komunitas Bagi para Mahasiswa Dan Pecinta Kuliner.

Kesimpulan

Mie Gacoan Bukan Hanya Sekadar Tempat Makan, Tetapi Sebuah Fenomena Kuliner Di Kalangan Mahasiswa. Komitmen Terhadap Kualitas, Pelayanan Cepat, Dan Menu Yang Bervariasi Membuatnya Menjadi Pilihan Utama Bagi Mereka Yang Mencari Makanan Lezat Anggan Haraga Terjangkau. Mie Gacoan Telah Berhasil Memikat Hati Para Mahasiswa, Menjadi Bagian Dari Gaya Hidup Kuliner Mereka, Dan Menunjukkan Bahwa Makanan Yang Lezat Tidak Haru Mahal. Mie Gacoan Akan Terus Menjadi Destinasi Kuliner Yang Diidolakan Banyak Orang, Terutama Di Lingkungan Kampus.