{"version":3,"file":"StatsPicker.cjs","sources":["../../../../src/components/StatsPicker/StatsPicker.tsx"],"sourcesContent":["import { difference } from 'lodash';\nimport { memo, useEffect } from 'react';\n\nimport { fieldReducers, SelectableValue, FieldReducerInfo } from '@grafana/data';\n\nimport { Select } from '../Select/Select';\n\nexport interface Props {\n  placeholder?: string;\n  onChange: (stats: string[]) => void;\n  stats: string[];\n  allowMultiple?: boolean;\n  defaultStat?: string;\n  className?: string;\n  width?: number;\n  menuPlacement?: 'auto' | 'bottom' | 'top';\n  inputId?: string;\n  filterOptions?: (ext: FieldReducerInfo) => boolean;\n}\n\nexport const StatsPicker = memo<Props>(\n  ({\n    placeholder,\n    onChange,\n    stats,\n    allowMultiple = false,\n    defaultStat,\n    className,\n    width,\n    menuPlacement,\n    inputId,\n    filterOptions,\n  }) => {\n    useEffect(() => {\n      const current = fieldReducers.list(stats);\n      if (current.length !== stats.length) {\n        const found = current.map((v) => v.id);\n        const notFound = difference(stats, found);\n        console.warn('Unknown stats', notFound, stats);\n        onChange(current.map((stat) => stat.id));\n      }\n\n      // Make sure there is only one\n      if (!allowMultiple && stats.length > 1) {\n        console.warn('Removing extra stat', stats);\n        onChange([stats[0]]);\n      }\n\n      // Set the reducer from callback\n      if (defaultStat && stats.length < 1) {\n        onChange([defaultStat]);\n      }\n    }, [stats, allowMultiple, defaultStat, onChange]);\n\n    const onSelectionChange = (item: SelectableValue<string>) => {\n      if (Array.isArray(item)) {\n        onChange(item.map((v) => v.value));\n      } else {\n        onChange(item && item.value ? [item.value] : []);\n      }\n    };\n\n    const select = fieldReducers.selectOptions(stats, filterOptions);\n    return (\n      <Select\n        value={select.current}\n        className={className}\n        isClearable={!defaultStat}\n        isMulti={allowMultiple}\n        width={width}\n        isSearchable={true}\n        options={select.options}\n        placeholder={placeholder}\n        onChange={onSelectionChange}\n        menuPlacement={menuPlacement}\n        inputId={inputId}\n      />\n    );\n  }\n);\n\nStatsPicker.displayName = 'StatsPicker';\n"],"names":["memo","useEffect","fieldReducers","difference","jsx","Select"],"mappings":";;;;;;;;;;;AAoBO,MAAM,WAAA,GAAcA,UAAA;AAAA,EACzB,CAAC;AAAA,IACC,WAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA,GAAgB,KAAA;AAAA,IAChB,WAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAAC,eAAA,CAAU,MAAM;AACd,MAAA,MAAM,OAAA,GAAUC,kBAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AACxC,MAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,KAAA,CAAM,MAAA,EAAQ;AACnC,QAAA,MAAM,QAAQ,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE,CAAA;AACrC,QAAA,MAAM,QAAA,GAAWC,iBAAA,CAAW,KAAA,EAAO,KAAK,CAAA;AACxC,QAAA,OAAA,CAAQ,IAAA,CAAK,eAAA,EAAiB,QAAA,EAAU,KAAK,CAAA;AAC7C,QAAA,QAAA,CAAS,QAAQ,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,MACzC;AAGA,MAAA,IAAI,CAAC,aAAA,IAAiB,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACtC,QAAA,OAAA,CAAQ,IAAA,CAAK,uBAAuB,KAAK,CAAA;AACzC,QAAA,QAAA,CAAS,CAAC,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAAA,MACrB;AAGA,MAAA,IAAI,WAAA,IAAe,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AACnC,QAAA,QAAA,CAAS,CAAC,WAAW,CAAC,CAAA;AAAA,MACxB;AAAA,IACF,GAAG,CAAC,KAAA,EAAO,aAAA,EAAe,WAAA,EAAa,QAAQ,CAAC,CAAA;AAEhD,IAAA,MAAM,iBAAA,GAAoB,CAAC,IAAA,KAAkC;AAC3D,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,QAAA,QAAA,CAAS,KAAK,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,MACnC,CAAA,MAAO;AACL,QAAA,QAAA,CAAS,IAAA,IAAQ,KAAK,KAAA,GAAQ,CAAC,KAAK,KAAK,CAAA,GAAI,EAAE,CAAA;AAAA,MACjD;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,MAAA,GAASD,kBAAA,CAAc,aAAA,CAAc,KAAA,EAAO,aAAa,CAAA;AAC/D,IAAA,uBACEE,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,OAAO,MAAA,CAAO,OAAA;AAAA,QACd,SAAA;AAAA,QACA,aAAa,CAAC,WAAA;AAAA,QACd,OAAA,EAAS,aAAA;AAAA,QACT,KAAA;AAAA,QACA,YAAA,EAAc,IAAA;AAAA,QACd,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,WAAA;AAAA,QACA,QAAA,EAAU,iBAAA;AAAA,QACV,aAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}