@redneckz/wildless-cms-uni-blocks 0.2.79 → 0.2.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/ProjectSettings.d.ts +1 -0
  2. package/dist/ProjectSettings.js.map +1 -1
  3. package/dist/components/CreditCalculator/CreditCalculator.d.ts +2 -1
  4. package/dist/components/CreditCalculator/CreditCalculator.js +39 -15
  5. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  6. package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
  7. package/dist/components/CreditCalculator/CreditCalculatorContent.js +2 -0
  8. package/dist/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
  9. package/dist/components/CreditCalculator/constants.d.ts +7 -0
  10. package/dist/components/CreditCalculator/constants.js +10 -0
  11. package/dist/components/CreditCalculator/constants.js.map +1 -0
  12. package/dist/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
  13. package/dist/components/CreditCalculator/getCalculatorParams.js +11 -0
  14. package/dist/components/CreditCalculator/getCalculatorParams.js.map +1 -0
  15. package/dist/components/CreditCalculator/getCreditRate.d.ts +7 -0
  16. package/dist/components/CreditCalculator/getCreditRate.js +13 -0
  17. package/dist/components/CreditCalculator/getCreditRate.js.map +1 -0
  18. package/dist/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
  19. package/dist/components/CreditCalculator/getCreditTermYears.js +15 -0
  20. package/dist/components/CreditCalculator/getCreditTermYears.js.map +1 -0
  21. package/dist/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
  22. package/dist/components/CreditCalculator/getMonthlyPayment.js +19 -0
  23. package/dist/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
  24. package/dist/hooks/useCreditCalculatorData.d.ts +3 -0
  25. package/dist/hooks/useCreditCalculatorData.js +15 -0
  26. package/dist/hooks/useCreditCalculatorData.js.map +1 -0
  27. package/dist/ui-kit/InputRange/InputRange.js +3 -2
  28. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  29. package/dist/utils/addSpacesBetweenNumbers.d.ts +1 -0
  30. package/dist/utils/addSpacesBetweenNumbers.js +5 -0
  31. package/dist/utils/addSpacesBetweenNumbers.js.map +1 -0
  32. package/lib/ProjectSettings.d.ts +1 -0
  33. package/lib/ProjectSettings.js.map +1 -1
  34. package/lib/common.css +1 -1
  35. package/lib/components/Accordion/Accordion.fixture.d.ts +4 -0
  36. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -0
  37. package/lib/components/ComparisonTable/ComparisonTable.fixture.d.ts +8 -0
  38. package/lib/components/ContentPage/ContentPage.fixture.d.ts +6 -0
  39. package/lib/components/CreditCalculator/CreditCalculator.d.ts +2 -1
  40. package/lib/components/CreditCalculator/CreditCalculator.fixture.d.ts +2 -0
  41. package/lib/components/CreditCalculator/CreditCalculator.js +39 -15
  42. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  43. package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +15 -0
  44. package/lib/components/CreditCalculator/CreditCalculatorContent.js +2 -0
  45. package/lib/components/CreditCalculator/CreditCalculatorContent.js.map +1 -0
  46. package/lib/components/CreditCalculator/constants.d.ts +7 -0
  47. package/lib/components/CreditCalculator/constants.js +8 -0
  48. package/lib/components/CreditCalculator/constants.js.map +1 -0
  49. package/lib/components/CreditCalculator/getCalculatorParams.d.ts +7 -0
  50. package/lib/components/CreditCalculator/getCalculatorParams.js +8 -0
  51. package/lib/components/CreditCalculator/getCalculatorParams.js.map +1 -0
  52. package/lib/components/CreditCalculator/getCreditRate.d.ts +7 -0
  53. package/lib/components/CreditCalculator/getCreditRate.js +10 -0
  54. package/lib/components/CreditCalculator/getCreditRate.js.map +1 -0
  55. package/lib/components/CreditCalculator/getCreditTermYears.d.ts +1 -0
  56. package/lib/components/CreditCalculator/getCreditTermYears.js +12 -0
  57. package/lib/components/CreditCalculator/getCreditTermYears.js.map +1 -0
  58. package/lib/components/CreditCalculator/getMonthlyPayment.d.ts +11 -0
  59. package/lib/components/CreditCalculator/getMonthlyPayment.js +16 -0
  60. package/lib/components/CreditCalculator/getMonthlyPayment.js.map +1 -0
  61. package/lib/components/ExchangeRateTile/ExchangeRateTile.fixture.d.ts +4 -0
  62. package/lib/components/Footer/Footer.fixture.d.ts +2 -0
  63. package/lib/components/Gallery/Gallery.fixture.d.ts +9 -0
  64. package/lib/components/Header/Header.fixture.d.ts +2 -0
  65. package/lib/components/LikeControl/LikeControl.fixture.d.ts +2 -0
  66. package/lib/components/MiniGallery/MiniGallery.fixture.d.ts +5 -0
  67. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +4 -0
  68. package/lib/components/Placeholder/Placeholder.fixture.d.ts +2 -0
  69. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +5 -0
  70. package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +2 -0
  71. package/lib/components/ProductTile/ProductTile.fixture.d.ts +7 -0
  72. package/lib/components/PromoTile/PromoTile.fixture.d.ts +4 -0
  73. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +2 -0
  74. package/lib/components/TextBlock/TextBlock.fixture.d.ts +2 -0
  75. package/lib/components/Tile/Tile.fixture.d.ts +8 -0
  76. package/lib/cosmos.decorator.d.ts +4 -0
  77. package/lib/hooks/useCreditCalculatorData.d.ts +3 -0
  78. package/lib/hooks/useCreditCalculatorData.js +12 -0
  79. package/lib/hooks/useCreditCalculatorData.js.map +1 -0
  80. package/lib/setup-fixture.d.ts +3 -0
  81. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +3 -0
  82. package/lib/ui-kit/Button/Button.fixture.d.ts +13 -0
  83. package/lib/ui-kit/Button/LikeButton.fixture.d.ts +5 -0
  84. package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +6 -0
  85. package/lib/ui-kit/Icon/Icon.fixture.d.ts +5 -0
  86. package/lib/ui-kit/InputRange/InputRange.js +3 -2
  87. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  88. package/lib/ui-kit/Logo/Logo.fixture.d.ts +3 -0
  89. package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +6 -0
  90. package/lib/utils/addSpacesBetweenNumbers.d.ts +1 -0
  91. package/lib/utils/addSpacesBetweenNumbers.js +2 -0
  92. package/lib/utils/addSpacesBetweenNumbers.js.map +1 -0
  93. package/package.json +3 -2
  94. package/src/ProjectSettings.ts +1 -0
  95. package/src/components/CreditCalculator/CreditCalculator.fixture.tsx +1 -1
  96. package/src/components/CreditCalculator/CreditCalculator.tsx +134 -85
  97. package/src/components/CreditCalculator/CreditCalculatorContent.ts +17 -0
  98. package/src/components/CreditCalculator/constants.ts +8 -0
  99. package/src/components/CreditCalculator/getCalculatorParams.ts +16 -0
  100. package/src/components/CreditCalculator/getCreditRate.ts +18 -0
  101. package/src/components/CreditCalculator/getCreditTermYears.spec.ts +10 -0
  102. package/src/components/CreditCalculator/getCreditTermYears.ts +15 -0
  103. package/src/components/CreditCalculator/getMonthlyPayment.ts +32 -0
  104. package/src/hooks/useCreditCalculatorData.ts +23 -0
  105. package/src/ui-kit/InputRange/InputRange.tsx +3 -2
  106. package/src/utils/addSpacesBetweenNumbers.ts +2 -0
