{"version":3,"file":"chunk.9845.6bc56c1acb75580b2145.4edfad57.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/site/VControllers/Installments/utils/humanize.ts","webpack:///./app/assets/javascripts/core/utils/humanize.ts","webpack:///./app/assets/javascripts/site/VControllers/Installments/App.tsx"],"sourcesContent":["import { formatAmount } from 'core/utils/humanize';\nexport function getInstallmentText(installment, quantity = 1, version = 'short') {\n const { price, paymentsPeriod, paymentsNumber, firstPaymentPrice, regularPrice } = installment;\n switch (paymentsPeriod) {\n case 'half_month':\n const currentRegularPrice = (regularPrice * quantity).toLocaleString().replace(/,/g, ' ');\n const currentFirstPaymentPrice = (firstPaymentPrice * quantity).toLocaleString().replace(/,/g, ' ');\n if (version == 'short') {\n return `${currentRegularPrice} ₽ / ${formatAmount(paymentsNumber, ['платеж', 'платежа', 'платежей'])} раз в 2 недели`;\n }\n return `${currentFirstPaymentPrice} ₽ сегодня, ${formatAmount(paymentsNumber, ['платеж', 'платежа', 'платежей'])} по ${currentRegularPrice} ₽ раз в 2 недели`;\n case 'month':\n const currentPrice = (price * quantity).toLocaleString().replace(/,/g, ' ');\n return `${currentPrice} ₽/мес. на ${formatAmount(paymentsNumber, ['мес.', 'мес.', 'мес.'])}`;\n default:\n throw new Error('Unknown paymentsPeriod');\n }\n}\nexport function getOtherProgramsText(amount) {\n if (amount === 0) {\n return 'Посмотреть';\n }\n const humanizedAmount = formatAmount(amount, ['программа', 'программы', 'программ']);\n return `Еще ${humanizedAmount}`;\n}\n// return `${currentPrice} ₽ / мес. на ${formatAmount(paymentsNumber, ['месяц', 'месяца', 'месяцев'])}`\n","export function formatPrice(price, cents = false) {\n return `${(cents ? price / 100 : price).toLocaleString('ru-RU')} Р`;\n}\nexport function formatAmount(amount, forms = ['день', 'дня', 'дней']) {\n return [amount, pluralize(amount, forms)].join(' ');\n}\nexport function percentFrom(dividend, divider) {\n const res = (dividend / divider * 100);\n return res ? `${res.toFixed(2)}%` : '—';\n}\nexport function truncateString(input, limit) {\n if (input.length <= limit)\n return input;\n return input.slice(0, limit) + '...';\n}\nfunction pluralize(n, [singular, genitiveSingular, genitivePlural]) {\n n = Math.abs(n); // Для обработки отрицательных чисел\n if (n % 10 === 1 && n % 100 !== 11) {\n return singular;\n }\n else if (n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20)) {\n return genitiveSingular;\n }\n else {\n return genitivePlural;\n }\n}\n","import { Component } from 'preact';\nimport Portal from 'preact-portal';\nimport { asyncComponent } from 'core/components/Hoc/asyncComponent';\nimport NoticeService from 'core/services/NoticeService';\nimport { OPERATION_CHANGE_PAYMENT_METHOD } from 'site/VControllers/components/Checkout/operations/form';\nimport h from './cssScope';\nimport { getInstallmentText, getOtherProgramsText } from './utils/humanize';\nconst Modal = asyncComponent(() => import(\n/* webpackChunkName: \"site_c-TotalBlockInstallmentsModal\" */\n'./components/Modal'), 'Modal');\nexport class App extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n isModalOpen: false,\n loading: true,\n installmentChanged: false,\n selectedQuantity: 1,\n cartTotalPrice: 0,\n paymentMethod: 'online',\n invalidInstallment: null\n };\n this.handleLoading = async () => {\n const { default: checkoutContext } = await import(\n /* webpackChunkName: 'common__c-checkoutContext' */\n 'site/VControllers/components/Checkout/context');\n this.checkoutContext = checkoutContext;\n await this.checkoutContext.init();\n if (this.props.data) {\n this.checkoutContextUuid = await this.checkoutContext.subscribe(this.handleUpdate);\n this.handleUpdate();\n }\n this.setState({\n loading: false,\n cartTotalPrice: this.cartTotalPrice,\n paymentMethod: this.currentPaymentMethod\n });\n };\n this.handleUpdate = () => {\n const productInCart = this.getProductInCart;\n const select = document.getElementById('quantity');\n if (!productInCart) {\n select.addEventListener('change', this.handleSelectQuantityChange);\n this.setState({\n cartTotalPrice: this.cartTotalPrice,\n paymentMethod: this.currentPaymentMethod\n });\n return;\n }\n select.value = productInCart.quantity.toString();\n this.setState({\n selectedQuantity: productInCart.quantity,\n cartTotalPrice: this.cartTotalPrice,\n paymentMethod: this.currentPaymentMethod\n });\n setTimeout(() => {\n if (!this.state.loading)\n this.checkPaymentMethod();\n }, 300);\n };\n this.checkPaymentMethod = async () => {\n if (this.isOpenedCartForm)\n return null;\n this.notifyChangedInstallment();\n const { paymentMethod } = this.state;\n const validData = this.validData;\n const cartPaymentMethod = this.cartPaymentMethod;\n if (!validData.length &&\n cartPaymentMethod &&\n cartPaymentMethod.value.toString().includes('installment')) {\n this.resetPaymentMethod();\n return;\n }\n else if (!validData.length)\n return;\n const installment = validData.find((installmentData) => installmentData.paymentMethod === paymentMethod);\n if (installment)\n return;\n this.resetPaymentMethod();\n };\n this.notifyChangedInstallment = () => {\n if (!this.state.installmentChanged)\n return;\n const cartPaymentMethod = this.cartPaymentMethod.value.toString();\n const installment = this.props.data.find((inst) => inst.paymentMethod === cartPaymentMethod);\n if (!installment)\n return;\n NoticeService.clear();\n const type = installment.bankProduct ? 'рассрочку' : 'оплату частями';\n NoticeService.info(`Способ оплаты изменен на ${type} от ${installment.name}`);\n this.setState({ installmentChanged: false });\n };\n this.resetPaymentMethod = () => {\n const { paymentMethod } = this.state;\n const { data } = this.props;\n const chosenInstallment = data.find((installmentData) => installmentData.paymentMethod === paymentMethod);\n if (!chosenInstallment)\n return null;\n this.setState({ loading: true });\n try {\n this.checkoutContext\n .getContext()\n .store.operate(OPERATION_CHANGE_PAYMENT_METHOD, 'online')\n .then(() => {\n setTimeout(() => {\n NoticeService.clear();\n this.setState({ invalidInstallment: chosenInstallment });\n }, 300);\n });\n }\n finally {\n this.setState({ loading: false, paymentMethod: data[0].paymentMethod });\n }\n };\n this.handleSelectQuantityChange = (e) => {\n const target = e.target;\n const value = target.value;\n this.setState({\n selectedQuantity: Number(value),\n cartTotalPrice: this.cartTotalPrice,\n paymentMethod: this.currentPaymentMethod,\n invalidInstallment: null,\n isModalOpen: false\n });\n };\n this.handleOpenModal = () => this.setState({ isModalOpen: true });\n this.handleCloseModal = () => this.setState({\n isModalOpen: false,\n cartTotalPrice: this.cartTotalPrice,\n invalidInstallment: null\n });\n this.onChangeInstallment = () => this.setState({ installmentChanged: true, invalidInstallment: null });\n this.buildModal = () => {\n const { selectedQuantity, paymentMethod, invalidInstallment } = this.state;\n const installmentsData = this.validData;\n const checkInvalid = installmentsData.find((inst) => inst === invalidInstallment);\n if (checkInvalid)\n return;\n return (h(Portal, { into: 'body' },\n h(Modal, { data: installmentsData, quantity: selectedQuantity, productId: this.props.productId, paymentMethod: paymentMethod, checkoutContext: this.checkoutContext, onClose: this.handleCloseModal, onChangeInstallment: this.onChangeInstallment, invalidInstallment: this.state.invalidInstallment })));\n };\n }\n componentWillMount() {\n this.handleLoading();\n }\n get validData() {\n const { productPrice } = this.props;\n const { selectedQuantity, cartTotalPrice } = this.state;\n const currentProductPrice = productPrice * selectedQuantity;\n const cartTotalPriceWithProduct = this.state.invalidInstallment\n ? cartTotalPrice\n : cartTotalPrice + currentProductPrice;\n const resultPrice = this.getProductInCart ? cartTotalPrice : cartTotalPriceWithProduct;\n return this.props.data.filter((installment) => resultPrice >= installment.limitMin && resultPrice <= installment.limitMax);\n }\n get getProductInCart() {\n return this.checkoutContext\n .getContext()\n .store.getState()\n .items.find((item) => item.productId === this.props.productId);\n }\n get isNotRendered() {\n return !document.getElementsByClassName('b-FrameModal').length;\n }\n get isOpenedCartForm() {\n return !!document.getElementsByClassName('s-Checkout __fullScreen').length;\n }\n get cartPaymentMethod() {\n return this.checkoutContext\n .getContext()\n .store.getState()\n .formFields.find((field) => field.key === 'payment_method');\n }\n get currentPaymentMethod() {\n const validInsallment = this.validData[0];\n const defaultPaymentMethod = validInsallment ? validInsallment.paymentMethod : 'online';\n const paymentMethod = this.cartPaymentMethod\n ? this.cartPaymentMethod.value.toString()\n : defaultPaymentMethod;\n return paymentMethod.includes('installment') ? paymentMethod : defaultPaymentMethod;\n }\n get cartTotalPrice() {\n return this.checkoutContext.getContext().store.getState().totalPriceInfo.totalPrice;\n }\n getInstallment(paymentMethod) {\n const data = this.validData;\n const installment = data.find((installmentData) => installmentData.paymentMethod === paymentMethod);\n return installment ? installment : data[0];\n }\n render() {\n const { loading, isModalOpen, invalidInstallment } = this.state;\n const { data, version } = this.props;\n if (loading || !data.length)\n return null;\n if (!this.validData.length) {\n return (h(\"div\", { className: 'sb-Content' }, isModalOpen && this.isNotRendered && invalidInstallment && this.buildModal()));\n }\n if (version === 'glass') {\n return (h(\"div\", { className: 'sb-Content', style: { padding: '0 5px' } },\n h(\"div\", { className: 'sb-Separator' }),\n h(\"div\", { className: 'sb-Wrapper' },\n h(\"div\", { style: { fontWeight: '700', fontSize: '12px' } }, getInstallmentText(this.getInstallment(this.state.paymentMethod), this.state.selectedQuantity)),\n h(\"p\", { className: 'sb-Link', style: { fontSize: '12px' } }, \"0% \\u043F\\u0435\\u0440\\u0435\\u043F\\u043B\\u0430\\u0442. \\u0412\\u0441\\u0451 \\u043F\\u0440\\u043E\\u0441\\u0442\\u043E.\")),\n h(\"div\", { className: 'sb-HyperLink', style: { textDecoration: 'underline', fontSize: '12px', textUnderlineOffset: '3px' }, onClick: this.handleOpenModal },\n h(\"p\", null, \"\\u0423\\u0437\\u043D\\u0430\\u0442\\u044C \\u043F\\u043E\\u0434\\u0440\\u043E\\u0431\\u043D\\u043E\\u0441\\u0442\\u0438\")),\n isModalOpen && this.isNotRendered && this.buildModal()));\n }\n else {\n return (h(\"div\", { className: 'sb-Content' },\n h(\"div\", { className: 'sb-Separator' }, \" \\u0418\\u041B\\u0418 \"),\n h(\"div\", { className: 'sb-Wrapper' },\n h(\"div\", null, getInstallmentText(this.getInstallment(this.state.paymentMethod), this.state.selectedQuantity)),\n h(\"a\", { href: '#', className: 'sb-Link', onClick: this.handleOpenModal }, getOtherProgramsText(this.validData.length - 1))),\n h(\"div\", { className: 'sb-HyperLink' },\n h(\"a\", { href: '/pages/payment_info#installment', target: '_blank', rel: 'nofollow' }, \"\\u041F\\u043E\\u0434\\u0440\\u043E\\u0431\\u043D\\u0435\\u0435 \\u043E\\u0431 \\u0443\\u0441\\u043B\\u043E\\u0432\\u0438\\u044F\\u0445\")),\n isModalOpen && this.isNotRendered && this.buildModal()));\n }\n }\n}\n"],"names":["getInstallmentText","installment","quantity","arguments","length","undefined","version","price","paymentsPeriod","paymentsNumber","firstPaymentPrice","regularPrice","currentRegularPrice","toLocaleString","replace","currentFirstPaymentPrice","concat","formatAmount","currentPrice","Error","getOtherProgramsText","amount","humanizedAmount","formatPrice","n","_ref","_ref2","singular","genitiveSingular","genitivePlural","Math","abs","join","Modal","asyncComponent","App","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","apply","state","isModalOpen","loading","installmentChanged","selectedQuantity","cartTotalPrice","paymentMethod","invalidInstallment","handleLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_yield$import","checkoutContext","_context","prev","next","sent","init","props","data","subscribe","handleUpdate","checkoutContextUuid","setState","currentPaymentMethod","stop","productInCart","getProductInCart","select","document","getElementById","addEventListener","handleSelectQuantityChange","value","toString","setTimeout","checkPaymentMethod","_callee2","validData","cartPaymentMethod","_context2","isOpenedCartForm","abrupt","notifyChangedInstallment","includes","resetPaymentMethod","find","installmentData","inst","NoticeService","clear","type","bankProduct","info","name","chosenInstallment","getContext","store","operate","OPERATION_CHANGE_PAYMENT_METHOD","then","e","target","Number","handleOpenModal","handleCloseModal","onChangeInstallment","buildModal","_this$state","installmentsData","h","Portal","into","productId","onClose","key","this","_this$state2","_this$props","className","style","padding","fontWeight","fontSize","getInstallment","textDecoration","textUnderlineOffset","onClick","isNotRendered","href","rel","get","productPrice","_this$state3","currentProductPrice","cartTotalPriceWithProduct","resultPrice","filter","limitMin","limitMax","_this2","getState","items","item","getElementsByClassName","formFields","field","validInsallment","defaultPaymentMethod","totalPriceInfo","totalPrice","Component"],"sourceRoot":""}