UNPKG

@talend/react-faceted-search

Version:
119 lines (117 loc) 3.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BadgePeriod = void 0; var _react = require("react"); var _dateFns = require("date-fns"); var _propTypes = _interopRequireDefault(require("prop-types")); var _facetedSearch = require("../../facetedSearch.propTypes"); var _BadgeFaceted = require("../BadgeFaceted"); var _BadgePeriodForm = require("./BadgePeriodForm.component"); var _reactComponents = require("@talend/react-components"); var _lodash = require("lodash"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const DATE_FORMAT_YYYY_DD_MM = 'yyyy-MM-dd'; function isDateRange(value) { return value.id === 'CUSTOM'; } function formatDate(date) { return (0, _dateFns.format)(date, DATE_FORMAT_YYYY_DD_MM); } function getRangeLabel(startDateTime, endDateTime, t) { return `${formatDate(startDateTime)} ${t('TO', { defaultValue: 'to' })} ${formatDate(endDateTime)}`; } const getSelectBadgeLabel = (value, t) => { const labelAll = t('FACETED_SEARCH_VALUE_ALL', { defaultValue: 'All' }); if ((0, _lodash.isEmpty)(value)) return labelAll; if (isDateRange(value) && (0, _dateFns.isValid)(value.startDateTime) && (0, _dateFns.isValid)(value.endDateTime)) { return getRangeLabel(value.startDateTime, value.endDateTime, t); } return value.label || labelAll; }; // eslint-disable-next-line import/prefer-default-export const BadgePeriod = ({ displayType, filterBarPlaceholder, id, initialOperatorOpened, initialValueOpened, label, readOnly, removable, operator, operators, size, value, values, t, ...rest }) => { const currentOperator = operator || (operators === null || operators === void 0 ? void 0 : operators[0]); const badgePeriodId = `${id}-badge-period`; const badgeLabel = (0, _react.useMemo)(() => getSelectBadgeLabel(value, t), [value, t]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BadgeFaceted.BadgeFaceted, { badgeId: id, displayType: displayType, id: badgePeriodId, initialOperatorOpened: initialOperatorOpened, initialValueOpened: initialValueOpened, labelCategory: label, labelValue: badgeLabel, operator: currentOperator, operators: operators, readOnly: readOnly, removable: removable, size: size, t: t, value: value || {}, type: "period", children: ({ onSubmitBadge, onChangeValue, badgeValue }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_BadgePeriodForm.BadgePeriodForm, { id: badgePeriodId, onChange: onChangeValue, onSubmit: onSubmitBadge, value: badgeValue, values: values, t: t, ...rest }) }); }; exports.BadgePeriod = BadgePeriod; BadgePeriod.propTypes = { displayType: _propTypes.default.oneOf(Object.values(_reactComponents.Badge.TYPES)), filterBarPlaceholder: _propTypes.default.string, id: _propTypes.default.string.isRequired, readOnly: _propTypes.default.bool, removable: _propTypes.default.bool, label: _propTypes.default.string, initialOperatorOpened: _propTypes.default.bool, initialValueOpened: _propTypes.default.bool, operator: _facetedSearch.operatorPropTypes, operators: _facetedSearch.operatorsPropTypes, size: _propTypes.default.oneOf(Object.values(_reactComponents.Badge.SIZES)), value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({ checked: _propTypes.default.bool, id: _propTypes.default.string.isRequired, label: _propTypes.default.string.isRequired })]), values: _propTypes.default.array, t: _propTypes.default.func.isRequired }; BadgePeriod.defaultProps = { readOnly: false, removable: true, initialOperatorOpened: false, initialValueOpened: false }; //# sourceMappingURL=BadgePeriod.component.js.map