@@ -1,27 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
+ import { useCreditCalculatorData } from '../../hooks/useCreditCalculatorData.js';
3
4
  import { Button } from '../../ui-kit/Button/Button.js';
4
5
  import { Checkbox } from '../../ui-kit/Checkbox/Checkbox.js';
5
6
  import { InputRange } from '../../ui-kit/InputRange/InputRange.js';
7
+ import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers.js';
6
8
  import { clamp } from '../../utils/clamp.js';
7
- const borderStyle = 'border-solid border-3 border-primary-main rounded-md';
8
- const MIN_MONEY = 50000;
9
- const MAX_MONEY = 3000000;
9
+ import { DEFAULT_MAX_MONTHS, DEFAULT_MIN_MONTHS, DEFAULT_MONTHS, DEFAULT_SUM, MONTHS_IN_YEAR, } from './constants.js';
10
+ import { getCalculatorParams } from './getCalculatorParams.js';
11
+ import { getCreditRate } from './getCreditRate.js';
12
+ import { getCreditTermYears } from './getCreditTermYears.js';
13
+ import { getMonthlyPayment } from './getMonthlyPayment.js';
10
14
  const STEP_MONEY = 1000;
11
- const CREDIT_TERM_YEARS = [2, 3, 4, 5, 6, 7];
12
- const MIN_MONTHS = 1;
13
- const MAX_MONTHS = 84;
14
15
  const STEP_MONTHS = 1;
