UNPKG

@grafana/ui

Version:
1 lines 2.24 kB
{"version":3,"file":"AbstractList.mjs","sources":["../../../../src/components/List/AbstractList.tsx"],"sourcesContent":["import { cx, css } from '@emotion/css';\nimport { PureComponent } from 'react';\n\nimport { stylesFactory } from '../../themes/stylesFactory';\n\nexport interface ListProps<T> {\n items: T[];\n renderItem: (item: T, index: number) => JSX.Element;\n getItemKey?: (item: T) => string;\n className?: string;\n}\n\ninterface AbstractListProps<T> extends ListProps<T> {\n inline?: boolean;\n}\n\nconst getStyles = stylesFactory((inlineList = false) => ({\n list: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n }),\n\n item: css({\n display: (inlineList && 'inline-block') || 'block',\n }),\n}));\n\nexport class AbstractList<T> extends PureComponent<AbstractListProps<T>> {\n constructor(props: AbstractListProps<T>) {\n super(props);\n }\n\n render() {\n const { items, renderItem, getItemKey, className, inline } = this.props;\n const styles = getStyles(inline);\n\n return (\n <ul className={cx(styles.list, className)}>\n {items.map((item, i) => {\n return (\n <li className={styles.item} key={getItemKey ? getItemKey(item) : i}>\n {renderItem(item, i)}\n </li>\n );\n })}\n </ul>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;AAgBA,MAAM,SAAA,GAAY,aAAA,CAAc,CAAC,UAAA,GAAa,KAAA,MAAW;AAAA,EACvD,MAAM,GAAA,CAAI;AAAA,IACR,aAAA,EAAe,MAAA;AAAA,IACf,MAAA,EAAQ,CAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACV,CAAA;AAAA,EAED,MAAM,GAAA,CAAI;AAAA,IACR,OAAA,EAAU,cAAc,cAAA,IAAmB;AAAA,GAC5C;AACH,CAAA,CAAE,CAAA;AAEK,MAAM,qBAAwB,aAAA,CAAoC;AAAA,EACvE,YAAY,KAAA,EAA6B;AACvC,IAAA,KAAA,CAAM,KAAK,CAAA;AAAA,EACb;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,MAAM,EAAE,KAAA,EAAO,UAAA,EAAY,YAAY,SAAA,EAAW,MAAA,KAAW,IAAA,CAAK,KAAA;AAClE,IAAA,MAAM,MAAA,GAAS,UAAU,MAAM,CAAA;AAE/B,IAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA,EACrC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,MAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,IAAA,EACnB,QAAA,EAAA,UAAA,CAAW,IAAA,EAAM,CAAC,CAAA,EAAA,EADY,UAAA,GAAa,UAAA,CAAW,IAAI,IAAI,CAEjE,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,EAEJ;AACF;;;;"}