@talend/react-faceted-search
Version:
119 lines (117 loc) • 3.85 kB
JavaScript
;
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