15
- const MONTHS_IN_YEAR = 12;
16
- export const CreditCalculator = JSX(({ context, className }) => {
17
- const [moneyValue, setMoneyValue] = context.useState(350000);
18
- const [monthsValue, setMonthsValue] = context.useState(12);
16
+ const DEFAULT_PAYMENT_TYPE = 'annuity';
17
+ const borderStyle = 'border-solid border-3 border-primary-main rounded-md';
18
+ export const CreditCalculator = JSX(({ context, className, directoryName }) => {
19
+ const [moneyValue, setMoneyValue] = context.useState(undefined);
20
+ const [monthsValue, setMonthsValue] = context.useState(undefined);
19
21
  const [isAnnuityChecked, setIsAnnuityChecked] = context.useState(true);
20
22
  const [isInsuranceChecked, setIsInsuranceChecked] = context.useState(true);
21
- const handleButtonClick = (value) => {
22
- setMonthsValue(clamp(value * MONTHS_IN_YEAR, MIN_MONTHS, MAX_MONTHS));
23
- };
24
- return (_jsx("section", { className: `font-sans text-primary-text bg-white p-4 ${className}`, children: _jsxs("div", { className: `box-border p-12 flex flex-col justify-between ${borderStyle}`, children: [_jsxs("div", { className: "flex justify-between", children: [_jsxs("div", { className: "grow mr-11", children: [_jsx(InputRange, { title: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD", items: ['От 50 000 рублей', 'До 3 000 000 рублей'], min: MIN_MONEY, max: MAX_MONEY, step: STEP_MONEY, value: moneyValue, onChange: setMoneyValue }), _jsx(InputRange, { title: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ['Или выберите из предложенных вариантов ниже'], min: MIN_MONTHS, max: MAX_MONTHS, step: STEP_MONTHS, value: monthsValue, onChange: setMonthsValue }), _jsx("div", { className: "flex mb-7", children: CREDIT_TERM_YEARS.map((number, i) => renderButton(number, i, handleButtonClick)) }), _jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", checked: isAnnuityChecked, onChange: setIsAnnuityChecked }), _jsx(Checkbox, { className: "mb-4", text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", checked: isInsuranceChecked, onChange: setIsInsuranceChecked })] }), _jsxs("div", { className: "p-9 bg-primary-main rounded-md text-white", children: [_jsx("div", { className: "text-base mb-5", children: "\u041D\u0430\u0448\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0451\u0436" }), _jsx("div", { className: "text-lg mb-3", children: "26 827 \u20BD" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), _jsx("div", { className: "text-lg", children: "16,9 %" })] })] }), _jsxs("div", { className: "flex items-center", children: [_jsx(Button, { className: "mr-3", text: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u044F\u0432\u043A\u0443", version: "primary", href: "#" }), _jsx("div", { className: "w-80 text-xxs leading-4 text-secondary-text", "aria-label": "\u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0424\u0417\u00A0\u00AB\u041E\u00A0\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB" })] })] }) }));
23
+ const tableRows = useCreditCalculatorData(context.useAsyncData, directoryName).rows;
24
+ const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isAnnuityChecked });
25
+ const defaultSum = calculatorParams.maxSum && calculatorParams.minSum
26
+ ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
27
+ : DEFAULT_SUM;
28
+ const defaultMonths = calculatorParams.maxMonths && calculatorParams.minMonths
29
+ ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
30
+ : DEFAULT_MONTHS;
31
+ const rate = getCreditRate({ calculatorParams, isInsurance: isInsuranceChecked });
32
+ const montlyPayment = getMonthlyPayment({
33
+ calculatorParams,
34
+ paymentType: DEFAULT_PAYMENT_TYPE,
35
+ rate,
36
+ sum: moneyValue || defaultSum,
37
+ months: monthsValue || defaultMonths,
38
+ });
39
+ const creditTermYears = getCreditTermYears(calculatorParams.minMonths || DEFAULT_MIN_MONTHS, calculatorParams.maxMonths || DEFAULT_MAX_MONTHS);
40
+ function handleButtonClick(value) {
41
+ setMonthsValue(clamp(value * MONTHS_IN_YEAR, calculatorParams?.minMonths || DEFAULT_MIN_MONTHS, calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS));
42
+ }
43
+ return (_jsx("section", { className: `font-sans text-primary-text bg-white p-4 ${className}`, children: _jsxs("div", { className: `box-border p-12 flex flex-col justify-between ${borderStyle}`, children: [_jsxs("div", { className: "flex justify-between", children: [_jsxs("div", { className: "grow mr-11", children: [_jsx(InputRange, { title: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD", items: [
44
+ `От ${addSpacesBetweenNumbers(Number(calculatorParams.minSum))} рублей`,
45
+ `До ${addSpacesBetweenNumbers(Number(calculatorParams.maxSum))} рублей`,
46
+ ], min: calculatorParams?.minSum, max: calculatorParams?.maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }), _jsx(InputRange, { title: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ['Или выберите из предложенных вариантов ниже'], min: calculatorParams?.minMonths, max: calculatorParams?.maxMonths, step: STEP_MONTHS, value: monthsValue || defaultMonths, onChange: setMonthsValue }), _jsx("div", { className: "flex mb-7", children: creditTermYears.map((number, i) => renderButton(number, i, handleButtonClick)) }), _jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", checked: isAnnuityChecked, onChange: setIsAnnuityChecked }), _jsx(Checkbox, { className: "mb-4", text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", checked: isInsuranceChecked, onChange: setIsInsuranceChecked })] }), _jsxs("div", { className: "p-9 bg-primary-main rounded-md text-white", children: [_jsx("div", { className: "text-base mb-5", children: "\u041D\u0430\u0448\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }), _jsx("div", { className: "text-sm opacity-60", children: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0451\u0436" }), _jsxs("div", { className: "text-lg mb-3", children: [addSpacesBetweenNumbers(Math.round(montlyPayment)), " \u20BD"] }), _jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), _jsxs("div", { className: "text-lg", children: [rate, " %"] })] })] }), _jsxs("div", { className: "flex items-center", children: [_jsx(Button, { className: "mr-3", text: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u044F\u0432\u043A\u0443", version: "primary", href: "#" }), _jsx("div", { className: "w-80 text-xxs leading-4 text-secondary-text", "aria-label": "\u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0424\u0417\u00A0\u00AB\u041E\u00A0\u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB" })] })] }) }));
25
47
  });
26
- const renderButton = (number, i, handleClick) => (_jsx("div", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer", role: "button", onClick: () => handleClick(number), children: _jsxs("span", { className: "font-medium text-sm", children: [number, " ", number > 4 ? 'лет' : 'года'] }) }, String(i)));
48
+ function renderButton(number, i, handleClick) {
49
+ return (_jsx("button", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer border-none", onClick: () => handleClick(number), children: _jsxs("span", { className: "font-semibold text-sm", children: [number, " ", number === 1 ? 'год' : number > 4 ? 'лет' : 'года'] }) }, String(i)));
50
+ }
27
51
  //# sourceMappingURL=CreditCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreditCalculator.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreditCalculator.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface CalculatorParams {
2
+ isAnnuity?: boolean;
3
+ minSum?: number;
4
+ maxSum?: number;
5
+ minMonths?: number;
6
+ maxMonths?: number;
7
+ rateWithInsurance?: number;
8
+ rateWithoutInsurance?: number;
9
+ }
10
+ export interface CreditCalculatorData {
11
+ rows?: CalculatorParams[];
12
+ }
13
+ export interface CreditCalculatorContent {
14
+ directoryName?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CreditCalculatorContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreditCalculatorContent.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/CreditCalculatorContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_MIN_SUM = 30000;
2
+ export declare const DEFAULT_MAX_SUM = 3000000;
3
+ export declare const DEFAULT_SUM: number;
4
+ export declare const DEFAULT_MIN_MONTHS = 1;
5
+ export declare const DEFAULT_MAX_MONTHS = 84;
6
+ export declare const DEFAULT_MONTHS: number;
7
+ export declare const MONTHS_IN_YEAR = 12;
@@ -0,0 +1,8 @@
1
+ export const DEFAULT_MIN_SUM = 30000;
2
+ export const DEFAULT_MAX_SUM = 3000000;
3
+ export const DEFAULT_SUM = (DEFAULT_MAX_SUM - DEFAULT_MIN_SUM) / 2;
4
+ export const DEFAULT_MIN_MONTHS = 1;
5
+ export const DEFAULT_MAX_MONTHS = 84;
6
+ export const DEFAULT_MONTHS = Math.round((DEFAULT_MAX_MONTHS - DEFAULT_MIN_MONTHS) / 2);
7
+ export const MONTHS_IN_YEAR = 12;
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ interface GetCalculatorParamsParams {
3
+ tableRows?: CalculatorParams[];
4
+ isAnnuity?: boolean;
5
+ }
6
+ export declare const getCalculatorParams: (params: GetCalculatorParamsParams) => CalculatorParams;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ export const getCalculatorParams = (params) => {
2
+ const { tableRows, isAnnuity = false } = params;
3
+ if (!tableRows)
4
+ return {};
5
+ const calculatorParams = tableRows.find((row) => row.isAnnuity === isAnnuity);
6
+ return calculatorParams || {};
7
+ };
8
+ //# sourceMappingURL=getCalculatorParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCalculatorParams.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCalculatorParams.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAiC,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC;IAEhD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAE9E,OAAO,gBAAgB,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ interface GetCreditRateParams {
3
+ calculatorParams?: CalculatorParams;
4
+ isInsurance: boolean;
5
+ }
6
+ export declare const getCreditRate: (params: GetCreditRateParams) => number;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ const DEFAULT_RATE = 5;
2
+ export const getCreditRate = (params) => {
3
+ const { calculatorParams, isInsurance } = params;
4
+ if (!calculatorParams)
5
+ return DEFAULT_RATE;
6
+ return isInsurance
7
+ ? calculatorParams?.rateWithInsurance || DEFAULT_RATE
8
+ : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE;
9
+ };
10
+ //# sourceMappingURL=getCreditRate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCreditRate.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCreditRate.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,CAAC,CAAC;AAOvB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC3D,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEjD,IAAI,CAAC,gBAAgB;QAAE,OAAO,YAAY,CAAC;IAE3C,OAAO,WAAW;QAChB,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,IAAI,YAAY;QACrD,CAAC,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,YAAY,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getCreditTermYears: (minMonths: number, maxMonths: number) => number[];
@@ -0,0 +1,12 @@
1
+ import { MONTHS_IN_YEAR } from './constants.js';
2
+ const MAX_YEARS_LENGTH = 5;
3
+ export const getCreditTermYears = (minMonths, maxMonths) => {
4
+ const totalYears = Math.ceil((maxMonths - minMonths) / 12);
5
+ const firstYear = Math.floor(minMonths / MONTHS_IN_YEAR) + 1;
6
+ const result = new Array(Math.min(totalYears - 1, MAX_YEARS_LENGTH))
7
+ .fill(0)
8
+ .map((_, i) => firstYear + i);
9
+ const maxYear = totalYears + firstYear - 1;
10
+ return result.concat(maxYear);
11
+ };
12
+ //# sourceMappingURL=getCreditTermYears.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCreditTermYears.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getCreditTermYears.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,SAAiB,EAAE,EAAE;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;SACjE,IAAI,CAAC,CAAC,CAAC;SACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { CalculatorParams } from './CreditCalculatorContent';
2
+ declare type PaymentType = 'annuity' | 'differentiated';
3
+ interface GetMonthlyPaymentParams {
4
+ calculatorParams?: CalculatorParams;
5
+ paymentType: PaymentType;
6
+ rate: number;
7
+ sum: number;
8
+ months: number;
9
+ }
10
+ export declare const getMonthlyPayment: (params: GetMonthlyPaymentParams) => number;
11
+ export {};
@@ -0,0 +1,16 @@
1
+ import { clamp } from '../../utils/clamp.js';
2
+ import { DEFAULT_MAX_SUM, DEFAULT_MIN_SUM, MONTHS_IN_YEAR } from './constants.js';
3
+ export const getMonthlyPayment = (params) => {
4
+ const { calculatorParams, paymentType, rate, sum, months } = params;
5
+ if (!calculatorParams)
6
+ return 0;
7
+ const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM, calculatorParams.maxSum || DEFAULT_MAX_SUM);
8
+ if (paymentType === 'annuity') {
9
+ const annuityCoef = Number(rate) / (MONTHS_IN_YEAR * 100);
10
+ return finalSum * (annuityCoef + annuityCoef / (Math.pow(1 + annuityCoef, months) - 1));
11
+ }
12
+ else {
13
+ return finalSum / months + finalSum * (Number(rate) / 12);
14
+ }
15
+ };
16
+ //# sourceMappingURL=getMonthlyPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMonthlyPayment.js","sourceRoot":"","sources":["../../../src/components/CreditCalculator/getMonthlyPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAa/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAE,EAAE;IACnE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEpE,IAAI,CAAC,gBAAgB;QAAE,OAAO,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,KAAK,CACpB,GAAG,EACH,gBAAgB,CAAC,MAAM,IAAI,eAAe,EAC1C,gBAAgB,CAAC,MAAM,IAAI,eAAe,CAC3C,CAAC;IAEF,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;QAC1D,OAAO,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzF;SAAM;QACL,OAAO,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KAC3D;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'text and button': any;
4
+ 'list and button': any;
5
+ 'text and no button': any;
6
+ 'only title': any;
7
+ mobile: any;
8
+ };
9
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'only title': any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: any;
3
+ 'with items': any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ credit: any;
3
+ pension: any;
4
+ 'credit-card': any;
5
+ 'pension-credit': any;
6
+ };
7
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ default: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ credit: any;
3
+ mortgage: any;
4
+ 'credit-card': any;
5
+ premium: any;
6
+ ecosystem: any;
7
+ };
8
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: ({ children }: {
2
+ children: any;
3
+ }) => any;
4
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { AsyncDataHook } from '../components/ContentPage/ContentPageContext';
2
+ import { CreditCalculatorData } from '../components/CreditCalculator/CreditCalculatorContent';
3
+ export declare function useCreditCalculatorData(useAsyncData: AsyncDataHook, directoryName: string | undefined): CreditCalculatorData;
@@ -0,0 +1,12 @@
1
+ export function useCreditCalculatorData(useAsyncData, directoryName) {
2
+ const { data } = useAsyncData(creditCalculatorUrl(directoryName), () => fetchCreditCalculatorData(directoryName));
3
+ return data || {};
4
+ }
5
+ async function fetchCreditCalculatorData(directoryName) {
6
+ const response = await fetch(creditCalculatorUrl(directoryName));
7
+ return await response.json();
8
+ }
9
+ function creditCalculatorUrl(directoryName) {
10
+ return `/wcms-resources/${directoryName || 'credit-calculator-data'}.json`;
11
+ }
12
+ //# sourceMappingURL=useCreditCalculatorData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreditCalculatorData.js","sourceRoot":"","sources":["../../src/hooks/useCreditCalculatorData.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACrC,YAA2B,EAC3B,aAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CACrE,yBAAyB,CAAC,aAAa,CAAC,CACzC,CAAC;IACF,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,aAAiC;IAEjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IACjE,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,aAAiC;IAC5D,OAAO,mBAAmB,aAAa,IAAI,wBAAwB,OAAO,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ContentPageContext } from './components/ContentPage/ContentPageContext';
2
+ export declare const context: ContentPageContext;
3
+ export declare const mobileContext: ContentPageContext;
@@ -0,0 +1,3 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: any;
3
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: {
3
+ all: any;
4
+ 'primary (Private clients)': any;
5
+ 'secondary (Private clients)': any;
6
+ 'primary (Business clients)': any;
7
+ 'secondary (Business clients)': any;
8
+ 'primary (Ecosystem own)': any;
9
+ 'secondary (Ecosystem own)': any;
10
+ 'primary (disabled)': any;
11
+ 'secondary (disabled)': any;
12
+ };
13
+ export default _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ default: any;
3
+ rotate: any;
4
+ };
5
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: {
3
+ default: any;
4
+ active: any;
5
+ };
6
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: {
3
+ all: any;
4
+ };
5
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
+ import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers.js';
3
4
  export const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
4
5
  const handleChange = (value) => {
5
6
  if (!onChange)
@@ -8,7 +9,7 @@ export const InputRange = JSX(({ className, title, items = [], min = 1, max = 10
8
9
  onChange(sanitizedValue);
9
10
  };
10
11
  const inputStyle = {
11
- backgroundSize: `${(value * 100) / max - 1}% 100%`,
12
+ backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
12
13
  };
13
14
  const handleBlur = () => {
14
15
  if (!onChange)
@@ -18,6 +19,6 @@ export const InputRange = JSX(({ className, title, items = [], min = 1, max = 10
18
19
  if (value > max)
19
20
  onChange(max);
20
21
  };
21
- return (_jsxs("div", { className: className, children: [_jsxs("div", { className: "relative", children: [title ? (_jsx("span", { className: "absolute text-xs text-secondary-text top-1 mt-0.5 pl-4 ml-0.5", children: title })) : null, _jsx("input", { className: `m-0 font-sans text-sm w-full h-12 border-2 border-solid border-main-divider rounded-md outline-none p-0 pl-4 m-0 box-border text-primary-text ${title ? 'pt-4' : ''}`, value: String(value).replace(/\B(?=(\d{3})+(?!\d))/g, ' '), onChange: (e) => handleChange(e.target.value), onBlur: handleBlur }), _jsx("div", { className: "absolute inset-x-0 mt-0.5 top-8 px-4", children: _jsx("input", { className: "box-border w-full m-0 cursor-pointer slider", type: "range", min: min, max: max, step: step, value: value, onChange: (e) => handleChange(e.target.value), style: inputStyle }) })] }), _jsx("div", { className: "flex justify-between mt-3 mb-4", children: items.map((item, i) => (_jsx("span", { className: "text-xs text-secondary-text pl-4", children: item }, String(i)))) })] }));
22
+ return (_jsxs("div", { className: className, children: [_jsxs("div", { className: "relative", children: [title ? (_jsx("span", { className: "absolute text-xs text-secondary-text top-1 mt-0.5 pl-4 ml-0.5", children: title })) : null, _jsx("input", { className: `m-0 font-sans text-sm w-full h-12 border-2 border-solid border-main-divider rounded-md outline-none p-0 pl-4 m-0 box-border text-primary-text ${title ? 'pt-4' : ''}`, value: addSpacesBetweenNumbers(value), onChange: (e) => handleChange(e.target.value), onBlur: handleBlur }), _jsx("div", { className: "absolute inset-x-0 mt-0.5 top-8 px-4", children: _jsx("input", { className: "box-border w-full m-0 cursor-pointer slider", type: "range", min: min, max: max, step: step, value: value, onChange: (e) => handleChange(e.target.value), style: inputStyle }) })] }), _jsx("div", { className: "flex justify-between mt-3 mb-4", children: items.map((item, i) => (_jsx("span", { className: "text-xs text-secondary-text pl-4", children: item }, String(i)))) })] }));
22
23
  });
23
24
  //# sourceMappingURL=InputRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputRange.js","sourceRoot":"","sources":["../../../src/ui-kit/InputRange/InputRange.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,cAAc,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ;KACnD,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,KAAK,GAAG,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,eAAK,SAAS,EAAC,UAAU,aACtB,KAAK,CAAC,CAAC,CAAC,CACP,eAAM,SAAS,EAAC,+DAA+D,YAC5E,KAAK,GACD,CACR,CAAC,CAAC,CAAC,IAAI,EACR,gBACE,SAAS,EAAE,iJACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,EAAE,EACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,EAC1D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,UAAU,GAClB,EACF,cAAK,SAAS,EAAC,sCAAsC,YACnD,gBACE,SAAS,EAAC,6CAA6C,EACvD,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,KAAK,EAAE,UAAU,GACjB,GACE,IACF,EACN,cAAK,SAAS,EAAC,gCAAgC,YAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,eAAsB,SAAS,EAAC,kCAAkC,YAC/D,IAAI,IADI,MAAM,CAAC,CAAC,CAAC,CAEb,CACR,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"InputRange.js","sourceRoot":"","sources":["../../../src/ui-kit/InputRange/InputRange.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;KAC5E,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,KAAK,GAAG,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAG,GAAG;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,SAAS,aACvB,eAAK,SAAS,EAAC,UAAU,aACtB,KAAK,CAAC,CAAC,CAAC,CACP,eAAM,SAAS,EAAC,+DAA+D,YAC5E,KAAK,GACD,CACR,CAAC,CAAC,CAAC,IAAI,EACR,gBACE,SAAS,EAAE,iJACT,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,EAAE,EACF,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,MAAM,EAAE,UAAU,GAClB,EACF,cAAK,SAAS,EAAC,sCAAsC,YACnD,gBACE,SAAS,EAAC,6CAA6C,EACvD,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,KAAK,EAAE,UAAU,GACjB,GACE,IACF,EACN,cAAK,SAAS,EAAC,gCAAgC,YAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,eAAsB,SAAS,EAAC,kCAAkC,YAC/D,IAAI,IADI,MAAM,CAAC,CAAC,CAAC,CAEb,CACR,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: any;
3
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import '../../setup-fixture';
2
+ declare const _default: {
3
+ default: any;
4
+ active: any;
5
+ };
6
+ export default _default;
@@ -0,0 +1 @@
1
+ export declare const addSpacesBetweenNumbers: (number: number) => string;
@@ -0,0 +1,2 @@
1
+ export const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
2
+ //# sourceMappingURL=addSpacesBetweenNumbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSpacesBetweenNumbers.js","sourceRoot":"","sources":["../../src/utils/addSpacesBetweenNumbers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAE,EAAE,CACxD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.2.79",
3
+ "version": "0.2.81",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -79,7 +79,7 @@
79
79
  "scripts": {
80
80
  "start": "npm run cosmos",
81
81
  "build": "npm run build:lib && npm run build:commonjs && npm run bundle && npm run build:style && npm run build:icons",
82
- "postbuild": "npm run size",
82
+ "postbuild": "npm run size && npm run cosmos:export && copyfiles --up 1 \"./docs/**/*\" ./build",
83
83
  "build:lib": "rimraf ./lib && tsc --build --verbose",
84
84
  "postbuild:lib": "replace-in-file --configFile=replace-config.lib.cjs --verbose",
85
85
  "build:commonjs": "rimraf ./dist && tsc --module commonjs --noImplicitUseStrict --outDir dist",
@@ -121,6 +121,7 @@
121
121
  "@size-limit/file": "^7.0.8",
122
122
  "@types/jest": "^28.1.1",
123
123
  "autoprefixer": "^10.4.7",
124
+ "copyfiles": "^2.4.1",
124
125
  "css-loader": "^6.7.1",
125
126
  "cssnano": "^5.1.11",
126
127
  "html-webpack-plugin": "^5.5.0",
@@ -6,6 +6,7 @@ export interface ProjectSettings {
6
6
  ENABLE_ASSIST?: boolean;
7
7
  SITEMAP?: string;
8
8
  CDN?: string; // Should ends with "/"
9
+ CREDIT_CALCULATOR?: string;
9
10
  }
10
11
 
11
12
  export const projectSettings = new (class implements ProjectSettings {
@@ -1,4 +1,4 @@
1
1
  import { CreditCalculator } from './CreditCalculator';
2
2
  import { context } from '../../setup-fixture';
3
3
 
4
- export default <CreditCalculator context={context} />;
4
+ export default <CreditCalculator context={context} directoryName="credit-calculator-data" />;