{"version":3,"sources":["../../src/utils/functions.ts"],"sourcesContent":["import axios from \"axios\";\nimport {\n  addDays,\n  getDaysInMonth,\n  isAfter,\n  isBefore,\n  set,\n  subDays,\n} from \"date-fns\";\nimport type { MenuItemProps } from \"../components/CollapsableMenu/types\";\n\n// Função para calcular o MDC (Máximo Divisor Comum) usando o Algoritmo de Euclides\nexport const mdc = (a: number, b: number) => {\n  while (b !== 0) {\n    [a, b] = [b, a % b];\n  }\n  return a;\n};\n\n// Função para calcular o MMC (Mínimo Múltiplo Comum) de dois números\nexport const mmc = (a: number, b: number) => {\n  return Math.abs(a * b) / mdc(a, b);\n};\n\n// Função para calcular o MMC de um array de números\nexport const mmcArray = (numbers: number[]) => {\n  return numbers.reduce((acc, num) => mmc(acc, num), 1);\n};\n\ninterface PriceOptions {\n  hasPrefix?: boolean;\n  minimumFractionDigits?: number;\n  maximumFractionDigits?: number;\n}\n// Função para formatar preço\nexport const formatPrice = (price: number | string, options?: PriceOptions) => {\n  if (price === undefined || price === null) return \"\";\n\n  const hasDecimal =\n    price.toString().includes(\".\") || price.toString().includes(\",\");\n\n  if (typeof price === \"string\") {\n    price = price.replace(/\\./g, \"\").replace(\",\", \"\");\n  }\n\n  const parsedPrice =\n    typeof price === \"string\"\n      ? parseFloat(price) / (hasDecimal ? 100 : 1)\n      : price;\n\n  const amount = new Intl.NumberFormat(\"pt-BR\", {\n    style: \"currency\",\n    currency: \"BRL\",\n    ...options,\n  }).format(parsedPrice);\n\n  return options?.hasPrefix === false ? `${amount}`.substring(3) : `${amount}`;\n};\n\n// Função para mascarar uma string\nexport const maskString = (string: string, percent = 50, char = \"*\") => {\n  const length = string.length;\n  const charAmount = length * (percent / 100);\n  const firstAmount = Math.floor((length - charAmount) / 2);\n\n  return (\n    string.substring(0, firstAmount) +\n    char.repeat(charAmount) +\n    string.substring(firstAmount + charAmount)\n  );\n};\n\n// Função para limpar telefone\nexport const clearPhone = (phone: string) => {\n  return phone.replace(/\\D/g, \"\");\n};\n\n// Função para validar um CPF\nexport const validateCPF = (cpf: string) => {\n  if (cpf.length !== 11) {\n    return false;\n  }\n\n  if (cpf.match(/(\\d)\\1{10}/)) {\n    return false;\n  }\n\n  const numbers = cpf.substring(0, 9);\n  const digits = cpf.substring(9);\n\n  const sum = numbers\n    .split(\"\")\n    .map((number, index) => parseInt(number, 10) * (10 - index))\n    .reduce((acc, curr) => acc + curr);\n\n  const firstDigit = (sum * 10) % 11;\n\n  if (firstDigit.toString() !== digits.charAt(0)) {\n    return false;\n  }\n\n  const sum2 = numbers\n    .split(\"\")\n    .map((number, index) => parseInt(number, 10) * (11 - index))\n    .reduce((acc, curr) => acc + curr);\n\n  const secondDigit = (sum2 * 10) % 11;\n\n  return secondDigit.toString() === digits.charAt(1);\n};\n\n// Função para buscar endereço pelo cep\nexport const getAddressByCep = async (cep: string) => {\n  const formattedCep = cep.replace(/(\\.|-)/gi, \"\");\n  try {\n    const { data } = await axios.get(\n      `https://viacep.com.br/ws/${formattedCep}/json/`,\n    );\n\n    return { ...data, provider: \"viacep\" };\n  } catch (_err) {\n    const { data } = await axios.get(\n      `https://brasilapi.com.br/api/cep/v2/${cep}`,\n    );\n\n    return {\n      cep: data.cep,\n      logradouro: data.street,\n      bairro: data.neighborhood,\n      localidade: data.city,\n      uf: data.state,\n      provider: \"brasilapi\",\n      brasilapi_service: data.service,\n    };\n  }\n};\n\n// Função para converter HEX para RGB\nexport const hexToRgb = (hex: string): [number, number, number] => {\n  // Remove o '#' se presente\n  hex = hex.replace(/^#/, \"\");\n\n  // Converter HEX para os componentes RGB\n  const r = parseInt(hex.substring(0, 2), 16);\n  const g = parseInt(hex.substring(2, 4), 16);\n  const b = parseInt(hex.substring(4, 6), 16);\n  return [r, g, b];\n};\n\n// Função para converter RGB para HSB\nexport const rgbToHsb = (r: number, g: number, b: number) => {\n  r /= 255;\n  g /= 255;\n  b /= 255;\n  const v = Math.max(r, g, b),\n    n = v - Math.min(r, g, b);\n  const h =\n    n === 0\n      ? 0\n      : n && v === r\n        ? (g - b) / n\n        : v === g\n          ? 2 + (b - r) / n\n          : 4 + (r - g) / n;\n  return [60 * (h < 0 ? h + 6 : h), v && (n / v) * 100, v * 100];\n};\n\n// Função para converter HEX para HSB\nexport const hexToHsb = (hex: string): [number, number, number] => {\n  // Remove o '#' se presente\n  hex = hex.replace(/^#/, \"\");\n\n  // Converter HEX para RGB\n  const r = parseInt(hex.substring(0, 2), 16) / 255;\n  const g = parseInt(hex.substring(2, 4), 16) / 255;\n  const b = parseInt(hex.substring(4, 6), 16) / 255;\n\n  // Calcular o máximo e mínimo entre R, G, B\n  const max = Math.max(r, g, b),\n    min = Math.min(r, g, b);\n  const delta = max - min;\n\n  // Calcular brilho (B)\n  const bValue = max * 100;\n\n  // Calcular saturação (S)\n  const sValue = max === 0 ? 0 : (delta / max) * 100;\n\n  // Calcular matiz (H)\n  let hValue = 0;\n  if (delta !== 0) {\n    if (max === r) hValue = (g - b) / delta + (g < b ? 6 : 0);\n    else if (max === g) hValue = (b - r) / delta + 2;\n    else hValue = (r - g) / delta + 4;\n\n    hValue = Math.round(hValue * 60);\n  }\n\n  return [hValue, Math.round(sValue), Math.round(bValue)];\n};\n\nexport const rgbToHex = (number: number) =>\n  number.toString(16).padStart(2, \"0\");\n\n// Função para converter HSB para HEX\nconst hsbToHex = (h: number, s: number, b: number): string => {\n  s /= 100;\n  b /= 100;\n\n  const c = b * s;\n  const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n  const m = b - c;\n  let r = 0,\n    g = 0,\n    bl = 0;\n\n  if (0 <= h && h < 60) {\n    r = c;\n    g = x;\n    bl = 0;\n  } else if (60 <= h && h < 120) {\n    r = x;\n    g = c;\n    bl = 0;\n  } else if (120 <= h && h < 180) {\n    r = 0;\n    g = c;\n    bl = x;\n  } else if (180 <= h && h < 240) {\n    r = 0;\n    g = x;\n    bl = c;\n  } else if (240 <= h && h < 300) {\n    r = x;\n    g = 0;\n    bl = c;\n  } else if (300 <= h && h < 360) {\n    r = c;\n    g = 0;\n    bl = x;\n  }\n\n  r = Math.round((r + m) * 255);\n  g = Math.round((g + m) * 255);\n  bl = Math.round((bl + m) * 255);\n\n  return `#${rgbToHex(r)}${rgbToHex(g)}${rgbToHex(bl)}`;\n};\n\ninterface ColorVariants {\n  lightest: string;\n  lighter: string;\n  light: string;\n  default: string;\n  dark: string;\n  darker: string;\n}\n\n// Cache for color variants with LRU eviction (max 50 entries)\nconst colorVariantsCache = new Map<string, ColorVariants>();\nconst MAX_CACHE_SIZE = 50;\n\nconst cacheColorVariants = (\n  hex: string,\n  variants: ColorVariants,\n): ColorVariants => {\n  if (colorVariantsCache.size >= MAX_CACHE_SIZE) {\n    // Remove oldest entry (first inserted)\n    const firstKey = colorVariantsCache.keys().next().value;\n    colorVariantsCache.delete(firstKey);\n  }\n  colorVariantsCache.set(hex, variants);\n  return variants;\n};\n\n// Função para gerar variações de cor\nexport const generateColorVariants = (hex: string): ColorVariants => {\n  // Check cache first\n  const cached = colorVariantsCache.get(hex);\n  if (cached) {\n    return cached;\n  }\n\n  // Converter de HEX para HSB\n  const [h, s, b] = hexToHsb(hex);\n\n  // Gerar cor mais clara: -20 de S, +4 de L\n  const lightS = Math.max(s - 20, 0); // Garantir que S não seja negativo\n  const lightB = Math.min(b + 4, 100); // Garantir que L não passe de 100\n  const lightColor = hsbToHex(h, lightS, lightB);\n\n  // Gerar cor ainda mais clara: -40 de S, +8 de L\n  const lighterS = Math.max(s - 40, 0); // Garantir que S não seja negativo\n  const lighterB = Math.min(b + 8, 100); // Garantir que L não passe de 100\n  const lighterColor = hsbToHex(h, lighterS, lighterB);\n\n  // Gerar cor ainda mais clara: -60 de S, +12 de L\n  const lightestS = Math.max(s - 60, 0); // Garantir que S não seja negativo\n  const lightestB = Math.min(b + 12, 100); // Garantir que L não passe de 100\n  const lightestColor = hsbToHex(h, lightestS, lightestB);\n\n  // Gerar cor mais escura: +4 de S, -20 de L\n  const darkS = Math.min(s + 4, 100); // Garantir que S não passe de 100\n  const darkB = Math.max(b - 20, 0); // Garantir que L não seja negativo\n  const darkColor = hsbToHex(h, darkS, darkB);\n\n  // Gerar cor ainda mais escura: +8 de S, -40 de L\n  const darkerS = Math.min(s + 8, 100); // Garantir que S não passe de 100\n  const darkerB = Math.max(b - 40, 0); // Garantir que L não seja negativo\n  const darkerColor = hsbToHex(h, darkerS, darkerB);\n\n  const variants: ColorVariants = {\n    lightest: lightestColor,\n    lighter: lighterColor,\n    light: lightColor,\n    default: hex,\n    dark: darkColor,\n    darker: darkerColor,\n  };\n\n  return cacheColorVariants(hex, variants);\n};\n\nexport const getBrighterColor = (hex: string, percentage: number) => {\n  let [r, g, b] = hexToRgb(hex);\n\n  const lightenChannel = (channel: number) =>\n    Math.round(channel + (255 - channel) * (percentage / 100));\n\n  r = lightenChannel(r);\n  g = lightenChannel(g);\n  b = lightenChannel(b);\n\n  return `#${rgbToHex(r)}${rgbToHex(g)}${rgbToHex(b)}`;\n};\n\n// Função para preencher um array de datas\nexport const fillDaysArray = (arr: Array<Date>) => {\n  const firstDay = arr[0];\n  for (let i = 1; i <= firstDay.getDay(); i++) {\n    const date = subDays(firstDay, i);\n    arr.unshift(date);\n  }\n\n  const multiplier = Math.ceil(arr.length / 7);\n  const left = 7 * multiplier - arr.length;\n  const lastDay = arr[arr.length - 1];\n\n  for (let i = 1; i <= left; i++) {\n    const date = addDays(lastDay, i);\n    arr.push(date);\n  }\n};\n\n// Função para aceitar apenas horas validas numa string e ajustar conforme necessário\nexport const clampTimeString = (\n  timeStr: string,\n  currentDate: Date,\n  type: \"start\" | \"end\",\n  compareDate?: Date,\n) => {\n  const [hourStr, minuteStr] = timeStr.split(\":\");\n\n  let hours = parseInt(hourStr, 10);\n  let minutes = parseInt(minuteStr, 10);\n\n  // Ajuste para valores válidos de horas e minutos\n  hours = Math.max(0, Math.min(23, hours));\n  minutes = Math.max(0, Math.min(59, minutes));\n\n  // Define a data ajustada com partes preservadas de currentDate\n  const adjustedDate = set(currentDate, { hours, minutes });\n\n  // Verifica e aplica restrições\n  if (compareDate && type === \"start\" && isAfter(adjustedDate, compareDate)) {\n    return compareDate;\n  } else if (\n    compareDate &&\n    type === \"end\" &&\n    isBefore(adjustedDate, compareDate)\n  ) {\n    return compareDate;\n  }\n\n  return adjustedDate;\n};\n\n// Função para aceitar apenas datas validas numa string e ajustar conforme necessário\nexport const clampDateString = (\n  dateStr: string,\n  currentDate: Date,\n  type: \"start\" | \"end\",\n  compareDate?: Date,\n) => {\n  const [dayStr, monthStr, yearStr] = dateStr.split(\"/\");\n\n  let day = parseInt(dayStr, 10);\n  let month = parseInt(monthStr, 10) - 1;\n  const year = parseInt(yearStr, 10);\n\n  // Ajuste do mês e do dia\n  month = Math.max(0, Math.min(11, month));\n  const maxDay = getDaysInMonth(new Date(year, month));\n  day = Math.max(1, Math.min(maxDay, day));\n\n  // Define a data ajustada com partes preservadas de currentDate\n  const adjustedDate = set(currentDate, { year, month, date: day });\n\n  if (compareDate && type === \"start\" && isAfter(adjustedDate, compareDate)) {\n    return compareDate;\n  } else if (\n    compareDate &&\n    type === \"end\" &&\n    isBefore(adjustedDate, compareDate)\n  ) {\n    return compareDate;\n  }\n\n  return adjustedDate;\n};\n\nexport function currencyFormatter(\n  value: number,\n  hasPrefix?: boolean,\n\n  minimumFractionDigits = 2,\n  max?: number,\n  min?: number,\n) {\n  if (value === null || value === undefined || Number.isNaN(value)) return \"\";\n\n  if (max && value > max * 100) {\n    value = max * 100;\n  }\n\n  if (min && value < min * 100) {\n    value = min * 100;\n  }\n\n  const amount = new Intl.NumberFormat(\"pt-BR\", {\n    style: \"currency\",\n    currency: \"BRL\",\n    minimumFractionDigits,\n  }).format(value / 10 ** minimumFractionDigits);\n\n  return hasPrefix ? `${amount}` : `${amount}`.substring(3);\n}\n\ntype Complement = {\n  price: string;\n  amount: number;\n};\n\ntype ComplementCategory = {\n  additional: boolean;\n  more_expensive_only: boolean;\n  use_average: boolean;\n  complements: Complement[];\n};\n\nexport type Product = {\n  price: string;\n  amount: number;\n  weight?: number;\n  complement_categories?: ComplementCategory[];\n};\n\nexport const getComplementsPrice = (product: Product) => {\n  const basePrice =\n    parseFloat(product.price) * product.amount * (product.weight || 1);\n\n  const complementsPrice =\n    product.complement_categories?.reduce((catTotal, cat) => {\n      if (!cat.additional) return catTotal;\n\n      if (cat.more_expensive_only) {\n        const highestComplement = cat.complements.reduce(\n          (highest, c) => {\n            return parseFloat(c.price) > parseFloat(highest.price)\n              ? c\n              : highest;\n          },\n          { price: \"0\", amount: 0 },\n        );\n\n        return (\n          catTotal +\n          parseFloat(highestComplement.price) *\n            (highestComplement.amount >= 1 ? 1 : 0) *\n            product.amount\n        );\n      }\n\n      if (cat.use_average) {\n        const totalValue = cat.complements.reduce(\n          (sum, c) => sum + parseFloat(c.price) * c.amount * product.amount,\n          0,\n        );\n        const totalAmount = cat.complements.reduce(\n          (sum, c) => sum + c.amount * product.amount,\n          0,\n        );\n\n        return totalAmount > 0 ? catTotal + totalValue / totalAmount : catTotal;\n      }\n\n      const complementsValue = cat.complements.reduce(\n        (sum, c) => sum + parseFloat(c.price) * c.amount * product.amount,\n        0,\n      );\n\n      return catTotal + complementsValue;\n    }, 0) ?? 0;\n\n  return basePrice + complementsPrice;\n};\n\nexport const formatSearchItems = (\n  menuItems: MenuItemProps[],\n  parentPath = \"\",\n  parentTexts: string[] = [],\n): MenuItemProps[] => {\n  return menuItems\n    .filter((item) => item.condition !== false)\n    .flatMap((item) => {\n      const currentPath = parentPath + (item.path || \"\");\n      const currentTexts = [...parentTexts, item.text];\n\n      if (item.subitems && item.subitems.length > 0) {\n        return formatSearchItems(item.subitems, currentPath, currentTexts);\n      }\n\n      return [\n        {\n          ...item,\n          path: currentPath,\n          searchText: currentTexts.join(\"/\"),\n          key: `${currentPath}|${currentTexts.join(\"/\")}`,\n        },\n      ];\n    });\n};\n\nexport const filterItems = (item: MenuItemProps, search: string) => {\n  return item.searchText?.toLowerCase().includes(search.toLowerCase());\n};\n\nexport const filterSidebarItems = (items: MenuItemProps[]) => {\n  return items\n    .map((item) => {\n      if (item.subitems) {\n        return {\n          ...item,\n          subitems: item.subitems.filter(\n            (subitem) =>\n              (subitem.displayType === \"sidebar\" || !subitem.displayType) &&\n              subitem.condition !== false,\n          ),\n        };\n      }\n      return item;\n    })\n    .filter(\n      (item) =>\n        (item.displayType === \"sidebar\" || !item.displayType) &&\n        item.condition !== false,\n    );\n};\n"],"mappings":"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","names":["axios"]}