UNPKG

@procraft/widget-order

Version:

Order widget for landing

241 lines 9.42 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.courseKindLabels = exports.courseSubKindLabels = exports.formatFreeLabel = exports.courseSubKindGetGender = exports.formatCourse = exports.formatCourseKind = exports.formatCourseSubKindLabel = exports.formatCourseSubKind = exports.getCourseKindCaseTranslationProvider = exports.getCourseSubKindCaseTranslationProvider = exports.getCaseTranslationProvider = exports.CourseKind = void 0; /* eslint-disable @typescript-eslint/ban-ts-ignore */ const _ = __importStar(require("lodash")); const lodash_1 = require("lodash"); const types_1 = require("../modules/gql/generated/types"); const i18n_1 = require("./i18n"); const LangRussianNoun_1 = require("./LangRussianNoun"); var CourseKind; (function (CourseKind) { CourseKind["Course"] = "Course"; CourseKind["Webinar"] = "Webinar"; CourseKind["Subscription"] = "Subscription"; CourseKind["Abonnement"] = "Abonnement"; })(CourseKind = exports.CourseKind || (exports.CourseKind = {})); function getCaseTranslationProvider(translations, cases) { return (languageCase) => { const casePosition = cases.indexOf(languageCase || i18n_1.LanguageCase.Nominative); if (casePosition >= 0) { return (translations === null || translations === void 0 ? void 0 : translations[casePosition]) || ''; } else { return ''; } }; } exports.getCaseTranslationProvider = getCaseTranslationProvider; function getCourseSubKindCaseTranslationProvider(subKind) { return getCaseTranslationProvider(exports.courseSubKindLabels[subKind], [ i18n_1.LanguageCase.Nominative, i18n_1.LanguageCase.Genitive, i18n_1.LanguageCase.Accusative, i18n_1.LanguageCase.Dative, ]); } exports.getCourseSubKindCaseTranslationProvider = getCourseSubKindCaseTranslationProvider; function getCourseKindCaseTranslationProvider(kind) { return getCaseTranslationProvider(exports.courseKindLabels[kind], [ i18n_1.LanguageCase.Nominative, i18n_1.LanguageCase.Genitive, i18n_1.LanguageCase.Accusative, i18n_1.LanguageCase.Dative, i18n_1.LanguageCase.Instrumental, i18n_1.LanguageCase.Prepositional, ]); } exports.getCourseKindCaseTranslationProvider = getCourseKindCaseTranslationProvider; function formatCourseSubKind(subKind, languageCase) { return getCourseSubKindCaseTranslationProvider(subKind)(languageCase); } exports.formatCourseSubKind = formatCourseSubKind; function formatCourseSubKindLabel(course, languageCase) { if (course.subKind === types_1.CourseSubKind.OTHER) { if (_.isString(course.subKindLabel)) { return course.subKindLabel; } else { return (0, LangRussianNoun_1.langRussianNounGetCase)(course.subKindLabel, languageCase !== null && languageCase !== void 0 ? languageCase : i18n_1.LanguageCase.Nominative); } } else { return getCourseSubKindCaseTranslationProvider(course.subKind)(languageCase); } } exports.formatCourseSubKindLabel = formatCourseSubKindLabel; function formatCourseKind(kind, languageCase) { return getCourseKindCaseTranslationProvider(kind)(languageCase); } exports.formatCourseKind = formatCourseKind; function formatCourse(course) { const label = (() => { const kind = formatCourseSubKindLabel(course) || formatCourseKind(course.kind); if (kind) { return `${kind} "${course.name}"`; } else { return course.name; } })(); return label === null || label === void 0 ? void 0 : label.trim(); } exports.formatCourse = formatCourse; function courseSubKindGetGender(courseSubKindPartial) { var _a, _b; if (courseSubKindPartial.subKind === types_1.CourseSubKind.OTHER) { return (_b = (_a = courseSubKindPartial.subKindLabel) === null || _a === void 0 ? void 0 : _a.gender) !== null && _b !== void 0 ? _b : types_1.LangGender.NEUTER; } const femaleKinds = [types_1.CourseSubKind.SUBSCRIPTION]; if (femaleKinds.includes(courseSubKindPartial.subKind)) { return types_1.LangGender.FEMININE; } else { return types_1.LangGender.MASCULINE; } } exports.courseSubKindGetGender = courseSubKindGetGender; function formatFreeLabel(course) { if (course.subKind == null) { return null; } const gender = courseSubKindGetGender({ subKind: course.subKind, subKindLabel: course.subKindLabel, }); const courseSubKindFormatted = formatCourseSubKindLabel({ subKind: course.subKind, subKindLabel: course.subKindLabel, }); if (gender === types_1.LangGender.NEUTER) { return `${(0, lodash_1.capitalize)(courseSubKindFormatted)} - бесплатно`; } else { const freeWord = (0, i18n_1.formatGenderSpecific)(gender, 'бесплатный', 'бесплатная'); return `${(0, lodash_1.capitalize)(freeWord)} ${courseSubKindFormatted}`; } } exports.formatFreeLabel = formatFreeLabel; exports.courseSubKindLabels = (() => { // eslint-disable-next-line const answer = {}; // именительный, родительный, винительный, дательный answer[types_1.CourseSubKind.COURSE] = ['курс', 'курса', 'курс', 'курсу']; answer[types_1.CourseSubKind.INTENSIVE] = [ 'интенсив', 'интенсива', 'интенсив', 'интенсиву', ]; answer[types_1.CourseSubKind.MARATHON] = [ 'марафон', 'марафона', 'марафон', 'марафону', ]; answer[types_1.CourseSubKind.FACULTY] = [ 'факультет', 'факультета', 'факультет', 'факультету', ]; answer[types_1.CourseSubKind.WEBINAR] = ['вебинар', 'вебинара', 'вебинар', 'вебинару']; answer[types_1.CourseSubKind.MASTERCLASS] = [ 'мастер-класс', 'мастер-класса', 'мастер-класс', 'мастер-классу', ]; answer[types_1.CourseSubKind.FORUM] = ['форум', 'форума', 'форум', 'форуму']; answer[types_1.CourseSubKind.WORKSHOP] = [ 'воркшоп', 'воркшопа', 'воркшоп', 'воркшопу', ]; answer[types_1.CourseSubKind.PRERECORDING] = [ 'предзапись', 'предзаписи', 'предзапись', 'предзаписи', ]; answer[types_1.CourseSubKind.SUBSCRIPTION] = [ 'подписка', 'подписки', 'подписку', 'подписке', ]; answer[types_1.CourseSubKind.CLUB] = ['клуб', 'клуба', 'клуб', 'клубу']; answer[types_1.CourseSubKind.ABONNEMENT] = [ 'абонемент', 'абонемента', 'абонемент', 'абонементу', ]; answer[types_1.CourseSubKind.TRAINING] = [ 'тренинг', 'тренинга', 'тренинг', 'тренингу', ]; answer[types_1.CourseSubKind.OTHER] = ['другое', 'другого', 'другое', 'другому']; return answer; })(); exports.courseKindLabels = (() => { // eslint-disable-next-line const answer = {}; // именительный, родительный, винительный, дательный, Творительный (кем, чем), Предложный (о ком, о чем) answer[CourseKind.Course] = [ 'курс', 'курса', 'курс', 'курсу', 'курсом', 'курсе', ]; answer[CourseKind.Webinar] = [ 'вебинар', 'вебинара', 'вебинар', 'вебинару', 'вебинаром', 'вебинаре', ]; answer[CourseKind.Subscription] = [ 'подписка', 'подписки', 'подписку', 'подписке', 'подпиской', 'подписке', ]; answer[CourseKind.Abonnement] = [ 'абонемент', 'абонемента', 'абонемент', 'абонементу', 'абонементом', 'абонементе', ]; return answer; })(); //# sourceMappingURL=Course.js.map