UNPKG

@talend/react-faceted-search

Version:
97 lines (96 loc) 2.74 kB
import { useMemo } from 'react'; import PropTypes from 'prop-types'; import { BadgeFaceted } from '../BadgeFaceted'; import { BadgeSliderForm } from './BadgeSliderForm.component'; import { operatorPropTypes, operatorsPropTypes } from '../../facetedSearch.propTypes'; import { Badge } from "@talend/react-components"; import { jsx as _jsx } from "react/jsx-runtime"; const createDefaultOperators = t => [{ label: t('FACETED_SEARCH_EQUAL', { defaultValue: 'Equal' }), name: 'equals', iconName: 'equal' }, { label: t('FACETED_SEARCH_GREATHER_THAN', { defaultValue: 'Greater than' }), name: 'GreaterThan', iconName: 'greater-than' }, { label: t('FACETED_SEARCH_LESS_THAN', { defaultValue: 'Less than' }), name: 'LessThan', iconName: 'less-than' }]; const BadgeSlider = ({ id, initialOperatorOpened, initialValueOpened, label, operator, operators, size, t, value, category, defaultValue = 0, unit = '', displayType, ...rest }) => { const currentOperators = useMemo(() => operators || createDefaultOperators(t), [operators, t]); const currentOperator = operator || currentOperators[0]; const numericValue = value != null ? value : defaultValue; const labelValue = numericValue != null && `${numericValue}${unit}`; const badgeTextId = `${id}-badge-slider`; return /*#__PURE__*/_jsx(BadgeFaceted, { badgeId: id, displayType: displayType, id: badgeTextId, initialOperatorOpened: initialOperatorOpened, initialValueOpened: initialValueOpened, labelCategory: label, labelValue: labelValue, operator: currentOperator, operators: currentOperators, size: size, t: t, value: value || defaultValue, children: ({ onSubmitBadge, onChangeValue, badgeValue }) => /*#__PURE__*/_jsx(BadgeSliderForm, { id: badgeTextId, onChange: onChangeValue, onSubmit: onSubmitBadge, operator: currentOperator, value: badgeValue, defaultValue: defaultValue, feature: category || label, unit: unit, t: t, ...rest }) }); }; BadgeSlider.propTypes = { id: PropTypes.string.isRequired, initialOperatorOpened: PropTypes.bool, initialValueOpened: PropTypes.bool, label: PropTypes.string.isRequired, operator: operatorPropTypes, operators: operatorsPropTypes, size: PropTypes.oneOf(Object.values(Badge.SIZES)), t: PropTypes.func.isRequired, value: PropTypes.number, category: PropTypes.string, defaultValue: PropTypes.number, unit: PropTypes.string, displayType: PropTypes.oneOf(Object.values(Badge.TYPES)) }; // eslint-disable-next-line import/prefer-default-export export { BadgeSlider }; //# sourceMappingURL=BadgeSlider.component.js.map