@grafana/ui
Version:
Grafana Components Library
1 lines • 2.79 kB
Source Map (JSON)
{"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":";AAOO,MAAM,UAAA,GAAa,CACxB,KAAA,EACA,OAAA,KACG;AACH,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA;AACrC,IAAA,OAAA,CAAO,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,UAAS,QAAA,GAAW,KAAA,CAAA;AAAA,EACvC;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAE7B,IAAA,OAAO,CAAC,KAAK,CAAA;AAAA,EACf;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,UAAU,QAAA,EAAU;AAC1D,IAAA,MAAM,aAAA,GAAgB,iBAAA,CAAkB,KAAA,EAAO,OAAO,CAAA;AACtD,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,OAAO,CAAC,aAAa,CAAA;AAAA,IACvB;AAAA,EACF;AACA,EAAA,OAAO,KAAA,CAAA;AACT;AAKO,MAAM,iBAAA,GAAoB,CAC/B,KAAA,EACA,OAAA,KAC2B;AAC3B,EAAA,KAAA,MAAW,UAAU,OAAA,EAAS;AAC5B,IAAA,IAAI,aAAa,MAAA,EAAQ;AACvB,MAAA,IAAI,KAAA,GAAQ,iBAAA,CAAkB,KAAA,EAAO,MAAA,CAAO,OAAO,CAAA;AACnD,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAA,MAAA,IAAW,OAAA,IAAW,MAAA,IAAU,MAAA,CAAO,UAAU,KAAA,EAAO;AACtD,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAKO,MAAM,gBAAA,GAAmB,CAAC,OAAA,KAAkD;AACjF,EAAA,OAAO,OAAA,CAAQ,IAAI,CAAC,EAAE,aAAa,GAAG,IAAA,OAAW,IAAI,CAAA;AACvD;;;;"}