@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
97 lines • 3.93 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { addMonths, addYears, isSameMonth, isSameYear, startOfMonth, startOfYear } from 'date-fns';
import { parseDate } from '../../internal/utils/date-time';
export function findDateToFocus(selected, baseDate, isDateEnabled) {
if (selected && isDateEnabled(selected) && isSameMonth(selected, baseDate)) {
return selected;
}
const today = new Date();
if (isDateEnabled(today) && isSameMonth(today, baseDate)) {
return today;
}
if (isDateEnabled(baseDate)) {
return baseDate;
}
return null;
}
export function findMonthToFocus(selected, baseDate, isMonthEnabled) {
if (selected && isMonthEnabled(selected) && isSameYear(selected, baseDate)) {
return selected;
}
const today = new Date();
if (isMonthEnabled(today) && isSameYear(today, baseDate)) {
return today;
}
if (isMonthEnabled(baseDate)) {
return baseDate;
}
return null;
}
export function findMonthToDisplay(value, isSingleGrid) {
if (value.start.date) {
const startDate = parseDate(value.start.date);
if (isSingleGrid) {
return startOfMonth(startDate);
}
return startOfMonth(addMonths(startDate, 1));
}
if (value.end.date) {
return startOfMonth(parseDate(value.end.date));
}
return startOfMonth(Date.now());
}
export function findYearToDisplay(value, isSingleGrid) {
if (value.start.date) {
const startDate = parseDate(value.start.date);
if (isSingleGrid) {
return startOfYear(startDate);
}
return startOfYear(addYears(startDate, 1));
}
if (value.end.date) {
return startOfYear(parseDate(value.end.date));
}
return startOfYear(Date.now());
}
export const generateI18NFallbackKey = (isMonthPicker, isDateOnly) => {
if (isMonthPicker) {
return 'i18nStrings.monthConstraintText';
}
if (isDateOnly) {
return 'i18nStrings.dateConstraintText';
}
return 'i18nStrings.dateTimeConstraintText';
};
export const generateI18NKey = (isMonthPicker, isDateOnly, isIso) => {
if (isMonthPicker) {
return isIso ? 'i18nStrings.isoMonthConstraintText' : 'i18nStrings.slashedMonthConstraintText';
}
if (isDateOnly) {
return isIso ? 'i18nStrings.isoDateConstraintText' : 'i18nStrings.slashedDateConstraintText';
}
return isIso ? 'i18nStrings.isoDateTimeConstraintText' : 'i18nStrings.slashedDateTimeConstraintText';
};
export const provideI18N = (i18nStrings, isMonthPicker, isDateOnly, isIso) => {
let result;
if (isMonthPicker) {
result = isIso ? i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.isoMonthConstraintText : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.slashedMonthConstraintText;
if (!result) {
result = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.monthConstraintText;
}
}
else if (isDateOnly) {
result = isIso ? i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.isoDateConstraintText : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.slashedDateConstraintText;
if (!result) {
result = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.dateConstraintText;
}
}
if (!result) {
result = isIso ? i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.isoDateTimeConstraintText : i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.slashedDateTimeConstraintText;
if (!result) {
result = i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.dateTimeConstraintText;
}
}
return result;
};
//# sourceMappingURL=utils.js.map