@ozen-ui/kit
Version:
React component library
51 lines (50 loc) • 3.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Calendar = void 0;
var tslib_1 = require("tslib");
require("./Calendar.css");
var react_1 = tslib_1.__importStar(require("react"));
var logger_1 = require("@ozen-ui/logger");
var useDevEffect_1 = require("../../hooks/useDevEffect");
var useThemeProps_1 = require("../../hooks/useThemeProps");
var getByMap_1 = require("../../utils/getByMap");
var components_1 = require("./components");
var constants_1 = require("./constants");
var utils_1 = require("./utils");
var typeMap = {
range: components_1.CalendarModeRange,
single: components_1.CalendarModeSingle,
};
exports.Calendar = (0, react_1.forwardRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'Calendar',
});
var _a = props.size, size = _a === void 0 ? constants_1.CALENDAR_DEFAULT_SIZE : _a, _b = props.mode, mode = _b === void 0 ? constants_1.CALENDAR_DEFAULT_MODE : _b, _c = props.startDay, startDay = _c === void 0 ? constants_1.CALENDAR_DEFAULT_START_DAY : _c, _d = props.calendars, calendars = _d === void 0 ? constants_1.CALENDAR_DEFAULT_CALENDARS : _d, getPeriodSwitchAriaLabelProp = props.getPeriodSwitchAriaLabel, stepsProp = props.steps, initialStepProp = props.initialStep, other = tslib_1.__rest(props, ["size", "mode", "startDay", "calendars", "getPeriodSwitchAriaLabel", "steps", "initialStep"]);
var initialStep = (function () {
if (initialStepProp) {
return initialStepProp;
}
if (stepsProp !== undefined && initialStepProp === undefined) {
return stepsProp[0];
}
return constants_1.CALENDAR_DEFAULT_INITIAL_STEP;
})();
var steps = stepsProp !== null && stepsProp !== void 0 ? stepsProp : constants_1.CALENDAR_DEFAULT_STEPS;
var getPeriodSwitchAriaLabel = getPeriodSwitchAriaLabelProp || utils_1.getPeriodSwitchAriaLabel;
var Component = (0, getByMap_1.getByMap)(typeMap, mode);
(0, useDevEffect_1.useDevEffect)(function () {
if (steps.length === 0) {
logger_1.logger.error('steps не может быть пустым массивом.');
return;
}
if (!steps.includes(initialStep)) {
logger_1.logger.error("initialStep \"".concat(initialStep, "\" \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 steps [").concat(steps.map(function (step) { return "\"".concat(step, "\""); }).join(', '), "]."));
}
if (steps.length !== new Set(steps).size) {
logger_1.logger.error("\u0412 steps [".concat(steps.map(function (step) { return "\"".concat(step, "\""); }).join(', '), "] \u0435\u0441\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u0448\u0430\u0433\u0438, \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435."));
}
}, [steps, initialStep]);
return (react_1.default.createElement(Component, tslib_1.__assign({ size: size, startDay: startDay, calendars: calendars, getPeriodSwitchAriaLabel: getPeriodSwitchAriaLabel, steps: steps, initialStep: initialStep }, other, { ref: ref })));
});
exports.Calendar.displayName = 'Calendar';