Sha256: 315058755fa051f229ab0ac11ab0a2dac87c18dcc2994e1e7a777a0ed5ce0770

Contents?: true

Size: 1.05 KB

Versions: 11

Compression:

Stored size: 1.05 KB

Contents

/* @flow */
/*eslint-disable react/no-multi-comp, flowtype/space-before-type-colon */

import React from 'react'

type DistributionBarProps = {
  className?: String,
  data?: String,
  id?: String,
  size?: 'lg' | 'sm',
  widths?: Array<Number>,
}

const normalizeCharacters = (widths) => {
  return widths.map(width => {
    return parseInt(width.toString().replace(/[^0-9.]/gi, ''))
  })
}

const barValues = (normalizedValues) => {
  let arrSum = value => value.reduce((a,b) => (a + b), 0)
  let widthSum = arrSum(normalizedValues)
  return normalizedValues.map((value,i) => {
    return(
      <div
          key={i}
          className={`pb_distribution_width`}
          style={{width:`${value*100/widthSum}%`}}
      />
    )
  })
}

const DistributionBar = ({
    className,
    data,
    id,
    size='lg',
    widths=[1]
  }: DistributionBarProps) => {
    const normalizedValues = normalizeCharacters(widths)

    return(
      <div className={`pb_distribution_bar_${size}`}>
        {barValues(normalizedValues)}
      </div>
    )
}

export default DistributionBar

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
playbook_ui-3.1.0 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-3.0.1 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-3.0.0 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.9 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.8 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.7 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.6 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.5 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.4 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.3 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx
playbook_ui-2.9.2 app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx