UNPKG

@ozen-ui/kit

Version:

React component library

51 lines (50 loc) 3.34 kB
"use strict"; 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';