UNPKG

reflexy

Version:

Flexbox layout react components

47 lines (46 loc) 1.8 kB
import '@js-toolkit/utils/types'; import { hasIn } from '@js-toolkit/utils/hasIn'; export const REFLEXY_KEY = Symbol.for('@reflexy'); export function copyInternalProps(source, target) { target[REFLEXY_KEY] = source[REFLEXY_KEY]; return target; } export function defaultClassNameTransformer(calcClassName, userClassName) { if (calcClassName && userClassName) return `${calcClassName} ${userClassName}`; return userClassName || calcClassName; } export function defaultStyleTransformer(calcStyle, userStyle) { if (userStyle && calcStyle) return { ...calcStyle, ...userStyle }; return userStyle || calcStyle; } export function getCssValue(space, unit) { const value = typeof unit === 'number' ? space * unit : space; const cssUnit = typeof unit === 'number' ? 'px' : unit; return `${value}${cssUnit}`; } export function getAbsSpaceSize(size) { if (size[0] === '-') return size.substring(1); return size; } export function getSpaceSizeMultiplier(size, sizeMultipliers) { return typeof size === 'number' ? size : sizeMultipliers[getAbsSpaceSize(size)]; } export function getSpace(space, defaultSpace) { if (space === true) return defaultSpace; return space === false ? 0 : space; } export function spaceToCssValue(size, sizeMultipliersOrDefaults, unit0) { const [sizeMultipliers, unit] = hasIn(sizeMultipliersOrDefaults, 'defaultUnit') ? [sizeMultipliersOrDefaults.defaultSizes, sizeMultipliersOrDefaults.defaultUnit] : [sizeMultipliersOrDefaults, unit0]; if (typeof size === 'string') { if (size[0] === '-') return `-${getCssValue(sizeMultipliers[size.substring(1)], unit)}`; return getCssValue(sizeMultipliers[size], unit); } return getCssValue(size, unit); }