Sha256: 0891dd89270bd8f38d835c48703d8179550bc157bba419c3df06f8d910bf31f6

Contents?: true

Size: 1.88 KB

Versions: 355

Compression:

Stored size: 1.88 KB

Contents

/**
 * Defines a set of helper functions used to construct a component following
 * Playbook's patterns.
 */
import classnames from 'classnames'

/**
 *
 * @param {String} prefix the prefix to be used on the dash separated prop (data, aria, etc...)
 * @param {Object} data the object containing the data to derive the props from.
 * @returns {Object} an object whose keys have the prefix added to them.
 */
const buildPrefixedProps = (prefix: string, data: {[key: string]: any}) => 
  Object.keys(data).reduce((props: {[key: string]: any}, key: string) => {
    props[`${prefix}-${key}`] = data[key]
    return props
  }, {})

/**
 * Represent a "No-Operation" function that can be used as a sensible
 * default to event handlers in the absence of a value.
 *
 * @returns {() => {}} the noop function.
 */
export const noop = (): void => { void 0 }

/**
 * Maps a given aria object into HTML valid aria attribtues and their values.
 *
 * @param {Object} aria the object containing the aria prop values.
 * @returns {Object} an object holding the HTML valid aria props and their values.
 */
export const buildAriaProps = (aria: {[key: string]: string}): {[key: string]: string} => 
  buildPrefixedProps('aria', aria)

/**
 * Maps a given data object into HTML valid data attribtues and their values.
 *
 * @param {Object} data the object containing the data prop values.
 * @returns {Object} an object holding the HTML valid data props and their values.
 */
export const buildDataProps = (data: {[key: string]: any}) => buildPrefixedProps('data', data)

/**
 * Builds a Playbook valid root className off of the incoming css rules.
 *
 * @param {Object} rules a 'classnames' compliant rules object, used to derive the root className.
 * @returns {String} the derived root className value.
 */
export const buildCss = (...rules: (string | { [x: string]: string | boolean; })[]): string => classnames(rules).replace(/\s/g, '_')

Version data entries

355 entries across 355 versions & 1 rubygems

Version Path
playbook_ui-13.12.0.pre.alpha.PLAY880cardkithighlightzindex1655 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exportingtypes1627 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exportingtypes1626 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1624 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1623 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play900startratingasinput1612 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1611 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1609 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1081exporttypes1608 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1581 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1580 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1579 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1093typeaheadkitdocbug1577 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051testhighcharts1574 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1567 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1558 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play1051highchartstest1556 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.PLAY1051removinghighchartsdependency1551 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play900startratingasinput1550 app/pb_kits/playbook/utilities/props.ts
playbook_ui-13.12.0.pre.alpha.play900startratingasinput1543 app/pb_kits/playbook/utilities/props.ts