@taiga-ui/kit
Version:
Taiga UI Angular main components kit
26 lines • 4.74 kB
JavaScript
import { TUI_FIRST_DAY, TUI_LAST_DAY, TuiDay, TuiDayRange } from '@taiga-ui/cdk/date-time';
export const TUI_DAY_CAPS_MAPPER = (current, value, maxLength, backwards) => {
if (
// TODO(v5): replace with `if (!(value instanceof TuiDay) || !maxLength)` (backward compatibility)
(value instanceof TuiDayRange && !value.isSingleDay) ||
!value ||
!maxLength) {
return backwards ? current || TUI_FIRST_DAY : current || TUI_LAST_DAY;
}
const negativeMaxLength = Object.fromEntries(Object.entries(maxLength).map(([key, value]) => [key, -value]));
// TODO(v5): `value instanceof TuiDay` always `true`
const from = value instanceof TuiDay ? value : value.from;
const dateShift = from
.append(backwards ? negativeMaxLength : maxLength)
.append({ day: !backwards ? -1 : 1 });
if (backwards) {
return dateShift.dayBefore(current || TUI_FIRST_DAY)
? current || TUI_FIRST_DAY
: dateShift;
}
if (!current) {
return dateShift;
}
return dateShift.dayAfter(current) ? current : dateShift;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWNhcHMtbWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY2FsZW5kYXItcmFuZ2UvZGF5LWNhcHMtbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUd6RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FHNUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRTtJQUN6QztJQUNJLGtHQUFrRztJQUNsRyxDQUFDLEtBQUssWUFBWSxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3BELENBQUMsS0FBSztRQUNOLENBQUMsU0FBUyxFQUNaO1FBQ0UsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUM7S0FDekU7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDakUsQ0FBQztJQUVGLG9EQUFvRDtJQUNwRCxNQUFNLElBQUksR0FBRyxLQUFLLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSTtTQUNqQixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ2pELE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7SUFFeEMsSUFBSSxTQUFTLEVBQUU7UUFDWCxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQztZQUNoRCxDQUFDLENBQUMsT0FBTyxJQUFJLGFBQWE7WUFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUNuQjtJQUVELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPLFNBQVMsQ0FBQztLQUNwQjtJQUVELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDN0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1R1aURheUxpa2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VFVJX0ZJUlNUX0RBWSwgVFVJX0xBU1RfREFZLCBUdWlEYXksIFR1aURheVJhbmdlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RhdGUtdGltZSc7XG5pbXBvcnQgdHlwZSB7VHVpTWFwcGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9EQVlfQ0FQU19NQVBQRVI6IFR1aU1hcHBlcjxcbiAgICBbVHVpRGF5IHwgbnVsbCwgVHVpRGF5IHwgVHVpRGF5UmFuZ2UgfCBudWxsLCBUdWlEYXlMaWtlIHwgbnVsbCwgYm9vbGVhbl0sXG4gICAgVHVpRGF5XG4+ID0gKGN1cnJlbnQsIHZhbHVlLCBtYXhMZW5ndGgsIGJhY2t3YXJkcykgPT4ge1xuICAgIGlmIChcbiAgICAgICAgLy8gVE9ETyh2NSk6IHJlcGxhY2Ugd2l0aCBgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBUdWlEYXkpIHx8ICFtYXhMZW5ndGgpYCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSlcbiAgICAgICAgKHZhbHVlIGluc3RhbmNlb2YgVHVpRGF5UmFuZ2UgJiYgIXZhbHVlLmlzU2luZ2xlRGF5KSB8fFxuICAgICAgICAhdmFsdWUgfHxcbiAgICAgICAgIW1heExlbmd0aFxuICAgICkge1xuICAgICAgICByZXR1cm4gYmFja3dhcmRzID8gY3VycmVudCB8fCBUVUlfRklSU1RfREFZIDogY3VycmVudCB8fCBUVUlfTEFTVF9EQVk7XG4gICAgfVxuXG4gICAgY29uc3QgbmVnYXRpdmVNYXhMZW5ndGggPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKG1heExlbmd0aCkubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksIC12YWx1ZV0pLFxuICAgICk7XG5cbiAgICAvLyBUT0RPKHY1KTogYHZhbHVlIGluc3RhbmNlb2YgVHVpRGF5YCBhbHdheXMgYHRydWVgXG4gICAgY29uc3QgZnJvbSA9IHZhbHVlIGluc3RhbmNlb2YgVHVpRGF5ID8gdmFsdWUgOiB2YWx1ZS5mcm9tO1xuICAgIGNvbnN0IGRhdGVTaGlmdCA9IGZyb21cbiAgICAgICAgLmFwcGVuZChiYWNrd2FyZHMgPyBuZWdhdGl2ZU1heExlbmd0aCA6IG1heExlbmd0aClcbiAgICAgICAgLmFwcGVuZCh7ZGF5OiAhYmFja3dhcmRzID8gLTEgOiAxfSk7XG5cbiAgICBpZiAoYmFja3dhcmRzKSB7XG4gICAgICAgIHJldHVybiBkYXRlU2hpZnQuZGF5QmVmb3JlKGN1cnJlbnQgfHwgVFVJX0ZJUlNUX0RBWSlcbiAgICAgICAgICAgID8gY3VycmVudCB8fCBUVUlfRklSU1RfREFZXG4gICAgICAgICAgICA6IGRhdGVTaGlmdDtcbiAgICB9XG5cbiAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGVTaGlmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZVNoaWZ0LmRheUFmdGVyKGN1cnJlbnQpID8gY3VycmVudCA6IGRhdGVTaGlmdDtcbn07XG4iXX0=