@procraft/widget-order
Version:
Order widget for landing
241 lines • 9.42 kB
JavaScript
;
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