@grafana/ui
Version:
Grafana Components Library
1 lines • 2.75 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":"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;;;;"}