\n\n\n\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport const BASE_PATH = (process.env.VUE_APP_API_URL).replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | ((name: string) => string); // parameter for apiKey security\n accessToken?:\n | string\n | Promise\n | ((name?: string, scopes?: string[]) => string | Promise); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null\n ? this.configuration.basePath\n : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === \"function\" ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken():\n | ((name?: string, scopes?: string[]) => string | Promise)\n | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === \"function\"\n ? accessToken\n : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware(this: T, ...middlewares: Middleware[]) {\n const next = this.clone();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware(\n this: T,\n ...preMiddlewares: Array\n ) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware(...middlewares);\n }\n\n withPostMiddleware(\n this: T,\n ...postMiddlewares: Array\n ) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware(...middlewares);\n }\n\n protected async request(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction\n ): Promise {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && response.status >= 200 && response.status < 300) {\n return response;\n }\n throw new ResponseError(response, \"Response returned an error code\");\n }\n\n private async createFetchParams(\n context: RequestOpts,\n initOverrides?: RequestInit | InitOverrideFunction\n ) {\n let url = this.configuration.basePath + context.path;\n if (\n context.query !== undefined &&\n Object.keys(context.query).length !== 0\n ) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += \"?\" + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign(\n {},\n this.configuration.headers,\n context.headers\n );\n Object.keys(headers).forEach((key) =>\n headers[key] === undefined ? delete headers[key] : {}\n );\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overridedInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n })),\n };\n\n const init: RequestInit = {\n ...overridedInit,\n body:\n isFormData(overridedInit.body) ||\n overridedInit.body instanceof URLSearchParams ||\n isBlob(overridedInit.body)\n ? overridedInit.body\n : JSON.stringify(overridedInit.body),\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams =\n (await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n })) || fetchParams;\n }\n }\n let response = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(\n fetchParams.url,\n fetchParams.init\n );\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response =\n (await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n })) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(\n e,\n \"The request failed and the interceptors did not return an alternative response\"\n );\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response =\n (await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n })) || response;\n }\n }\n return response;\n };\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n}\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== \"undefined\" && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope[\"fetch\"];\n\nexport type Json = any;\nexport type HTTPMethod =\n | \"GET\"\n | \"POST\"\n | \"PUT\"\n | \"PATCH\"\n | \"DELETE\"\n | \"OPTIONS\"\n | \"HEAD\";\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = {\n [key: string]:\n | string\n | number\n | null\n | boolean\n | Array\n | Set\n | HTTPQuery;\n};\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = {\n headers?: HTTPHeaders;\n method: HTTPMethod;\n credentials?: RequestCredentials;\n body?: HTTPBody;\n};\nexport type ModelPropertyNaming =\n | \"camelCase\"\n | \"snake_case\"\n | \"PascalCase\"\n | \"original\";\n\nexport type InitOverrideFunction = (requestContext: {\n init: HTTPRequestInit;\n context: RequestOpts;\n}) => Promise;\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function exists(json: any, key: string) {\n const value = json[key];\n return value !== null && value !== undefined;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = \"\"): string {\n return Object.keys(params)\n .map((key) => querystringSingleKey(key, params[key], prefix))\n .filter((part) => part.length > 0)\n .join(\"&\");\n}\n\nfunction querystringSingleKey(\n key: string,\n value:\n | string\n | number\n | null\n | undefined\n | boolean\n | Array\n | Set\n | HTTPQuery,\n keyPrefix: string = \"\"\n): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value\n .map((singleValue) => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(\n value.toISOString()\n )}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if (\"multipart/form-data\" === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise;\n post?(context: ResponseContext): Promise;\n onError?(context: ErrorContext): Promise;\n}\n\nexport interface ApiResponse {\n raw: Response;\n value(): Promise;\n}\n\nexport interface ResponseTransformer {\n (json: any): T;\n}\n\nexport class JSONApiResponse {\n constructor(\n public raw: Response,\n private transformer: ResponseTransformer = (jsonValue: any) => jsonValue\n ) {}\n\n async value(): Promise {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return await this.raw.blob();\n }\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise {\n return await this.raw.text();\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\n/**\n * Media resource object\n * @export\n * @interface Media\n */\nexport interface Media {\n /**\n *\n * @type {number}\n * @memberof Media\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n name: string;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n mime?: string;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n extension: string;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n title: string | null;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n description: string | null;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n disk: string | null;\n /**\n * Must start and end with `/`.\n * @type {string}\n * @memberof Media\n */\n folder: string;\n /**\n *\n * @type {number}\n * @memberof Media\n */\n order: number | null;\n /**\n *\n * @type {string}\n * @memberof Media\n */\n url: string;\n /**\n * Media metadata resource object\n * @type {object}\n * @memberof Media\n */\n metadata: object;\n /**\n *\n * @type {Array}\n * @memberof Media\n */\n variants?: Array;\n}\n\n/**\n * Check if a given object implements the Media interface.\n */\nexport function instanceOfMedia(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"name\" in value;\n isInstance = isInstance && \"extension\" in value;\n isInstance = isInstance && \"title\" in value;\n isInstance = isInstance && \"description\" in value;\n isInstance = isInstance && \"disk\" in value;\n isInstance = isInstance && \"folder\" in value;\n isInstance = isInstance && \"order\" in value;\n isInstance = isInstance && \"url\" in value;\n isInstance = isInstance && \"metadata\" in value;\n\n return isInstance;\n}\n\nexport function MediaFromJSON(json: any): Media {\n return MediaFromJSONTyped(json, false);\n}\n\nexport function MediaFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Media {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n name: json[\"name\"],\n mime: !exists(json, \"mime\") ? undefined : json[\"mime\"],\n extension: json[\"extension\"],\n title: json[\"title\"],\n description: json[\"description\"],\n disk: json[\"disk\"],\n folder: json[\"folder\"],\n order: json[\"order\"],\n url: json[\"url\"],\n metadata: json[\"metadata\"],\n variants: !exists(json, \"variants\")\n ? undefined\n : (json[\"variants\"] as Array).map(MediaFromJSON),\n };\n}\n\nexport function MediaToJSON(value?: Media | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n name: value.name,\n mime: value.mime,\n extension: value.extension,\n title: value.title,\n description: value.description,\n disk: value.disk,\n folder: value.folder,\n order: value.order,\n url: value.url,\n metadata: value.metadata,\n variants:\n value.variants === undefined\n ? undefined\n : (value.variants as Array).map(MediaToJSON),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\n/**\n * Schedule resource object\n * @export\n * @interface Schedule\n */\nexport interface Schedule {\n /**\n *\n * @type {number}\n * @memberof Schedule\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Schedule\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Schedule\n */\n weekday: ScheduleWeekdayEnum;\n /**\n * Start hour of the day [0 ; 23].\n * @type {number}\n * @memberof Schedule\n */\n begHour: number;\n /**\n * End hour of the day [0 ; 23]. If less then beg_hour it,\n * * then it meens that it's a cross day schedule\n * @type {number}\n * @memberof Schedule\n */\n endHour: number;\n /**\n * Start minute of the day [0 ; 59].\n * @type {number}\n * @memberof Schedule\n */\n begMinute: number;\n /**\n * End minute of the day [0 ; 59].\n * @type {number}\n * @memberof Schedule\n */\n endMinute: number;\n /**\n *\n * @type {number}\n * @memberof Schedule\n */\n restaurantId: number | null;\n /**\n * Number of minutes untill the restaurant starts operating.\n * If null then restaurant is already operating on this schedule.\n * @type {number}\n * @memberof Schedule\n */\n begsIn: number | null;\n /**\n * Number of minutes untill the restaurant ends operating.\n * @type {number}\n * @memberof Schedule\n */\n endsIn: number | null;\n /**\n *\n * @type {boolean}\n * @memberof Schedule\n */\n isCrossDate: boolean;\n /**\n *\n * @type {Date}\n * @memberof Schedule\n */\n closestDate: Date | null;\n /**\n *\n * @type {string}\n * @memberof Schedule\n */\n timezone: string | null;\n /**\n * Minutes offset from UTC, which is already applied to `closest_date`\n * @type {number}\n * @memberof Schedule\n */\n timezoneOffset: number | null;\n /**\n *\n * @type {boolean}\n * @memberof Schedule\n */\n archived: boolean;\n}\n\n/**\n * @export\n */\nexport const ScheduleWeekdayEnum = {\n Monday: \"monday\",\n Tuesday: \"tuesday\",\n Wednesday: \"wednesday\",\n Thursday: \"thursday\",\n Friday: \"friday\",\n Saturday: \"saturday\",\n Sunday: \"sunday\",\n} as const;\nexport type ScheduleWeekdayEnum =\n (typeof ScheduleWeekdayEnum)[keyof typeof ScheduleWeekdayEnum];\n\n/**\n * Check if a given object implements the Schedule interface.\n */\nexport function instanceOfSchedule(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"weekday\" in value;\n isInstance = isInstance && \"begHour\" in value;\n isInstance = isInstance && \"endHour\" in value;\n isInstance = isInstance && \"begMinute\" in value;\n isInstance = isInstance && \"endMinute\" in value;\n isInstance = isInstance && \"restaurantId\" in value;\n isInstance = isInstance && \"begsIn\" in value;\n isInstance = isInstance && \"endsIn\" in value;\n isInstance = isInstance && \"isCrossDate\" in value;\n isInstance = isInstance && \"closestDate\" in value;\n isInstance = isInstance && \"timezone\" in value;\n isInstance = isInstance && \"timezoneOffset\" in value;\n isInstance = isInstance && \"archived\" in value;\n\n return isInstance;\n}\n\nexport function ScheduleFromJSON(json: any): Schedule {\n return ScheduleFromJSONTyped(json, false);\n}\n\nexport function ScheduleFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Schedule {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n weekday: json[\"weekday\"],\n begHour: json[\"beg_hour\"],\n endHour: json[\"end_hour\"],\n begMinute: json[\"beg_minute\"],\n endMinute: json[\"end_minute\"],\n restaurantId: json[\"restaurant_id\"],\n begsIn: json[\"begs_in\"],\n endsIn: json[\"ends_in\"],\n isCrossDate: json[\"is_cross_date\"],\n closestDate:\n json[\"closest_date\"] === null ? null : new Date(json[\"closest_date\"]),\n timezone: json[\"timezone\"],\n timezoneOffset: json[\"timezone_offset\"],\n archived: json[\"archived\"],\n };\n}\n\nexport function ScheduleToJSON(value?: Schedule | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n weekday: value.weekday,\n beg_hour: value.begHour,\n end_hour: value.endHour,\n beg_minute: value.begMinute,\n end_minute: value.endMinute,\n restaurant_id: value.restaurantId,\n begs_in: value.begsIn,\n ends_in: value.endsIn,\n is_cross_date: value.isCrossDate,\n closest_date:\n value.closestDate === null ? null : value.closestDate.toISOString(),\n timezone: value.timezone,\n timezone_offset: value.timezoneOffset,\n archived: value.archived,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { Media } from \"./Media\";\nimport { MediaFromJSON, MediaFromJSONTyped, MediaToJSON } from \"./Media\";\nimport type { Schedule } from \"./Schedule\";\nimport {\n ScheduleFromJSON,\n ScheduleFromJSONTyped,\n ScheduleToJSON,\n} from \"./Schedule\";\n\n/**\n * Restaurant resource object\n * @export\n * @interface Restaurant\n */\nexport interface Restaurant {\n /**\n *\n * @type {number}\n * @memberof Restaurant\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n slug: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n name: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n country: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n city: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n place: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n fullAddress?: string;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n phone: string | null;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n email: string | null;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n location: string | null;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n website: string | null;\n /**\n *\n * @type {string}\n * @memberof Restaurant\n */\n timezone: string;\n /**\n * Selected timezone offset in minutes.\n * @type {number}\n * @memberof Restaurant\n */\n timezoneOffset: number;\n /**\n *\n * @type {number}\n * @memberof Restaurant\n */\n popularity: number | null;\n /**\n *\n * @type {Array}\n * @memberof Restaurant\n */\n media: Array;\n /**\n *\n * @type {Array}\n * @memberof Restaurant\n */\n schedules?: Array;\n}\n\n/**\n * Check if a given object implements the Restaurant interface.\n */\nexport function instanceOfRestaurant(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"slug\" in value;\n isInstance = isInstance && \"name\" in value;\n isInstance = isInstance && \"country\" in value;\n isInstance = isInstance && \"city\" in value;\n isInstance = isInstance && \"place\" in value;\n isInstance = isInstance && \"phone\" in value;\n isInstance = isInstance && \"email\" in value;\n isInstance = isInstance && \"location\" in value;\n isInstance = isInstance && \"website\" in value;\n isInstance = isInstance && \"timezone\" in value;\n isInstance = isInstance && \"timezoneOffset\" in value;\n isInstance = isInstance && \"popularity\" in value;\n isInstance = isInstance && \"media\" in value;\n\n return isInstance;\n}\n\nexport function RestaurantFromJSON(json: any): Restaurant {\n return RestaurantFromJSONTyped(json, false);\n}\n\nexport function RestaurantFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Restaurant {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n slug: json[\"slug\"],\n name: json[\"name\"],\n country: json[\"country\"],\n city: json[\"city\"],\n place: json[\"place\"],\n fullAddress: !exists(json, \"full_address\")\n ? undefined\n : json[\"full_address\"],\n phone: json[\"phone\"],\n email: json[\"email\"],\n location: json[\"location\"],\n website: json[\"website\"],\n timezone: json[\"timezone\"],\n timezoneOffset: json[\"timezone_offset\"],\n popularity: json[\"popularity\"],\n media: (json[\"media\"] as Array).map(MediaFromJSON),\n schedules: !exists(json, \"schedules\")\n ? undefined\n : (json[\"schedules\"] as Array).map(ScheduleFromJSON),\n };\n}\n\nexport function RestaurantToJSON(value?: Restaurant | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n slug: value.slug,\n name: value.name,\n country: value.country,\n city: value.city,\n place: value.place,\n full_address: value.fullAddress,\n phone: value.phone,\n email: value.email,\n location: value.location,\n website: value.website,\n timezone: value.timezone,\n timezone_offset: value.timezoneOffset,\n popularity: value.popularity,\n media: (value.media as Array).map(MediaToJSON),\n schedules:\n value.schedules === undefined\n ? undefined\n : (value.schedules as Array).map(ScheduleToJSON),\n };\n}\n","\n
\n \n\n \n \n \n
\n\n\n\n\n\n","\n \n\n\n\n","import { render } from \"./BaseIcon.vue?vue&type=template&id=7de4127e\"\nimport script from \"./BaseIcon.vue?vue&type=script&lang=js\"\nexport * from \"./BaseIcon.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Icon.vue?vue&type=template&id=046f6d0e&scoped=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\n\nimport \"./Icon.vue?vue&type=style&index=0&id=046f6d0e&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-046f6d0e\"]])\n\nexport default __exports__","\n
\n {{ name }}\n {{ description?.length ? description : place }}\n
\n\n\n\n\n\n","import { render } from \"./Details.vue?vue&type=template&id=5cc0582a\"\nimport script from \"./Details.vue?vue&type=script&lang=js\"\nexport * from \"./Details.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Item.vue?vue&type=template&id=3e0d928a\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { daisyui } from '../tailwind.config.js' \n\nexport class ThemeConfig {\n /** Local storage key name */\n public static storage = 'data-theme';\n /** HTML element attribute name */\n public static attribute = 'data-theme';\n\n /** List of available themes */\n public static list(): string[] {\n return daisyui.themes.map((theme) => {\n if (typeof theme === 'string') {\n return theme;\n } else if (typeof theme === 'object') {\n return Object.keys(theme);\n }\n }).flat();\n } \n /** Dark theme name */\n public static dark(): string {\n return daisyui.darkTheme;\n }\n /** Default theme */\n public static default(): string {\n return this.list()[0];\n }\n}\n\nexport class RestaurantConfig {\n /** Local storage key name */\n public static storage = 'selected-restaurant';\n}","import { render } from \"./NavBar.vue?vue&type=template&id=0f2b1e4c\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n\n
\n
\n \n
\n
\n \n {{ m.title }}\n \n\n
1\">\n \n \n \n
\n
\n
\n
\n
\n \n
\n
\n\n
\n\n\n\n\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\n/**\n * Tag resource object\n * @export\n * @interface Tag\n */\nexport interface Tag {\n /**\n *\n * @type {number}\n * @memberof Tag\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Tag\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Tag\n */\n target: string | null;\n /**\n *\n * @type {string}\n * @memberof Tag\n */\n title: string;\n /**\n *\n * @type {any}\n * @memberof Tag\n */\n description: any | null;\n}\n\n/**\n * Check if a given object implements the Tag interface.\n */\nexport function instanceOfTag(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"target\" in value;\n isInstance = isInstance && \"title\" in value;\n isInstance = isInstance && \"description\" in value;\n\n return isInstance;\n}\n\nexport function TagFromJSON(json: any): Tag {\n return TagFromJSONTyped(json, false);\n}\n\nexport function TagFromJSONTyped(json: any, ignoreDiscriminator: boolean): Tag {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n target: json[\"target\"],\n title: json[\"title\"],\n description: json[\"description\"],\n };\n}\n\nexport function TagToJSON(value?: Tag | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n target: value.target,\n title: value.title,\n description: value.description,\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { Media } from \"./Media\";\nimport { MediaFromJSON, MediaFromJSONTyped, MediaToJSON } from \"./Media\";\nimport type { Tag } from \"./Tag\";\nimport { TagFromJSON, TagFromJSONTyped, TagToJSON } from \"./Tag\";\n\n/**\n * Category resource object\n * @export\n * @interface Category\n */\nexport interface Category {\n /**\n *\n * @type {number}\n * @memberof Category\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Category\n */\n slug: string;\n /**\n *\n * @type {string}\n * @memberof Category\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Category\n */\n target: string | null;\n /**\n *\n * @type {string}\n * @memberof Category\n */\n title: string;\n /**\n *\n * @type {any}\n * @memberof Category\n */\n description: any | null;\n /**\n *\n * @type {Array}\n * @memberof Category\n */\n tags?: Array;\n /**\n *\n * @type {Array}\n * @memberof Category\n */\n media: Array;\n}\n\n/**\n * Check if a given object implements the Category interface.\n */\nexport function instanceOfCategory(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"slug\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"target\" in value;\n isInstance = isInstance && \"title\" in value;\n isInstance = isInstance && \"description\" in value;\n isInstance = isInstance && \"media\" in value;\n\n return isInstance;\n}\n\nexport function CategoryFromJSON(json: any): Category {\n return CategoryFromJSONTyped(json, false);\n}\n\nexport function CategoryFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Category {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n slug: json[\"slug\"],\n type: json[\"type\"],\n target: json[\"target\"],\n title: json[\"title\"],\n description: json[\"description\"],\n tags: !exists(json, \"tags\")\n ? undefined\n : (json[\"tags\"] as Array).map(TagFromJSON),\n media: (json[\"media\"] as Array).map(MediaFromJSON),\n };\n}\n\nexport function CategoryToJSON(value?: Category | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n slug: value.slug,\n type: value.type,\n target: value.target,\n title: value.title,\n description: value.description,\n tags:\n value.tags === undefined\n ? undefined\n : (value.tags as Array).map(TagToJSON),\n media: (value.media as Array).map(MediaToJSON),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { Alternation } from \"./Alternation\";\nimport {\n AlternationFromJSON,\n AlternationFromJSONTyped,\n AlternationToJSON,\n} from \"./Alternation\";\n\n/**\n * Product variant resource object\n * @export\n * @interface ProductVariant\n */\nexport interface ProductVariant {\n /**\n *\n * @type {number}\n * @memberof ProductVariant\n */\n id: number;\n /**\n *\n * @type {number}\n * @memberof ProductVariant\n */\n productId: number;\n /**\n *\n * @type {string}\n * @memberof ProductVariant\n */\n type: string;\n /**\n *\n * @type {number}\n * @memberof ProductVariant\n */\n price: number;\n /**\n *\n * @type {number}\n * @memberof ProductVariant\n */\n weight: number;\n /**\n *\n * @type {string}\n * @memberof ProductVariant\n */\n weightUnit: ProductVariantWeightUnitEnum;\n /**\n *\n * @type {Array}\n * @memberof ProductVariant\n */\n alterations?: Array;\n /**\n *\n * @type {Array}\n * @memberof ProductVariant\n */\n pendingAlterations?: Array;\n /**\n *\n * @type {Array}\n * @memberof ProductVariant\n */\n performedAlterations?: Array;\n}\n\n/**\n * @export\n */\nexport const ProductVariantWeightUnitEnum = {\n G: \"g\",\n Kg: \"kg\",\n Ml: \"ml\",\n L: \"l\",\n Cm: \"cm\",\n} as const;\nexport type ProductVariantWeightUnitEnum =\n (typeof ProductVariantWeightUnitEnum)[keyof typeof ProductVariantWeightUnitEnum];\n\n/**\n * Check if a given object implements the ProductVariant interface.\n */\nexport function instanceOfProductVariant(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"productId\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"price\" in value;\n isInstance = isInstance && \"weight\" in value;\n isInstance = isInstance && \"weightUnit\" in value;\n\n return isInstance;\n}\n\nexport function ProductVariantFromJSON(json: any): ProductVariant {\n return ProductVariantFromJSONTyped(json, false);\n}\n\nexport function ProductVariantFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): ProductVariant {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n productId: json[\"product_id\"],\n type: json[\"type\"],\n price: json[\"price\"],\n weight: json[\"weight\"],\n weightUnit: json[\"weight_unit\"],\n alterations: !exists(json, \"alterations\")\n ? undefined\n : (json[\"alterations\"] as Array).map(AlternationFromJSON),\n pendingAlterations: !exists(json, \"pendingAlterations\")\n ? undefined\n : (json[\"pendingAlterations\"] as Array).map(AlternationFromJSON),\n performedAlterations: !exists(json, \"performedAlterations\")\n ? undefined\n : (json[\"performedAlterations\"] as Array).map(AlternationFromJSON),\n };\n}\n\nexport function ProductVariantToJSON(value?: ProductVariant | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n product_id: value.productId,\n type: value.type,\n price: value.price,\n weight: value.weight,\n weight_unit: value.weightUnit,\n alterations:\n value.alterations === undefined\n ? undefined\n : (value.alterations as Array).map(AlternationToJSON),\n pendingAlterations:\n value.pendingAlterations === undefined\n ? undefined\n : (value.pendingAlterations as Array).map(AlternationToJSON),\n performedAlterations:\n value.performedAlterations === undefined\n ? undefined\n : (value.performedAlterations as Array).map(AlternationToJSON),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n Product,\n instanceOfProduct,\n ProductFromJSON,\n ProductFromJSONTyped,\n ProductToJSON,\n} from \"./Product\";\nimport {\n ProductVariant,\n instanceOfProductVariant,\n ProductVariantFromJSON,\n ProductVariantFromJSONTyped,\n ProductVariantToJSON,\n} from \"./ProductVariant\";\n\n/**\n * @type AlternationAlterable\n *\n * @export\n */\nexport type AlternationAlterable = Product | ProductVariant;\n\nexport function AlternationAlterableFromJSON(json: any): AlternationAlterable {\n return AlternationAlterableFromJSONTyped(json, false);\n}\n\nexport function AlternationAlterableFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): AlternationAlterable {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n ...ProductFromJSONTyped(json, true),\n ...ProductVariantFromJSONTyped(json, true),\n };\n}\n\nexport function AlternationAlterableToJSON(\n value?: AlternationAlterable | null\n): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n\n if (instanceOfProduct(value)) {\n return ProductToJSON(value as Product);\n }\n if (instanceOfProductVariant(value)) {\n return ProductVariantToJSON(value as ProductVariant);\n }\n\n return {};\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { AlternationAlterable } from \"./AlternationAlterable\";\nimport {\n AlternationAlterableFromJSON,\n AlternationAlterableFromJSONTyped,\n AlternationAlterableToJSON,\n} from \"./AlternationAlterable\";\n\n/**\n * Alternation resource object\n * @export\n * @interface Alternation\n */\nexport interface Alternation {\n /**\n *\n * @type {number}\n * @memberof Alternation\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Alternation\n */\n type: string;\n /**\n *\n * @type {object}\n * @memberof Alternation\n */\n metadata: object | null;\n /**\n *\n * @type {number}\n * @memberof Alternation\n */\n alterableId: number;\n /**\n *\n * @type {string}\n * @memberof Alternation\n */\n alterableType: string;\n /**\n *\n * @type {Date}\n * @memberof Alternation\n */\n performAt: Date | null;\n /**\n *\n * @type {Date}\n * @memberof Alternation\n */\n performedAt: Date | null;\n /**\n *\n * @type {AlternationAlterable}\n * @memberof Alternation\n */\n alterable?: AlternationAlterable;\n}\n\n/**\n * Check if a given object implements the Alternation interface.\n */\nexport function instanceOfAlternation(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"metadata\" in value;\n isInstance = isInstance && \"alterableId\" in value;\n isInstance = isInstance && \"alterableType\" in value;\n isInstance = isInstance && \"performAt\" in value;\n isInstance = isInstance && \"performedAt\" in value;\n\n return isInstance;\n}\n\nexport function AlternationFromJSON(json: any): Alternation {\n return AlternationFromJSONTyped(json, false);\n}\n\nexport function AlternationFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Alternation {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n metadata: json[\"metadata\"],\n alterableId: json[\"alterable_id\"],\n alterableType: json[\"alterable_type\"],\n performAt:\n json[\"perform_at\"] === null ? null : new Date(json[\"perform_at\"]),\n performedAt:\n json[\"performed_at\"] === null ? null : new Date(json[\"performed_at\"]),\n alterable: !exists(json, \"alterable\")\n ? undefined\n : AlternationAlterableFromJSON(json[\"alterable\"]),\n };\n}\n\nexport function AlternationToJSON(value?: Alternation | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n metadata: value.metadata,\n alterable_id: value.alterableId,\n alterable_type: value.alterableType,\n perform_at: value.performAt === null ? null : value.performAt.toISOString(),\n performed_at:\n value.performedAt === null ? null : value.performedAt.toISOString(),\n alterable: AlternationAlterableToJSON(value.alterable),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { Alternation } from \"./Alternation\";\nimport {\n AlternationFromJSON,\n AlternationFromJSONTyped,\n AlternationToJSON,\n} from \"./Alternation\";\nimport type { Category } from \"./Category\";\nimport {\n CategoryFromJSON,\n CategoryFromJSONTyped,\n CategoryToJSON,\n} from \"./Category\";\nimport type { Media } from \"./Media\";\nimport { MediaFromJSON, MediaFromJSONTyped, MediaToJSON } from \"./Media\";\nimport type { ProductVariant } from \"./ProductVariant\";\nimport {\n ProductVariantFromJSON,\n ProductVariantFromJSONTyped,\n ProductVariantToJSON,\n} from \"./ProductVariant\";\nimport type { Tag } from \"./Tag\";\nimport { TagFromJSON, TagFromJSONTyped, TagToJSON } from \"./Tag\";\n\n/**\n * Product resource object\n * @export\n * @interface Product\n */\nexport interface Product {\n /**\n *\n * @type {number}\n * @memberof Product\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Product\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Product\n */\n title: string;\n /**\n *\n * @type {string}\n * @memberof Product\n */\n description: string | null;\n /**\n *\n * @type {number}\n * @memberof Product\n */\n price: number;\n /**\n *\n * @type {number}\n * @memberof Product\n */\n weight: number | null;\n /**\n *\n * @type {string}\n * @memberof Product\n */\n weightUnit: ProductWeightUnitEnum;\n /**\n *\n * @type {string}\n * @memberof Product\n */\n badge: string | null;\n /**\n *\n * @type {boolean}\n * @memberof Product\n */\n archived: boolean;\n /**\n *\n * @type {number}\n * @memberof Product\n */\n popularity: number | null;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n variants: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n categories?: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n categoryIds: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n tags?: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n media: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n alterations?: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n pendingAlterations?: Array;\n /**\n *\n * @type {Array}\n * @memberof Product\n */\n performedAlterations?: Array;\n}\n\n/**\n * @export\n */\nexport const ProductWeightUnitEnum = {\n G: \"g\",\n Kg: \"kg\",\n Ml: \"ml\",\n L: \"l\",\n Cm: \"cm\",\n} as const;\nexport type ProductWeightUnitEnum =\n (typeof ProductWeightUnitEnum)[keyof typeof ProductWeightUnitEnum];\n\n/**\n * Check if a given object implements the Product interface.\n */\nexport function instanceOfProduct(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"title\" in value;\n isInstance = isInstance && \"description\" in value;\n isInstance = isInstance && \"price\" in value;\n isInstance = isInstance && \"weight\" in value;\n isInstance = isInstance && \"weightUnit\" in value;\n isInstance = isInstance && \"badge\" in value;\n isInstance = isInstance && \"archived\" in value;\n isInstance = isInstance && \"popularity\" in value;\n isInstance = isInstance && \"variants\" in value;\n isInstance = isInstance && \"categoryIds\" in value;\n isInstance = isInstance && \"media\" in value;\n\n return isInstance;\n}\n\nexport function ProductFromJSON(json: any): Product {\n return ProductFromJSONTyped(json, false);\n}\n\nexport function ProductFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Product {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n title: json[\"title\"],\n description: json[\"description\"],\n price: json[\"price\"],\n weight: json[\"weight\"],\n weightUnit: json[\"weight_unit\"],\n badge: json[\"badge\"],\n archived: json[\"archived\"],\n popularity: json[\"popularity\"],\n variants: (json[\"variants\"] as Array).map(ProductVariantFromJSON),\n categories: !exists(json, \"categories\")\n ? undefined\n : (json[\"categories\"] as Array).map(CategoryFromJSON),\n categoryIds: json[\"category_ids\"],\n tags: !exists(json, \"tags\")\n ? undefined\n : (json[\"tags\"] as Array).map(TagFromJSON),\n media: (json[\"media\"] as Array).map(MediaFromJSON),\n alterations: !exists(json, \"alterations\")\n ? undefined\n : (json[\"alterations\"] as Array).map(AlternationFromJSON),\n pendingAlterations: !exists(json, \"pendingAlterations\")\n ? undefined\n : (json[\"pendingAlterations\"] as Array).map(AlternationFromJSON),\n performedAlterations: !exists(json, \"performedAlterations\")\n ? undefined\n : (json[\"performedAlterations\"] as Array).map(AlternationFromJSON),\n };\n}\n\nexport function ProductToJSON(value?: Product | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n title: value.title,\n description: value.description,\n price: value.price,\n weight: value.weight,\n weight_unit: value.weightUnit,\n badge: value.badge,\n archived: value.archived,\n popularity: value.popularity,\n variants: (value.variants as Array).map(ProductVariantToJSON),\n categories:\n value.categories === undefined\n ? undefined\n : (value.categories as Array).map(CategoryToJSON),\n category_ids: value.categoryIds,\n tags:\n value.tags === undefined\n ? undefined\n : (value.tags as Array).map(TagToJSON),\n media: (value.media as Array).map(MediaToJSON),\n alterations:\n value.alterations === undefined\n ? undefined\n : (value.alterations as Array).map(AlternationToJSON),\n pendingAlterations:\n value.pendingAlterations === undefined\n ? undefined\n : (value.pendingAlterations as Array).map(AlternationToJSON),\n performedAlterations:\n value.performedAlterations === undefined\n ? undefined\n : (value.performedAlterations as Array).map(AlternationToJSON),\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * imperia-api\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 0.1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { exists, mapValues } from \"../runtime\";\nimport type { Category } from \"./Category\";\nimport {\n CategoryFromJSON,\n CategoryFromJSONTyped,\n CategoryToJSON,\n} from \"./Category\";\nimport type { Media } from \"./Media\";\nimport { MediaFromJSON, MediaFromJSONTyped, MediaToJSON } from \"./Media\";\nimport type { Product } from \"./Product\";\nimport {\n ProductFromJSON,\n ProductFromJSONTyped,\n ProductToJSON,\n} from \"./Product\";\n\n/**\n * Menu resource object\n * @export\n * @interface Menu\n */\nexport interface Menu {\n /**\n *\n * @type {number}\n * @memberof Menu\n */\n id: number;\n /**\n *\n * @type {string}\n * @memberof Menu\n */\n type: string;\n /**\n *\n * @type {string}\n * @memberof Menu\n */\n title: string;\n /**\n *\n * @type {string}\n * @memberof Menu\n */\n description: string;\n /**\n *\n * @type {boolean}\n * @memberof Menu\n */\n archived: boolean;\n /**\n *\n * @type {number}\n * @memberof Menu\n */\n popularity: number | null;\n /**\n *\n * @type {Array}\n * @memberof Menu\n */\n products?: Array;\n /**\n * Categories that are attached directly to the menu.\n * @type {Array}\n * @memberof Menu\n */\n categories: Array;\n /**\n *\n * @type {Array}\n * @memberof Menu\n */\n media: Array;\n}\n\n/**\n * Check if a given object implements the Menu interface.\n */\nexport function instanceOfMenu(value: object): boolean {\n let isInstance = true;\n isInstance = isInstance && \"id\" in value;\n isInstance = isInstance && \"type\" in value;\n isInstance = isInstance && \"title\" in value;\n isInstance = isInstance && \"description\" in value;\n isInstance = isInstance && \"archived\" in value;\n isInstance = isInstance && \"popularity\" in value;\n isInstance = isInstance && \"categories\" in value;\n isInstance = isInstance && \"media\" in value;\n\n return isInstance;\n}\n\nexport function MenuFromJSON(json: any): Menu {\n return MenuFromJSONTyped(json, false);\n}\n\nexport function MenuFromJSONTyped(\n json: any,\n ignoreDiscriminator: boolean\n): Menu {\n if (json === undefined || json === null) {\n return json;\n }\n return {\n id: json[\"id\"],\n type: json[\"type\"],\n title: json[\"title\"],\n description: json[\"description\"],\n archived: json[\"archived\"],\n popularity: json[\"popularity\"],\n products: !exists(json, \"products\")\n ? undefined\n : (json[\"products\"] as Array).map(ProductFromJSON),\n categories: (json[\"categories\"] as Array).map(CategoryFromJSON),\n media: (json[\"media\"] as Array).map(MediaFromJSON),\n };\n}\n\nexport function MenuToJSON(value?: Menu | null): any {\n if (value === undefined) {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n return {\n id: value.id,\n type: value.type,\n title: value.title,\n description: value.description,\n archived: value.archived,\n popularity: value.popularity,\n products:\n value.products === undefined\n ? undefined\n : (value.products as Array).map(ProductToJSON),\n categories: (value.categories as Array).map(CategoryToJSON),\n media: (value.media as Array).map(MediaToJSON),\n };\n}\n","import { render } from \"./PreviewMenuNavBar.vue?vue&type=template&id=4e8f520a\"\nimport script from \"./PreviewMenuNavBar.vue?vue&type=script&lang=js\"\nexport * from \"./PreviewMenuNavBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n
\n
\n \n \n \n
\n
\n
\n\n\n\n\n\n","\n \n\n\n\n\n\n","import { render } from \"./Category.vue?vue&type=template&id=5e5a6f7c&scoped=true\"\nimport script from \"./Category.vue?vue&type=script&lang=js\"\nexport * from \"./Category.vue?vue&type=script&lang=js\"\n\nimport \"./Category.vue?vue&type=style&index=0&id=5e5a6f7c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5e5a6f7c\"]])\n\nexport default __exports__","import { render } from \"./PreviewCategoryNavBar.vue?vue&type=template&id=4ce0f5b1\"\nimport script from \"./PreviewCategoryNavBar.vue?vue&type=script&lang=js\"\nexport * from \"./PreviewCategoryNavBar.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n\n
\n \n \n \n \n \n \n \n \n\n
\n {{ cTitle }}\n
\n\n
\n {{ cDescription }}\n
\n
\n\n\n
\n \n\n \n
\n\n
\n\n\n\n\n\n","import { render } from \"./Error.vue?vue&type=template&id=25623978\"\nimport script from \"./Error.vue?vue&type=script&lang=js\"\nexport * from \"./Error.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n\n
\n
\n
{{ title }}
\n
{{ description }}
\n
\n\n \n \n \n
\n\n
\n\n\n\n\n\n","import { render } from \"./Menu.vue?vue&type=template&id=71c3cf1e&scoped=true\"\nimport script from \"./Menu.vue?vue&type=script&lang=js\"\nexport * from \"./Menu.vue?vue&type=script&lang=js\"\n\nimport \"./Menu.vue?vue&type=style&index=0&id=71c3cf1e&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-71c3cf1e\"]])\n\nexport default __exports__","\n