{"version":3,"file":"components-lhzM4Auk.cjs","names":["#options","#transformParam","#eachParam","getParams","FunctionParams","getTransformer","File","Function","Type","getParams","FunctionParams","File","Function","Type","getParams","FunctionParams","Client","File","Function","getParams","FunctionParams","Client","File","Function","FunctionParams","File","Function"],"sources":["../../../internals/utils/src/casing.ts","../../../internals/utils/src/reserved.ts","../../../internals/utils/src/urlPath.ts","../../../internals/tanstack-query/src/components/MutationKey.tsx","../../../internals/tanstack-query/src/components/QueryKey.tsx","../src/components/Mutation.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"sourcesContent":["type Options = {\n  /** When `true`, dot-separated segments are split on `.` and joined with `/` after casing. */\n  isFile?: boolean\n  /** Text prepended before casing is applied. */\n  prefix?: string\n  /** Text appended before casing is applied. */\n  suffix?: string\n}\n\n/**\n * Shared implementation for camelCase and PascalCase conversion.\n * Splits on common word boundaries (spaces, hyphens, underscores, dots, slashes, colons)\n * and capitalizes each word according to `pascal`.\n *\n * When `pascal` is `true` the first word is also capitalized (PascalCase), otherwise only subsequent words are.\n */\nfunction toCamelOrPascal(text: string, pascal: boolean): string {\n  const normalized = text\n    .trim()\n    .replace(/([a-z\\d])([A-Z])/g, '$1 $2')\n    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n    .replace(/(\\d)([a-z])/g, '$1 $2')\n\n  const words = normalized.split(/[\\s\\-_./\\\\:]+/).filter(Boolean)\n\n  return words\n    .map((word, i) => {\n      const allUpper = word.length > 1 && word === word.toUpperCase()\n      if (allUpper) return word\n      if (i === 0 && !pascal) return word.charAt(0).toLowerCase() + word.slice(1)\n      return word.charAt(0).toUpperCase() + word.slice(1)\n    })\n    .join('')\n    .replace(/[^a-zA-Z0-9]/g, '')\n}\n\n/**\n * Splits `text` on `.` and applies `transformPart` to each segment.\n * The last segment receives `isLast = true`, all earlier segments receive `false`.\n * Segments are joined with `/` to form a file path.\n */\nfunction applyToFileParts(text: string, transformPart: (part: string, isLast: boolean) => string): string {\n  const parts = text.split('.')\n  return parts.map((part, i) => transformPart(part, i === parts.length - 1)).join('/')\n}\n\n/**\n * Converts `text` to camelCase.\n * When `isFile` is `true`, dot-separated segments are each cased independently and joined with `/`.\n *\n * @example\n * camelCase('hello-world')                   // 'helloWorld'\n * camelCase('pet.petId', { isFile: true })   // 'pet/petId'\n */\nexport function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n  if (isFile) {\n    return applyToFileParts(text, (part, isLast) => camelCase(part, isLast ? { prefix, suffix } : {}))\n  }\n\n  return toCamelOrPascal(`${prefix} ${text} ${suffix}`, false)\n}\n\n/**\n * Converts `text` to PascalCase.\n * When `isFile` is `true`, the last dot-separated segment is PascalCased and earlier segments are camelCased.\n *\n * @example\n * pascalCase('hello-world')                  // 'HelloWorld'\n * pascalCase('pet.petId', { isFile: true })  // 'pet/PetId'\n */\nexport function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n  if (isFile) {\n    return applyToFileParts(text, (part, isLast) => (isLast ? pascalCase(part, { prefix, suffix }) : camelCase(part)))\n  }\n\n  return toCamelOrPascal(`${prefix} ${text} ${suffix}`, true)\n}\n\n/**\n * Converts `text` to snake_case.\n *\n * @example\n * snakeCase('helloWorld')  // 'hello_world'\n * snakeCase('Hello-World') // 'hello_world'\n */\nexport function snakeCase(text: string, { prefix = '', suffix = '' }: Omit<Options, 'isFile'> = {}): string {\n  const processed = `${prefix} ${text} ${suffix}`.trim()\n  return processed\n    .replace(/([a-z])([A-Z])/g, '$1_$2')\n    .replace(/[\\s\\-.]+/g, '_')\n    .replace(/[^a-zA-Z0-9_]/g, '')\n    .toLowerCase()\n    .split('_')\n    .filter(Boolean)\n    .join('_')\n}\n\n/**\n * Converts `text` to SCREAMING_SNAKE_CASE.\n *\n * @example\n * screamingSnakeCase('helloWorld') // 'HELLO_WORLD'\n */\nexport function screamingSnakeCase(text: string, { prefix = '', suffix = '' }: Omit<Options, 'isFile'> = {}): string {\n  return snakeCase(text, { prefix, suffix }).toUpperCase()\n}\n","/**\n * JavaScript and Java reserved words.\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n  'abstract',\n  'arguments',\n  'boolean',\n  'break',\n  'byte',\n  'case',\n  'catch',\n  'char',\n  'class',\n  'const',\n  'continue',\n  'debugger',\n  'default',\n  'delete',\n  'do',\n  'double',\n  'else',\n  'enum',\n  'eval',\n  'export',\n  'extends',\n  'false',\n  'final',\n  'finally',\n  'float',\n  'for',\n  'function',\n  'goto',\n  'if',\n  'implements',\n  'import',\n  'in',\n  'instanceof',\n  'int',\n  'interface',\n  'let',\n  'long',\n  'native',\n  'new',\n  'null',\n  'package',\n  'private',\n  'protected',\n  'public',\n  'return',\n  'short',\n  'static',\n  'super',\n  'switch',\n  'synchronized',\n  'this',\n  'throw',\n  'throws',\n  'transient',\n  'true',\n  'try',\n  'typeof',\n  'var',\n  'void',\n  'volatile',\n  'while',\n  'with',\n  'yield',\n  'Array',\n  'Date',\n  'hasOwnProperty',\n  'Infinity',\n  'isFinite',\n  'isNaN',\n  'isPrototypeOf',\n  'length',\n  'Math',\n  'name',\n  'NaN',\n  'Number',\n  'Object',\n  'prototype',\n  'String',\n  'toString',\n  'undefined',\n  'valueOf',\n]\n\n/**\n * Prefixes a word with `_` when it is a reserved JavaScript/Java identifier\n * or starts with a digit.\n */\nexport function transformReservedWord(word: string): string {\n  const firstChar = word.charCodeAt(0)\n  if (word && (reservedWords.includes(word) || (firstChar >= 48 && firstChar <= 57))) {\n    return `_${word}`\n  }\n  return word\n}\n\n/**\n * Returns `true` when `name` is a syntactically valid JavaScript variable name.\n */\nexport function isValidVarName(name: string): boolean {\n  try {\n    new Function(`var ${name}`)\n  } catch {\n    return false\n  }\n  return true\n}\n","import { camelCase } from './casing.ts'\nimport { isValidVarName } from './reserved.ts'\n\nexport type URLObject = {\n  /** The resolved URL string (Express-style or template literal, depending on context). */\n  url: string\n  /** Extracted path parameters as a key-value map, or `undefined` when the path has none. */\n  params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n  /** Controls whether the `url` is rendered as an Express path or a template literal. Defaults to `'path'`. */\n  type?: 'path' | 'template'\n  /** Optional transform applied to each extracted parameter name. */\n  replacer?: (pathParam: string) => string\n  /** When `true`, the result is serialized to a string expression instead of a plain object. */\n  stringify?: boolean\n}\n\n/** Supported identifier casing strategies for path parameters. */\ntype PathCasing = 'camelcase'\n\ntype Options = {\n  /** Casing strategy applied to path parameter names. Defaults to the original identifier. */\n  casing?: PathCasing\n}\n\n/**\n * Parses and transforms an OpenAPI/Swagger path string into various URL formats.\n *\n * @example\n * const p = new URLPath('/pet/{petId}')\n * p.URL      // '/pet/:petId'\n * p.template // '`/pet/${petId}`'\n */\nexport class URLPath {\n  /** The raw OpenAPI/Swagger path string, e.g. `/pet/{petId}`. */\n  path: string\n\n  #options: Options\n\n  constructor(path: string, options: Options = {}) {\n    this.path = path\n    this.#options = options\n  }\n\n  /** Converts the OpenAPI path to Express-style colon syntax, e.g. `/pet/{petId}` → `/pet/:petId`. */\n  get URL(): string {\n    return this.toURLPath()\n  }\n\n  /** Returns `true` when `path` is a fully-qualified URL (e.g. starts with `https://`). */\n  get isURL(): boolean {\n    try {\n      return !!new URL(this.path).href\n    } catch {\n      return false\n    }\n  }\n\n  /**\n   * Converts the OpenAPI path to a TypeScript template literal string.\n   *\n   * @example\n   * new URLPath('/pet/{petId}').template              // '`/pet/${petId}`'\n   * new URLPath('/account/monetary-accountID').template // '`/account/${monetaryAccountId}`'\n   */\n  get template(): string {\n    return this.toTemplateString()\n  }\n\n  /** Returns the path and its extracted params as a structured `URLObject`, or as a stringified expression when `stringify` is set. */\n  get object(): URLObject | string {\n    return this.toObject()\n  }\n\n  /** Returns a map of path parameter names, or `undefined` when the path has no parameters. */\n  get params(): Record<string, string> | undefined {\n    return this.getParams()\n  }\n\n  #transformParam(raw: string): string {\n    const param = isValidVarName(raw) ? raw : camelCase(raw)\n    return this.#options.casing === 'camelcase' ? camelCase(param) : param\n  }\n\n  /** Iterates over every `{param}` token in `path`, calling `fn` with the raw token and transformed name. */\n  #eachParam(fn: (raw: string, param: string) => void): void {\n    for (const match of this.path.matchAll(/\\{([^}]+)\\}/g)) {\n      const raw = match[1]!\n      fn(raw, this.#transformParam(raw))\n    }\n  }\n\n  toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n    const object = {\n      url: type === 'path' ? this.toURLPath() : this.toTemplateString({ replacer }),\n      params: this.getParams(),\n    }\n\n    if (stringify) {\n      if (type === 'template') {\n        return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n      }\n\n      if (object.params) {\n        return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n      }\n\n      return `{ url: '${object.url}' }`\n    }\n\n    return object\n  }\n\n  /**\n   * Converts the OpenAPI path to a TypeScript template literal string.\n   * An optional `replacer` can transform each extracted parameter name before interpolation.\n   *\n   * @example\n   * new URLPath('/pet/{petId}').toTemplateString() // '`/pet/${petId}`'\n   */\n  toTemplateString({ prefix = '', replacer }: { prefix?: string; replacer?: (pathParam: string) => string } = {}): string {\n    const parts = this.path.split(/\\{([^}]+)\\}/)\n    const result = parts\n      .map((part, i) => {\n        if (i % 2 === 0) return part\n        const param = this.#transformParam(part)\n        return `\\${${replacer ? replacer(param) : param}}`\n      })\n      .join('')\n\n    return `\\`${prefix}${result}\\``\n  }\n\n  /**\n   * Extracts all `{param}` segments from the path and returns them as a key-value map.\n   * An optional `replacer` transforms each parameter name in both key and value positions.\n   * Returns `undefined` when no path parameters are found.\n   */\n  getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n    const params: Record<string, string> = {}\n\n    this.#eachParam((_raw, param) => {\n      const key = replacer ? replacer(param) : param\n      params[key] = key\n    })\n\n    return Object.keys(params).length > 0 ? params : undefined\n  }\n\n  /** Converts the OpenAPI path to Express-style colon syntax, e.g. `/pet/{petId}` → `/pet/:petId`. */\n  toURLPath(): string {\n    return this.path.replace(/\\{([^}]+)\\}/g, ':$1')\n  }\n}\n","import { URLPath } from '@internals/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { ParamsCasing, PathParamsType, Transformer } from '../types.ts'\n\ntype Props = {\n  name: string\n  typeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n  pathParamsType: PathParamsType\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n  return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n  const path = new URLPath(operation.path, { casing })\n\n  return [`{ url: '${path.toURLPath()}' }`]\n}\n\nexport function MutationKey({ name, typeSchemas, pathParamsType, paramsCasing, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n  const params = getParams({ pathParamsType, typeSchemas })\n  const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n  return (\n    <>\n      <File.Source name={name} isExportable isIndexable>\n        <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n          {`[${keys.join(', ')}] as const`}\n        </Function.Arrow>\n      </File.Source>\n      <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n        <Type name={typeName} export>\n          {`ReturnType<typeof ${name}>`}\n        </Type>\n      </File.Source>\n    </>\n  )\n}\n\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { URLPath } from '@internals/utils'\nimport { isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { ParamsCasing, PathParamsType, Transformer } from '../types.ts'\n\ntype Props = {\n  name: string\n  typeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, {\n            typed: true,\n            casing: paramsCasing,\n            override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n          }),\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n  })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n  const path = new URLPath(operation.path, { casing })\n  const keys = [\n    path.toObject({\n      type: 'path',\n      stringify: true,\n    }),\n    schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n    schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n  ].filter(Boolean)\n\n  return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n  const params = getParams({ pathParamsType, typeSchemas, paramsCasing })\n  const keys = transformer({\n    operation,\n    schemas: typeSchemas,\n    casing: paramsCasing,\n  })\n\n  return (\n    <>\n      <File.Source name={name} isExportable isIndexable>\n        <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n          {`[${keys.join(', ')}] as const`}\n        </Function.Arrow>\n      </File.Source>\n      <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n        <Type name={typeName} export>\n          {`ReturnType<typeof ${name}>`}\n        </Type>\n      </File.Source>\n    </>\n  )\n}\n\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { isOptional, type Operation } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode, Params } from '@kubb/react-fabric/types'\nimport type { PluginSolidQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n  /**\n   * Name of the function\n   */\n  name: string\n  typeName: string\n  clientName: string\n  mutationKeyName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  dataReturnType: PluginSolidQuery['resolvedOptions']['client']['dataReturnType']\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  paramsType: PluginSolidQuery['resolvedOptions']['paramsType']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSolidQuery['resolvedOptions']['client']['dataReturnType']\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsCasing, dataReturnType, typeSchemas }: GetParamsProps) {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n  const mutationParams = FunctionParams.factory({\n    ...pathParams,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n  })\n  const TRequest = mutationParams.toConstructor()\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n  const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n\n  return FunctionParams.factory({\n    options: {\n      type: `\n{\n  mutation?: ReturnType<UseMutationOptions<${generics}>> & { client?: QueryClient },\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n}\n`,\n      default: '{}',\n    },\n  })\n}\n\nexport function Mutation({\n  name,\n  clientName,\n  paramsCasing,\n  paramsType,\n  pathParamsType,\n  dataReturnType,\n  typeSchemas,\n  operation,\n  mutationKeyName,\n}: Props): FabricReactNode {\n  const mutationKeyParams = MutationKey.getParams({\n    pathParamsType,\n    typeSchemas,\n  })\n\n  const params = getParams({\n    paramsCasing,\n    pathParamsType,\n    dataReturnType,\n    typeSchemas,\n  })\n\n  const clientParams = Client.getParams({\n    paramsCasing,\n    paramsType,\n    typeSchemas,\n    pathParamsType,\n    isConfigurable: true,\n  })\n\n  const mutationParams = FunctionParams.factory({\n    ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n  })\n\n  const dataParams = FunctionParams.factory({\n    data: {\n      // No use of pathParams because useMutation can only take one argument in object form,\n      // see https://tanstack.com/query/latest/docs/framework/react/reference/useMutation#usemutation\n      mode: 'object',\n      children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {\n        if (value) {\n          acc[key] = {\n            ...value,\n            type: undefined,\n          }\n        }\n\n        return acc\n      }, {} as Params),\n    },\n  })\n\n  const TRequest = mutationParams.toConstructor()\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n  const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function\n        name={name}\n        export\n        params={params.toConstructor()}\n        JSDoc={{\n          comments: getComments(operation),\n        }}\n        generics={['TContext']}\n      >\n        {`\n        const { mutation = {}, client: config = {} } = options ?? {}\n        const { client: queryClient, ...mutationOptions } = mutation;\n        const mutationKey = mutationOptions.mutationKey ?? ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n        return useMutation<${generics}>(()=> ({\n          mutationFn: async(${dataParams.toConstructor()}) => {\n            return ${clientName}(${clientParams.toCall()})\n          },\n          mutationKey,\n          ...mutationOptions\n        }), queryClient? () => queryClient: undefined)\n    `}\n      </Function>\n    </File.Source>\n  )\n}\n","import { isAllOptional, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginSolidQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n  name: string\n  clientName: string\n  queryKeyName: string\n  typeSchemas: OperationSchemas\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  paramsType: PluginSolidQuery['resolvedOptions']['paramsType']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSolidQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  paramsType: PluginSolidQuery['resolvedOptions']['paramsType']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n  if (paramsType === 'object') {\n    const pathParams = getPathParams(typeSchemas.pathParams, {\n      typed: true,\n      casing: paramsCasing,\n      override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n    })\n\n    const children = {\n      ...pathParams,\n      data: typeSchemas.request?.name\n        ? {\n            type: typeSchemas.request?.name,\n            optional: isOptional(typeSchemas.request?.schema),\n          }\n        : undefined,\n      params: typeSchemas.queryParams?.name\n        ? {\n            type: typeSchemas.queryParams?.name,\n            optional: isOptional(typeSchemas.queryParams?.schema),\n          }\n        : undefined,\n      headers: typeSchemas.headerParams?.name\n        ? {\n            type: typeSchemas.headerParams?.name,\n            optional: isOptional(typeSchemas.headerParams?.schema),\n          }\n        : undefined,\n    }\n\n    // Check if all children are optional or undefined\n    const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n    return FunctionParams.factory({\n      data: {\n        mode: 'object',\n        children,\n        default: allChildrenAreOptional ? '{}' : undefined,\n      },\n      config: {\n        type: typeSchemas.request?.name\n          ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n          : 'Partial<RequestConfig> & { client?: Client }',\n        default: '{}',\n      },\n    })\n  }\n\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, {\n            typed: true,\n            casing: paramsCasing,\n            override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n          }),\n          default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n    config: {\n      type: typeSchemas.request?.name\n        ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n        : 'Partial<RequestConfig> & { client?: Client }',\n      default: '{}',\n    },\n  })\n}\n\nexport function QueryOptions({\n  name,\n  clientName,\n  typeSchemas,\n  paramsCasing,\n  paramsType,\n  dataReturnType,\n  pathParamsType,\n  queryKeyName,\n}: Props): FabricReactNode {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n  const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n  const clientParams = Client.getParams({\n    paramsCasing,\n    typeSchemas,\n    paramsType,\n    pathParamsType,\n    isConfigurable: true,\n  })\n  const queryKeyParams = QueryKey.getParams({\n    pathParamsType,\n    paramsCasing,\n    typeSchemas,\n  })\n\n  const enabledPathParams = getPathParams(typeSchemas.pathParams, { casing: paramsCasing })\n  const enabledParamNames = new Set(\n    Object.entries(enabledPathParams)\n      // Only include if the parameter exists and is NOT optional\n      // This ensures we only check required parameters\n      .filter(([, item]) => item && !item.optional && !item.default)\n      .map(([key]) => key),\n  )\n  const enabled = [...enabledParamNames].join(' && ')\n\n  const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function name={name} export params={params.toConstructor()}>\n        {`\n      const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n      return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({\n      ${enabledText}\n       queryKey,\n       queryFn: async ({ signal }) => {\n          return ${clientName}(${clientParams.toCall({\n            transformName(name) {\n              if (name === 'config') {\n                return '{ ...config, signal: config.signal ?? signal }'\n              }\n\n              return enabledParamNames.has(name) ? `${name}!` : name\n            },\n          })})\n       },\n      })\n`}\n      </Function>\n    </File.Source>\n  )\n}\n\nQueryOptions.getParams = getParams\n","import { isAllOptional, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginSolidQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n  /**\n   * Name of the function\n   */\n  name: string\n  queryOptionsName: string\n  queryKeyName: string\n  queryKeyTypeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  paramsType: PluginSolidQuery['resolvedOptions']['paramsType']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSolidQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n  paramsCasing: PluginSolidQuery['resolvedOptions']['paramsCasing']\n  paramsType: PluginSolidQuery['resolvedOptions']['paramsType']\n  pathParamsType: PluginSolidQuery['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSolidQuery['resolvedOptions']['client']['dataReturnType']\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n  if (paramsType === 'object') {\n    const pathParams = getPathParams(typeSchemas.pathParams, {\n      typed: true,\n      casing: paramsCasing,\n      override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n    })\n\n    const children = {\n      ...pathParams,\n      data: typeSchemas.request?.name\n        ? {\n            type: typeSchemas.request?.name,\n            optional: isOptional(typeSchemas.request?.schema),\n          }\n        : undefined,\n      params: typeSchemas.queryParams?.name\n        ? {\n            type: typeSchemas.queryParams?.name,\n            optional: isOptional(typeSchemas.queryParams?.schema),\n          }\n        : undefined,\n      headers: typeSchemas.headerParams?.name\n        ? {\n            type: typeSchemas.headerParams?.name,\n            optional: isOptional(typeSchemas.headerParams?.schema),\n          }\n        : undefined,\n    }\n\n    // Check if all children are optional or undefined\n    const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n    return FunctionParams.factory({\n      data: {\n        mode: 'object',\n        children,\n        default: allChildrenAreOptional ? '{}' : undefined,\n      },\n      options: {\n        type: `\n{\n  query?: Partial<UseBaseQueryOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n        default: '{}',\n      },\n    })\n  }\n\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, {\n            typed: true,\n            casing: paramsCasing,\n            override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n          }),\n          default: isAllOptional(typeSchemas.pathParams?.schema) ? '{}' : undefined,\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n    options: {\n      type: `\n{\n  query?: Partial<UseBaseQueryOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'}\n}\n`,\n      default: '{}',\n    },\n  })\n}\n\nexport function Query({\n  name,\n  queryKeyTypeName,\n  queryOptionsName,\n  queryKeyName,\n  paramsCasing,\n  paramsType,\n  pathParamsType,\n  dataReturnType,\n  typeSchemas,\n  operation,\n}: Props): FabricReactNode {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n  const returnType = `UseQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n  const generics = [`TData = ${TData}`, `TQueryData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n  const queryKeyParams = QueryKey.getParams({\n    pathParamsType,\n    typeSchemas,\n    paramsCasing,\n  })\n  const queryOptionsParams = QueryOptions.getParams({\n    paramsType,\n    paramsCasing,\n    pathParamsType,\n    typeSchemas,\n  })\n  const params = getParams({\n    paramsCasing,\n    paramsType,\n    pathParamsType,\n    dataReturnType,\n    typeSchemas,\n  })\n\n  const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()}) as unknown as UseBaseQueryOptions`\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function\n        name={name}\n        export\n        generics={generics.join(', ')}\n        params={params.toConstructor()}\n        JSDoc={{\n          comments: getComments(operation),\n        }}\n      >\n        {`\n       const { query: queryConfig = {}, client: config = {} } = options ?? {}\n       const { client: queryClient, ...resolvedOptions } = queryConfig\n       const queryKey = resolvedOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n\n       const query = useQuery(() => ({\n        ...${queryOptions},\n        queryKey,\n        initialData: null,\n        ...resolvedOptions as unknown as Omit<UseBaseQueryOptions, \"queryKey\">\n       }), queryClient? () => queryClient: undefined) as ${returnType}\n\n       return query\n       `}\n      </Function>\n    </File.Source>\n  )\n}\n\nQuery.getParams = getParams\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,SAAS,gBAAgB,MAAc,QAAyB;AAS9D,QARmB,KAChB,MAAM,CACN,QAAQ,qBAAqB,QAAQ,CACrC,QAAQ,yBAAyB,QAAQ,CACzC,QAAQ,gBAAgB,QAAQ,CAEV,MAAM,gBAAgB,CAAC,OAAO,QAAQ,CAG5D,KAAK,MAAM,MAAM;AAEhB,MADiB,KAAK,SAAS,KAAK,SAAS,KAAK,aAAa,CACjD,QAAO;AACrB,MAAI,MAAM,KAAK,CAAC,OAAQ,QAAO,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE;AAC3E,SAAO,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE;GACnD,CACD,KAAK,GAAG,CACR,QAAQ,iBAAiB,GAAG;;;;;;;AAQjC,SAAS,iBAAiB,MAAc,eAAkE;CACxG,MAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,QAAO,MAAM,KAAK,MAAM,MAAM,cAAc,MAAM,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI;;;;;;;;;;AAWtF,SAAgB,UAAU,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,OAAgB,EAAE,EAAU;AAClG,KAAI,OACF,QAAO,iBAAiB,OAAO,MAAM,WAAW,UAAU,MAAM,SAAS;EAAE;EAAQ;EAAQ,GAAG,EAAE,CAAC,CAAC;AAGpG,QAAO,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,MAAM;;;;;;;;;;AAW9D,SAAgB,WAAW,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,OAAgB,EAAE,EAAU;AACnG,KAAI,OACF,QAAO,iBAAiB,OAAO,MAAM,WAAY,SAAS,WAAW,MAAM;EAAE;EAAQ;EAAQ,CAAC,GAAG,UAAU,KAAK,CAAE;AAGpH,QAAO,gBAAgB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,KAAK;;;;;;;AC4B7D,SAAgB,eAAe,MAAuB;AACpD,KAAI;AACF,MAAI,SAAS,OAAO,OAAO;SACrB;AACN,SAAO;;AAET,QAAO;;;;;;;;;;;;AC1ET,IAAa,UAAb,MAAqB;;CAEnB;CAEA;CAEA,YAAY,MAAc,UAAmB,EAAE,EAAE;AAC/C,OAAK,OAAO;AACZ,QAAA,UAAgB;;;CAIlB,IAAI,MAAc;AAChB,SAAO,KAAK,WAAW;;;CAIzB,IAAI,QAAiB;AACnB,MAAI;AACF,UAAO,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC;UACtB;AACN,UAAO;;;;;;;;;;CAWX,IAAI,WAAmB;AACrB,SAAO,KAAK,kBAAkB;;;CAIhC,IAAI,SAA6B;AAC/B,SAAO,KAAK,UAAU;;;CAIxB,IAAI,SAA6C;AAC/C,SAAO,KAAK,WAAW;;CAGzB,gBAAgB,KAAqB;EACnC,MAAM,QAAQ,eAAe,IAAI,GAAG,MAAM,UAAU,IAAI;AACxD,SAAO,MAAA,QAAc,WAAW,cAAc,UAAU,MAAM,GAAG;;;CAInE,WAAW,IAAgD;AACzD,OAAK,MAAM,SAAS,KAAK,KAAK,SAAS,eAAe,EAAE;GACtD,MAAM,MAAM,MAAM;AAClB,MAAG,KAAK,MAAA,eAAqB,IAAI,CAAC;;;CAItC,SAAS,EAAE,OAAO,QAAQ,UAAU,cAA6B,EAAE,EAAsB;EACvF,MAAM,SAAS;GACb,KAAK,SAAS,SAAS,KAAK,WAAW,GAAG,KAAK,iBAAiB,EAAE,UAAU,CAAC;GAC7E,QAAQ,KAAK,WAAW;GACzB;AAED,MAAI,WAAW;AACb,OAAI,SAAS,WACX,QAAO,KAAK,UAAU,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,KAAK,GAAG;AAGvE,OAAI,OAAO,OACT,QAAO,WAAW,OAAO,IAAI,aAAa,KAAK,UAAU,OAAO,OAAO,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;AAGlH,UAAO,WAAW,OAAO,IAAI;;AAG/B,SAAO;;;;;;;;;CAUT,iBAAiB,EAAE,SAAS,IAAI,aAA4E,EAAE,EAAU;AAUtH,SAAO,KAAK,SATE,KAAK,KAAK,MAAM,cAAc,CAEzC,KAAK,MAAM,MAAM;AAChB,OAAI,IAAI,MAAM,EAAG,QAAO;GACxB,MAAM,QAAQ,MAAA,eAAqB,KAAK;AACxC,UAAO,MAAM,WAAW,SAAS,MAAM,GAAG,MAAM;IAChD,CACD,KAAK,GAAG,CAEiB;;;;;;;CAQ9B,UAAU,UAA8E;EACtF,MAAM,SAAiC,EAAE;AAEzC,QAAA,WAAiB,MAAM,UAAU;GAC/B,MAAM,MAAM,WAAW,SAAS,MAAM,GAAG;AACzC,UAAO,OAAO;IACd;AAEF,SAAO,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS,KAAA;;;CAInD,YAAoB;AAClB,SAAO,KAAK,KAAK,QAAQ,gBAAgB,MAAM;;;;;ACnInD,SAASG,YAAU,IAAoB;AACrC,QAAOC,mBAAAA,eAAe,QAAQ,EAAE,CAAC;;;AAGnC,MAAMC,mBAAAA,wBAA+B,EAAE,WAAW,aAAa;AAG7D,QAAO,CAAC,WAFK,IAAI,QAAQ,UAAU,MAAM,EAAE,QAAQ,CAAC,CAE5B,WAAW,CAAC,KAAK;;AAG3C,SAAgB,YAAY,EAAE,MAAM,aAAa,gBAAgB,cAAc,WAAW,UAAU,cAAcA,oBAA0C;CAC1J,MAAM,SAASF,YAAU;EAAE;EAAgB;EAAa,CAAC;CACzD,MAAM,OAAO,YAAY;EAAE;EAAW,SAAS;EAAa,QAAQ;EAAc,CAAC;AAEnF,QACE,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,+BAAA,KAACG,mBAAAA,KAAK,QAAN;EAAmB;EAAM,cAAA;EAAa,aAAA;YACpC,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,SAAS,OAAV;GAAsB;GAAM,QAAA;GAAO,QAAQ,OAAO,eAAe;GAAE,YAAA;aAChE,IAAI,KAAK,KAAK,KAAK,CAAC;GACN,CAAA;EACL,CAAA,EACd,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;EAAa,MAAM;EAAU,cAAA;EAAa,aAAA;EAAY,YAAA;YACpD,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,MAAD;GAAM,MAAM;GAAU,QAAA;aACnB,qBAAqB,KAAK;GACtB,CAAA;EACK,CAAA,CACb,EAAA,CAAA;;AAIP,YAAY,YAAYL;AACxB,YAAY,iBAAiBE;;;AC7B7B,SAASI,YAAU,EAAE,gBAAgB,cAAc,eAA+B;AAChF,QAAOC,mBAAAA,eAAe,QAAQ;EAC5B,YAAY,YAAY,YAAY,OAChC;GACE,MAAM,mBAAmB,WAAW,WAAW;GAC/C,WAAA,GAAA,uBAAA,eAAwB,YAAY,YAAY;IAC9C,OAAO;IACP,QAAQ;IACR,WAAW,UAAU;KAAE,GAAG;KAAM,MAAM,GAAG,KAAK,KAAK;KAAe;IACnE,CAAC;GACH,GACD,KAAA;EACJ,MAAM,YAAY,SAAS,OACvB;GACE,MAAM,YAAY,SAAS;GAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;GAClD,GACD,KAAA;EACJ,QAAQ,YAAY,aAAa,OAC7B;GACE,MAAM,YAAY,aAAa;GAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;GACtD,GACD,KAAA;EACL,CAAC;;;AAGJ,MAAM,kBAA+B,EAAE,WAAW,SAAS,aAAa;AAWtE,QATa;EADA,IAAI,QAAQ,UAAU,MAAM,EAAE,QAAQ,CAAC,CAE7C,SAAS;GACZ,MAAM;GACN,WAAW;GACZ,CAAC;EACF,QAAQ,aAAa,OAAO,gCAAgC,KAAA;EAC5D,QAAQ,SAAS,OAAO,4BAA4B,KAAA;EACrD,CAAC,OAAO,QAAQ;;AAKnB,SAAgB,SAAS,EAAE,MAAM,aAAa,cAAc,gBAAgB,WAAW,UAAU,cAAc,kBAA0C;CACvJ,MAAM,SAASD,YAAU;EAAE;EAAgB;EAAa;EAAc,CAAC;CACvE,MAAM,OAAO,YAAY;EACvB;EACA,SAAS;EACT,QAAQ;EACT,CAAC;AAEF,QACE,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,KAAK,QAAN;EAAmB;EAAM,cAAA;EAAa,aAAA;YACpC,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,SAAS,OAAV;GAAsB;GAAM,QAAA;GAAO,QAAQ,OAAO,eAAe;GAAE,YAAA;aAChE,IAAI,KAAK,KAAK,KAAK,CAAC;GACN,CAAA;EACL,CAAA,EACd,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;EAAa,MAAM;EAAU,cAAA;EAAa,aAAA;EAAY,YAAA;YACpD,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,MAAD;GAAM,MAAM;GAAU,QAAA;aACnB,qBAAqB,KAAK;GACtB,CAAA;EACK,CAAA,CACb,EAAA,CAAA;;AAIP,SAAS,YAAYJ;AACrB,SAAS,iBAAiB;;;AC1D1B,SAASK,YAAU,EAAE,cAAc,gBAAgB,eAA+B;CAChF,MAAM,QAAQ,mBAAmB,SAAS,YAAY,SAAS,OAAO,kBAAkB,YAAY,SAAS,KAAK;CAClH,MAAM,cAAA,GAAA,uBAAA,eAA2B,YAAY,YAAY;EAAE,OAAO;EAAM,QAAQ;EAAc,CAAC;CAuB/F,MAAM,WArBiBC,mBAAAA,eAAe,QAAQ;EAC5C,GAAG;EACH,MAAM,YAAY,SAAS,OACvB;GACE,MAAM,YAAY,SAAS;GAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;GAClD,GACD,KAAA;EACJ,QAAQ,YAAY,aAAa,OAC7B;GACE,MAAM,YAAY,aAAa;GAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;GACtD,GACD,KAAA;EACJ,SAAS,YAAY,cAAc,OAC/B;GACE,MAAM,YAAY,cAAc;GAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;GACvD,GACD,KAAA;EACL,CAAC,CAC8B,eAAe;CAE/C,MAAM,WAAW;EAAC;EADH,uBAAuB,YAAY,QAAQ,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,QAAQ;EACzE,WAAW,IAAI,SAAS,KAAK;EAAQ;EAAW,CAAC,KAAK,KAAK;AAE5F,QAAOA,mBAAAA,eAAe,QAAQ,EAC5B,SAAS;EACP,MAAM;;6CAEiC,SAAS;aACzC,YAAY,SAAS,OAAO,yBAAyB,YAAY,SAAS,KAAK,4BAA4B,+CAA+C;;;EAGjK,SAAS;EACV,EACF,CAAC;;;AAGJ,SAAgB,SAAS,EACvB,MACA,YACA,cACA,YACA,gBACA,gBACA,aACA,WACA,mBACyB;CACzB,MAAM,oBAAoB,YAAY,UAAU;EAC9C;EACA;EACD,CAAC;CAEF,MAAM,SAASD,YAAU;EACvB;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,eAAeE,+BAAAA,OAAO,UAAU;EACpC;EACA;EACA;EACA;EACA,gBAAgB;EACjB,CAAC;CAEF,MAAM,iBAAiBD,mBAAAA,eAAe,QAAQ;EAC5C,IAAA,GAAA,uBAAA,eAAiB,YAAY,YAAY;GAAE,OAAO;GAAM,QAAQ;GAAc,CAAC;EAC/E,MAAM,YAAY,SAAS,OACvB;GACE,MAAM,YAAY,SAAS;GAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;GAClD,GACD,KAAA;EACJ,QAAQ,YAAY,aAAa,OAC7B;GACE,MAAM,YAAY,aAAa;GAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;GACtD,GACD,KAAA;EACJ,SAAS,YAAY,cAAc,OAC/B;GACE,MAAM,YAAY,cAAc;GAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;GACvD,GACD,KAAA;EACL,CAAC;CAEF,MAAM,aAAaA,mBAAAA,eAAe,QAAQ,EACxC,MAAM;EAGJ,MAAM;EACN,UAAU,OAAO,QAAQ,eAAe,OAAO,CAAC,QAAQ,KAAK,CAAC,KAAK,WAAW;AAC5E,OAAI,MACF,KAAI,OAAO;IACT,GAAG;IACH,MAAM,KAAA;IACP;AAGH,UAAO;KACN,EAAE,CAAW;EACjB,EACF,CAAC;CAEF,MAAM,WAAW,eAAe,eAAe;CAG/C,MAAM,WAAW;EAFH,mBAAmB,SAAS,YAAY,SAAS,OAAO,kBAAkB,YAAY,SAAS,KAAK;EACnG,uBAAuB,YAAY,QAAQ,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,QAAQ;EACzE,WAAW,IAAI,SAAS,KAAK;EAAQ;EAAW,CAAC,KAAK,KAAK;AAE5F,QACE,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,KAAK,QAAN;EAAmB;EAAM,cAAA;EAAa,aAAA;YACpC,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,UAAD;GACQ;GACN,QAAA;GACA,QAAQ,OAAO,eAAe;GAC9B,OAAO,EACL,WAAA,GAAA,uBAAA,aAAsB,UAAU,EACjC;GACD,UAAU,CAAC,WAAW;aAErB;;;6DAGoD,gBAAgB,GAAG,kBAAkB,QAAQ,CAAC;;6BAE9E,SAAS;8BACR,WAAW,eAAe,CAAC;qBACpC,WAAW,GAAG,aAAa,QAAQ,CAAC;;;;;;GAMxC,CAAA;EACC,CAAA;;;;ACpJlB,SAASC,YAAU,EAAE,YAAY,cAAc,gBAAgB,eAA+B;AAC5F,KAAI,eAAe,UAAU;EAO3B,MAAM,WAAW;GACf,IAAA,GAAA,uBAAA,eAP+B,YAAY,YAAY;IACvD,OAAO;IACP,QAAQ;IACR,WAAW,UAAU;KAAE,GAAG;KAAM,MAAM,GAAG,KAAK,KAAK;KAAe;IACnE,CAAC;GAIA,MAAM,YAAY,SAAS,OACvB;IACE,MAAM,YAAY,SAAS;IAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;IAClD,GACD,KAAA;GACJ,QAAQ,YAAY,aAAa,OAC7B;IACE,MAAM,YAAY,aAAa;IAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;IACtD,GACD,KAAA;GACJ,SAAS,YAAY,cAAc,OAC/B;IACE,MAAM,YAAY,cAAc;IAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;IACvD,GACD,KAAA;GACL;EAGD,MAAM,yBAAyB,OAAO,OAAO,SAAS,CAAC,OAAO,UAAU,CAAC,SAAS,MAAM,SAAS;AAEjG,SAAOC,mBAAAA,eAAe,QAAQ;GAC5B,MAAM;IACJ,MAAM;IACN;IACA,SAAS,yBAAyB,OAAO,KAAA;IAC1C;GACD,QAAQ;IACN,MAAM,YAAY,SAAS,OACvB,yBAAyB,YAAY,SAAS,KAAK,4BACnD;IACJ,SAAS;IACV;GACF,CAAC;;AAGJ,QAAOA,mBAAAA,eAAe,QAAQ;EAC5B,YAAY,YAAY,YAAY,OAChC;GACE,MAAM,mBAAmB,WAAW,WAAW;GAC/C,WAAA,GAAA,uBAAA,eAAwB,YAAY,YAAY;IAC9C,OAAO;IACP,QAAQ;IACR,WAAW,UAAU;KAAE,GAAG;KAAM,MAAM,GAAG,KAAK,KAAK;KAAe;IACnE,CAAC;GACF,UAAA,GAAA,UAAA,eAAuB,YAAY,YAAY,OAAO,GAAG,OAAO,KAAA;GACjE,GACD,KAAA;EACJ,MAAM,YAAY,SAAS,OACvB;GACE,MAAM,YAAY,SAAS;GAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;GAClD,GACD,KAAA;EACJ,QAAQ,YAAY,aAAa,OAC7B;GACE,MAAM,YAAY,aAAa;GAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;GACtD,GACD,KAAA;EACJ,SAAS,YAAY,cAAc,OAC/B;GACE,MAAM,YAAY,cAAc;GAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;GACvD,GACD,KAAA;EACJ,QAAQ;GACN,MAAM,YAAY,SAAS,OACvB,yBAAyB,YAAY,SAAS,KAAK,4BACnD;GACJ,SAAS;GACV;EACF,CAAC;;;AAGJ,SAAgB,aAAa,EAC3B,MACA,YACA,aACA,cACA,YACA,gBACA,gBACA,gBACyB;CACzB,MAAM,QAAQ,mBAAmB,SAAS,YAAY,SAAS,OAAO,kBAAkB,YAAY,SAAS,KAAK;CAClH,MAAM,SAAS,uBAAuB,YAAY,QAAQ,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,QAAQ;CAE1G,MAAM,SAASD,YAAU;EAAE;EAAY;EAAc;EAAgB;EAAa,CAAC;CACnF,MAAM,eAAeE,+BAAAA,OAAO,UAAU;EACpC;EACA;EACA;EACA;EACA,gBAAgB;EACjB,CAAC;CACF,MAAM,iBAAiB,SAAS,UAAU;EACxC;EACA;EACA;EACD,CAAC;CAEF,MAAM,qBAAA,GAAA,uBAAA,eAAkC,YAAY,YAAY,EAAE,QAAQ,cAAc,CAAC;CACzF,MAAM,oBAAoB,IAAI,IAC5B,OAAO,QAAQ,kBAAkB,CAG9B,QAAQ,GAAG,UAAU,QAAQ,CAAC,KAAK,YAAY,CAAC,KAAK,QAAQ,CAC7D,KAAK,CAAC,SAAS,IAAI,CACvB;CACD,MAAM,UAAU,CAAC,GAAG,kBAAkB,CAAC,KAAK,OAAO;CAEnD,MAAM,cAAc,UAAU,eAAe,QAAQ,MAAM;AAE3D,QACE,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;EAAmB;EAAM,cAAA;EAAa,aAAA;YACpC,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,UAAD;GAAgB;GAAM,QAAA;GAAO,QAAQ,OAAO,eAAe;aACxD;yBACgB,aAAa,GAAG,eAAe,QAAQ,CAAC;4BACrC,MAAM,IAAI,OAAO,IAAI,MAAM;QAC/C,YAAY;;;mBAGD,WAAW,GAAG,aAAa,OAAO,EACzC,cAAc,MAAM;AAClB,QAAI,SAAS,SACX,QAAO;AAGT,WAAO,kBAAkB,IAAI,KAAK,GAAG,GAAG,KAAK,KAAK;MAErD,CAAC,CAAC;;;;GAII,CAAA;EACC,CAAA;;AAIlB,aAAa,YAAYJ;;;AClJzB,SAAS,UAAU,EAAE,YAAY,cAAc,gBAAgB,gBAAgB,eAA+B;CAC5G,MAAM,QAAQ,mBAAmB,SAAS,YAAY,SAAS,OAAO,kBAAkB,YAAY,SAAS,KAAK;CAClH,MAAM,SAAS,uBAAuB,YAAY,QAAQ,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,QAAQ;AAE1G,KAAI,eAAe,UAAU;EAO3B,MAAM,WAAW;GACf,IAAA,GAAA,uBAAA,eAP+B,YAAY,YAAY;IACvD,OAAO;IACP,QAAQ;IACR,WAAW,UAAU;KAAE,GAAG;KAAM,MAAM,GAAG,KAAK,KAAK;KAAe;IACnE,CAAC;GAIA,MAAM,YAAY,SAAS,OACvB;IACE,MAAM,YAAY,SAAS;IAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;IAClD,GACD,KAAA;GACJ,QAAQ,YAAY,aAAa,OAC7B;IACE,MAAM,YAAY,aAAa;IAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;IACtD,GACD,KAAA;GACJ,SAAS,YAAY,cAAc,OAC/B;IACE,MAAM,YAAY,cAAc;IAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;IACvD,GACD,KAAA;GACL;EAGD,MAAM,yBAAyB,OAAO,OAAO,SAAS,CAAC,OAAO,UAAU,CAAC,SAAS,MAAM,SAAS;AAEjG,SAAOK,mBAAAA,eAAe,QAAQ;GAC5B,MAAM;IACJ,MAAM;IACN;IACA,SAAS,yBAAyB,OAAO,KAAA;IAC1C;GACD,SAAS;IACP,MAAM;;wCAE0B;KAAC;KAAO;KAAQ;KAAS;KAAc;KAAY,CAAC,KAAK,KAAK,CAAC;aAC1F,YAAY,SAAS,OAAO,yBAAyB,YAAY,SAAS,KAAK,4BAA4B,+CAA+C;;;IAG/J,SAAS;IACV;GACF,CAAC;;AAGJ,QAAOA,mBAAAA,eAAe,QAAQ;EAC5B,YAAY,YAAY,YAAY,OAChC;GACE,MAAM,mBAAmB,WAAW,WAAW;GAC/C,WAAA,GAAA,uBAAA,eAAwB,YAAY,YAAY;IAC9C,OAAO;IACP,QAAQ;IACR,WAAW,UAAU;KAAE,GAAG;KAAM,MAAM,GAAG,KAAK,KAAK;KAAe;IACnE,CAAC;GACF,UAAA,GAAA,UAAA,eAAuB,YAAY,YAAY,OAAO,GAAG,OAAO,KAAA;GACjE,GACD,KAAA;EACJ,MAAM,YAAY,SAAS,OACvB;GACE,MAAM,YAAY,SAAS;GAC3B,WAAA,GAAA,UAAA,YAAqB,YAAY,SAAS,OAAO;GAClD,GACD,KAAA;EACJ,QAAQ,YAAY,aAAa,OAC7B;GACE,MAAM,YAAY,aAAa;GAC/B,WAAA,GAAA,UAAA,YAAqB,YAAY,aAAa,OAAO;GACtD,GACD,KAAA;EACJ,SAAS,YAAY,cAAc,OAC/B;GACE,MAAM,YAAY,cAAc;GAChC,WAAA,GAAA,UAAA,YAAqB,YAAY,cAAc,OAAO;GACvD,GACD,KAAA;EACJ,SAAS;GACP,MAAM;;wCAE4B;IAAC;IAAO;IAAQ;IAAS;IAAc;IAAY,CAAC,KAAK,KAAK,CAAC;aAC1F,YAAY,SAAS,OAAO,yBAAyB,YAAY,SAAS,KAAK,4BAA4B,+CAA+C;;;GAGjK,SAAS;GACV;EACF,CAAC;;AAGJ,SAAgB,MAAM,EACpB,MACA,kBACA,kBACA,cACA,cACA,YACA,gBACA,gBACA,aACA,aACyB;CACzB,MAAM,QAAQ,mBAAmB,SAAS,YAAY,SAAS,OAAO,kBAAkB,YAAY,SAAS,KAAK;CAElH,MAAM,aAAa,kBAAkB,CAAC,SADvB,uBAAuB,YAAY,QAAQ,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,IAAI,QAAQ,GACpD,CAAC,KAAK,KAAK,CAAC;CAClE,MAAM,WAAW;EAAC,WAAW;EAAS,gBAAgB;EAAS,gCAAgC;EAAmB;CAElH,MAAM,iBAAiB,SAAS,UAAU;EACxC;EACA;EACA;EACD,CAAC;CACF,MAAM,qBAAqB,aAAa,UAAU;EAChD;EACA;EACA;EACA;EACD,CAAC;CACF,MAAM,SAAS,UAAU;EACvB;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,QAAQ,CAAC;AAExE,QACE,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;EAAmB;EAAM,cAAA;EAAa,aAAA;YACpC,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,UAAD;GACQ;GACN,QAAA;GACA,UAAU,SAAS,KAAK,KAAK;GAC7B,QAAQ,OAAO,eAAe;GAC9B,OAAO,EACL,WAAA,GAAA,uBAAA,aAAsB,UAAU,EACjC;aAEA;;;uDAG8C,aAAa,GAAG,eAAe,QAAQ,CAAC;;;aAGlF,aAAa;;;;2DAIiC,WAAW;;;;GAIrD,CAAA;EACC,CAAA;;AAIlB,MAAM,YAAY"}