{"version":3,"file":"clamp-level.cjs","names":[],"sources":["../../../../src/components/Calendar/clamp-level/clamp-level.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport type { CalendarLevel } from '../../../types';\n\n// 0 – month, 1 – year, 2 – decade;\ntype LevelNumber = 0 | 1 | 2;\n\nfunction levelToNumber(\n  level: CalendarLevel | undefined,\n  fallback: LevelNumber | undefined\n): LevelNumber {\n  if (!level) {\n    return fallback || 0;\n  }\n\n  return level === 'month' ? 0 : level === 'year' ? 1 : 2;\n}\n\nfunction levelNumberToLevel(levelNumber: LevelNumber | undefined): CalendarLevel {\n  return levelNumber === 0 ? 'month' : levelNumber === 1 ? 'year' : 'decade';\n}\n\nexport function clampLevel(\n  level: CalendarLevel | undefined,\n  minLevel: CalendarLevel | undefined,\n  maxLevel: CalendarLevel | undefined\n): CalendarLevel {\n  return levelNumberToLevel(\n    clamp(\n      levelToNumber(level, 0),\n      levelToNumber(minLevel, 0),\n      levelToNumber(maxLevel, 2)\n    ) as LevelNumber\n  );\n}\n"],"mappings":";;;AAMA,SAAS,cACP,OACA,UACa;CACb,IAAI,CAAC,OACH,OAAO,YAAY;CAGrB,OAAO,UAAU,UAAU,IAAI,UAAU,SAAS,IAAI;AACxD;AAEA,SAAS,mBAAmB,aAAqD;CAC/E,OAAO,gBAAgB,IAAI,UAAU,gBAAgB,IAAI,SAAS;AACpE;AAEA,SAAgB,WACd,OACA,UACA,UACe;CACf,OAAO,oBAAA,GAAA,eAAA,MAAA,CAEH,cAAc,OAAO,CAAC,GACtB,cAAc,UAAU,CAAC,GACzB,cAAc,UAAU,CAAC,CAC3B,CACF;AACF"}