{"version":3,"file":"utils.mjs","sources":["../../../../src/components/Select/utils.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\n\nimport { SelectableOptGroup } from './types';\n\n/**\n * Normalize the value format to SelectableValue[] | []. Only used for single select\n */\nexport const cleanValue = (\n  value: unknown,\n  options: Array<SelectableValue | SelectableOptGroup | SelectableOptGroup[]>\n) => {\n  if (Array.isArray(value)) {\n    const filtered = value.filter(Boolean);\n    return filtered?.length ? filtered : undefined;\n  }\n  if (typeof value === 'object') {\n    // we want to allow null through into here, so the Select value can be unset\n    return [value];\n  }\n  if (typeof value === 'string' || typeof value === 'number') {\n    const selectedValue = findSelectedValue(value, options);\n    if (selectedValue) {\n      return [selectedValue];\n    }\n  }\n  return undefined;\n};\n\n/**\n * Find the label for a string|number value inside array of options or optgroups\n */\nexport const findSelectedValue = (\n  value: string | number,\n  options: Array<SelectableValue | SelectableOptGroup | SelectableOptGroup[]>\n): SelectableValue | null => {\n  for (const option of options) {\n    if ('options' in option) {\n      let found = findSelectedValue(value, option.options);\n      if (found) {\n        return found;\n      }\n    } else if ('value' in option && option.value === value) {\n      return option;\n    }\n  }\n\n  return null;\n};\n\n/**\n * Omit descriptions from an array of options\n */\nexport const omitDescriptions = (options: SelectableValue[]): SelectableValue[] => {\n  return options.map(({ description, ...rest }) => rest);\n};\n"],"names":[],"mappings":"AAOa,MAAA,UAAA,GAAa,CACxB,KAAA,EACA,OACG,KAAA;AACH,EAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,IAAM,MAAA,QAAA,GAAW,KAAM,CAAA,MAAA,CAAO,OAAO,CAAA;AACrC,IAAO,OAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,UAAS,QAAW,GAAA,KAAA,CAAA;AAAA;AAEvC,EAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAE7B,IAAA,OAAO,CAAC,KAAK,CAAA;AAAA;AAEf,EAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,OAAO,UAAU,QAAU,EAAA;AAC1D,IAAM,MAAA,aAAA,GAAgB,iBAAkB,CAAA,KAAA,EAAO,OAAO,CAAA;AACtD,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,OAAO,CAAC,aAAa,CAAA;AAAA;AACvB;AAEF,EAAO,OAAA,KAAA,CAAA;AACT;AAKa,MAAA,iBAAA,GAAoB,CAC/B,KAAA,EACA,OAC2B,KAAA;AAC3B,EAAA,KAAA,MAAW,UAAU,OAAS,EAAA;AAC5B,IAAA,IAAI,aAAa,MAAQ,EAAA;AACvB,MAAA,IAAI,KAAQ,GAAA,iBAAA,CAAkB,KAAO,EAAA,MAAA,CAAO,OAAO,CAAA;AACnD,MAAA,IAAI,KAAO,EAAA;AACT,QAAO,OAAA,KAAA;AAAA;AACT,KACS,MAAA,IAAA,OAAA,IAAW,MAAU,IAAA,MAAA,CAAO,UAAU,KAAO,EAAA;AACtD,MAAO,OAAA,MAAA;AAAA;AACT;AAGF,EAAO,OAAA,IAAA;AACT;AAKa,MAAA,gBAAA,GAAmB,CAAC,OAAkD,KAAA;AACjF,EAAO,OAAA,OAAA,CAAQ,IAAI,CAAC,EAAE,aAAa,GAAG,IAAA,OAAW,IAAI,CAAA;AACvD;;;;"}