{"version":3,"file":"ValueContainer.cjs","sources":["../../../../src/components/Select/ValueContainer.tsx"],"sourcesContent":["import { cx } from '@emotion/css';\nimport { isEqual } from 'lodash';\nimport { Component, createRef, ReactNode } from 'react';\nimport { ValueContainerProps as BaseValueContainerProps, type GroupBase } from 'react-select';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { withTheme2 } from '../../themes/ThemeContext';\n\nimport { getSelectStyles } from './getSelectStyles';\nimport type { CustomComponentProps } from './types';\n\ntype ValueContainerProps<Option, isMulti extends boolean, Group extends GroupBase<Option>> = BaseValueContainerProps<\n  Option,\n  isMulti,\n  Group\n> &\n  CustomComponentProps<Option, isMulti, Group>;\n\nclass UnthemedValueContainer<Option, isMulti extends boolean, Group extends GroupBase<Option>> extends Component<\n  ValueContainerProps<Option, isMulti, Group> & { theme: GrafanaTheme2 }\n> {\n  private ref = createRef<HTMLDivElement>();\n\n  componentDidUpdate(prevProps: ValueContainerProps<Option, isMulti, Group>) {\n    if (\n      this.ref.current &&\n      this.props.selectProps.autoWidth &&\n      !this.props.selectProps.maxVisibleValues &&\n      !isEqual(prevProps.selectProps.value, this.props.selectProps.value)\n    ) {\n      // Reset in order to measure the new width\n      this.ref.current.style.minWidth = '0px';\n\n      const width = this.ref.current.offsetWidth;\n\n      this.ref.current.style.minWidth = `${width}px`;\n    }\n  }\n\n  render() {\n    const { children } = this.props;\n    const { selectProps } = this.props;\n\n    if (\n      selectProps &&\n      Array.isArray(children) &&\n      Array.isArray(children[0]) &&\n      selectProps.maxVisibleValues !== undefined &&\n      !(selectProps.showAllSelectedWhenOpen && selectProps.menuIsOpen)\n    ) {\n      const [valueChildren, ...otherChildren] = children;\n      const truncatedValues = valueChildren.slice(0, selectProps.maxVisibleValues);\n\n      return this.renderContainer([truncatedValues, ...otherChildren]);\n    }\n\n    return this.renderContainer(children);\n  }\n\n  renderContainer(children?: ReactNode) {\n    const { isMulti, theme, selectProps } = this.props;\n    const noWrap = this.props.selectProps?.noMultiValueWrap && !this.props.selectProps?.menuIsOpen;\n    const styles = getSelectStyles(theme);\n    const dataTestid = selectProps['data-testid'];\n    const className = cx(styles.valueContainer, {\n      [styles.valueContainerMulti]: isMulti && !noWrap,\n      [styles.valueContainerMultiNoWrap]: isMulti && noWrap,\n    });\n\n    return (\n      <div ref={this.ref} data-testid={dataTestid} className={className}>\n        {children}\n      </div>\n    );\n  }\n}\n\nexport const ValueContainer: React.FC<ValueContainerProps<unknown, boolean, GroupBase<unknown>>> =\n  withTheme2(UnthemedValueContainer);\n"],"names":["Component","createRef","isEqual","getSelectStyles","cx","jsx","withTheme2"],"mappings":";;;;;;;;;;;;AAmBA,MAAM,+BAAiGA,eAAA,CAErG;AAAA,EAFF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAGE,IAAA,IAAA,CAAQ,MAAMC,eAAA,EAA0B;AAAA,EAAA;AAAA,EAExC,mBAAmB,SAAA,EAAwD;AACzE,IAAA,IACE,IAAA,CAAK,IAAI,OAAA,IACT,IAAA,CAAK,MAAM,WAAA,CAAY,SAAA,IACvB,CAAC,IAAA,CAAK,KAAA,CAAM,YAAY,gBAAA,IACxB,CAACC,eAAQ,SAAA,CAAU,WAAA,CAAY,OAAO,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,KAAK,CAAA,EAClE;AAEA,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,KAAA,CAAM,QAAA,GAAW,KAAA;AAElC,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,WAAA;AAE/B,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,CAAQ,KAAA,CAAM,QAAA,GAAW,GAAG,KAAK,CAAA,EAAA,CAAA;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,IAAA,CAAK,KAAA;AAC1B,IAAA,MAAM,EAAE,WAAA,EAAY,GAAI,IAAA,CAAK,KAAA;AAE7B,IAAA,IACE,eACA,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,IACtB,KAAA,CAAM,QAAQ,QAAA,CAAS,CAAC,CAAC,CAAA,IACzB,YAAY,gBAAA,KAAqB,KAAA,CAAA,IACjC,EAAE,WAAA,CAAY,uBAAA,IAA2B,YAAY,UAAA,CAAA,EACrD;AACA,MAAA,MAAM,CAAC,aAAA,EAAe,GAAG,aAAa,CAAA,GAAI,QAAA;AAC1C,MAAA,MAAM,eAAA,GAAkB,aAAA,CAAc,KAAA,CAAM,CAAA,EAAG,YAAY,gBAAgB,CAAA;AAE3E,MAAA,OAAO,KAAK,eAAA,CAAgB,CAAC,eAAA,EAAiB,GAAG,aAAa,CAAC,CAAA;AAAA,IACjE;AAEA,IAAA,OAAO,IAAA,CAAK,gBAAgB,QAAQ,CAAA;AAAA,EACtC;AAAA,EAEA,gBAAgB,QAAA,EAAsB;AA5DxC,IAAA,IAAA,EAAA,EAAA,EAAA;AA6DI,IAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,WAAA,KAAgB,IAAA,CAAK,KAAA;AAC7C,IAAA,MAAM,MAAA,GAAA,CAAA,CAAS,EAAA,GAAA,IAAA,CAAK,KAAA,CAAM,WAAA,KAAX,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAwB,qBAAoB,EAAA,CAAC,EAAA,GAAA,IAAA,CAAK,KAAA,CAAM,WAAA,KAAX,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAwB,UAAA,CAAA;AACpF,IAAA,MAAM,MAAA,GAASC,gCAAgB,KAAK,CAAA;AACpC,IAAA,MAAM,UAAA,GAAa,YAAY,aAAa,CAAA;AAC5C,IAAA,MAAM,SAAA,GAAYC,MAAA,CAAG,MAAA,CAAO,cAAA,EAAgB;AAAA,MAC1C,CAAC,MAAA,CAAO,mBAAmB,GAAG,WAAW,CAAC,MAAA;AAAA,MAC1C,CAAC,MAAA,CAAO,yBAAyB,GAAG,OAAA,IAAW;AAAA,KAChD,CAAA;AAED,IAAA,uBACEC,cAAA,CAAC,SAAI,GAAA,EAAK,IAAA,CAAK,KAAK,aAAA,EAAa,UAAA,EAAY,WAC1C,QAAA,EACH,CAAA;AAAA,EAEJ;AACF;AAEO,MAAM,cAAA,GACXC,wBAAW,sBAAsB;;;;"}